[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#1121530: libreoffice: Please build with -fPIE on sparc64 to fix FTBFS



Source: libreoffice
Version: 4:25.8.3-1
Severity: normal
Tags: patch
User: debian-sparc@lists.debian.org
Usertags: sparc64
X-Debbugs-Cc: debian-sparc@lists.debian.org

Hi,

on sparc64, libreoffice fails to build from source due to some GOT offsets
being too large for the dynamic linker:

lp_MDO.o: in function `getMDO':
lp_MDO.c:(.text+0x6f4): relocation truncated to fit: R_SPARC_GOT13 against symbol `mdo_free' defined in .text section in lp_MDO.o
lp_MDO.c:(.text+0x6fc): relocation truncated to fit: R_SPARC_GOT13 against symbol `mdo_calloc' defined in .text section in lp_MDO.o
mmio.o: in function `mm_read_mtx_crd':
mmio.c:(.text+0x938): relocation truncated to fit: R_SPARC_GOT13 against symbol `stdin@@GLIBC_2.2' defined in .data section in /lib/sparc64-linux-gnu/libc.so.6
mmio.c:(.text+0x9f8): relocation truncated to fit: R_SPARC_GOT13 against symbol `stdin@@GLIBC_2.2' defined in .data section in /lib/sparc64-linux-gnu/libc.so.6
mmio.c:(.text+0xa7c): relocation truncated to fit: R_SPARC_GOT13 against symbol `stdin@@GLIBC_2.2' defined in .data section in /lib/sparc64-linux-gnu/libc.so.6
mmio.o: in function `mm_read_unsymmetric_sparse':
mmio.c:(.text+0xce8): relocation truncated to fit: R_SPARC_GOT13 against symbol `stderr@@GLIBC_2.2' defined in .data section in /lib/sparc64-linux-gnu/libc.so.6
mmio.c:(.text+0xd24): relocation truncated to fit: R_SPARC_GOT13 against symbol `stderr@@GLIBC_2.2' defined in .data section in /lib/sparc64-linux-gnu/libc.so.6
mmio.o: in function `mm_write_mtx_crd':
mmio.c:(.text+0xdd0): relocation truncated to fit: R_SPARC_GOT13 against symbol `stdout@@GLIBC_2.2' defined in .data section in /lib/sparc64-linux-gnu/libc.so.6
mmio.c:(.text+0xf44): relocation truncated to fit: R_SPARC_GOT13 against symbol `stdout@@GLIBC_2.2' defined in .data section in /lib/sparc64-linux-gnu/libc.so.6
myblas.o: in function `is_nativeBLAS':
myblas.c:(.text+0x7a0): relocation truncated to fit: R_SPARC_GOT13 against symbol `hBLAS' defined in .bss section in myblas.o
myblas.o: in function `load_BLAS':
myblas.c:(.text+0x7c0): additional relocation overflows omitted from the output
collect2: error: ld returned 1 exit status

This can be fixed by passing "-fPIE" which makes sure the compiler makes sure
that the GOT entries are capable of handling large offsets.

I propose the following patch:

--- debian/rules.orig   2025-11-08 21:28:26.000000000 +0100
+++ debian/rules        2025-11-27 22:11:18.063514133 +0100
@@ -1146,6 +1146,11 @@
        DEB_CXXFLAGS_MAINT_APPEND = -ffp-contract=off
 endif
 
+ifneq (,$(filter sparc64,$(DEB_HOST_ARCH)))
+       DEB_CFLAGS_MAINT_APPEND = -fPIE
+       DEB_CXXFLAGS_MAINT_APPEND = -fPIE
+endif
+
 ifneq (,$(filter s390x,$(DEB_HOST_ARCH)))
   ifeq (,$(shell gcc -v 2>&1 | grep disable-s390-excess-float-precision))
        DEB_CFLAGS_MAINT_APPEND = -fexcess-precision=fast

I'm attaching the patch to this bug report as well.

Thanks,
Adrian

--
 .''`.  John Paul Adrian Glaubitz
: :' :  Debian Developer
`. `'   Physicist
  `-    GPG: 62FF 8A75 84E0 2956 9546  0006 7426 3B37 F5B5 F913
--- debian/rules.orig	2025-11-08 21:28:26.000000000 +0100
+++ debian/rules	2025-11-27 22:11:18.063514133 +0100
@@ -1146,6 +1146,11 @@
 	DEB_CXXFLAGS_MAINT_APPEND = -ffp-contract=off
 endif
 
+ifneq (,$(filter sparc64,$(DEB_HOST_ARCH)))
+	DEB_CFLAGS_MAINT_APPEND = -fPIE
+	DEB_CXXFLAGS_MAINT_APPEND = -fPIE
+endif
+
 ifneq (,$(filter s390x,$(DEB_HOST_ARCH)))
   ifeq (,$(shell gcc -v 2>&1 | grep disable-s390-excess-float-precision))
 	DEB_CFLAGS_MAINT_APPEND = -fexcess-precision=fast

Reply to: