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

John Paul Adrian Glaubitz <[email protected]>
Newsgroups gmane.linux.debian.devel.openoffice
Message-ID <176427800474.2640251.5677411202118248.reportbug__17095.0058427238$1764278135$gmane$org@login1.physik.fu-berlin.de>
Source: libreoffice
Version: 4:25.8.3-1
Severity: normal
Tags: patch
User: [email protected]
Usertags: sparc64
X-Debbugs-Cc: [email protected]

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
loffice-sparc64-fPIE.diff (text/plain, 485 B)
--- 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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.