Bug#1121530: libreoffice: Please build with -fPIE on sparc64 to fix FTBFS
Rene Engelhard <[email protected]> Fri, 28 Nov 2025 09:34:18 +0100
| Newsgroups | gmane.linux.debian.devel.bugs.general,gmane.linux.debian.devel.openoffice,gmane.linux.debian.ports.sparc |
|---|---|
| Message-ID | <[email protected]> |
------ELI6C3DOQL0TNGWJFSSROJDMIRL93L Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Hi, Upstream patches related to/for lp-solve I mean: <https://git=2Elibreoffice=2Eorg/core/+/refs/heads/master/external/lpsolve= /> In any way you need to teach ccc -fPIE=2E But then I'd wonder why lp-solve= in Debian built=2E=2E=2E That one has "just" -fPIC=2E See salsa=2Edebian=2Eorg/math-team/lp-solve Regards=20 Rene Am 28=2E November 2025 09:23:26 MEZ schrieb Rene Engelhard <rene@rene-enge= lhard=2Ede>: >Hi, > >The internal lp-solve probably just doesn't honour the system env buildfl= ags=2E It's a crude shell script used for building (ccc), see the existing = lp-solve-related patches=2E > >Regards=20 > >Rene > >Am 28=2E November 2025 08:53:17 MEZ schrieb John Paul Adrian Glaubitz <gl= aubitz@physik=2Efu-berlin=2Ede>: >>Hi Jan, >> >>On Fri, 2025-11-28 at 00:17 +0100, Jan Engelhardt wrote: >>> On Thursday 2025-11-27 22:13, John Paul Adrian Glaubitz wrote: >>> > --- debian/rules=2Eorig 2025-11-08 21:28:26=2E000000000 +0100 >>> > +++ debian/rules 2025-11-27 22:11:18=2E063514133 +0100 >>> > @@ -1146,6 +1146,11 @@ >>> > DEB_CXXFLAGS_MAINT_APPEND =3D -ffp-contract=3Doff >>> > endif >>> >=20 >>> > +ifneq (,$(filter sparc64,$(DEB_HOST_ARCH))) >>> > + DEB_CFLAGS_MAINT_APPEND =3D -fPIE >>> > + DEB_CXXFLAGS_MAINT_APPEND =3D -fPIE >>> > +endif >>>=20 >>> If all you have a "hammer" (e=2Eg=2E `=2E/configure CFLAGS=3D-fPIC`), = that CFLAGS >>> variable may be used by the software project for both executables and = shared >>> libraries=2E >>>=20 >>> It is possible for the build to fail, since PIE is not meant to >>> be used when building shared libraries=2E >>>=20 >>> If that happens, you have to switch from PIE to PIC (that latter is mo= re >>> general)=2E >>>=20 >>> On the other hand, if the software project uses libtool, you are in go= od hands: >>> libtool forces -fPIC on shared libs anyway and transparently strips an= y >>> conflicting -fPIE internally (it also eats the small model -fpic/-fpie >>> in favor of -fPIC)=2E >> >>Yeah, you seem to be correct with your analysis as the -fPIE didn't help= and the >>error still occurs: >> >>=2E=2E/shared/commonlib=2Ec: In function 'timeNow': >>=2E=2E/shared/commonlib=2Ec:705:3: warning: 'ftime' is deprecated: Use g= ettimeofday or clock_gettime instead [-Wdeprecated-declarations] >> 705 | ftime(&buf); >> | ^~~~~ >>In file included from =2E=2E/shared/commonlib=2Ec:7: >>/usr/include/sparc64-linux-gnu/sys/timeb=2Eh:29:12: note: declared here >> 29 | extern int ftime (struct timeb *__timebuf) >> | ^~~~~ >>lp_MDO=2Eo: in function `getMDO': >>lp_MDO=2Ec:(=2Etext+0x6f4): relocation truncated to fit: R_SPARC_GOT13 a= gainst symbol `mdo_free' defined in =2Etext section in lp_MDO=2Eo >>lp_MDO=2Ec:(=2Etext+0x6fc): relocation truncated to fit: R_SPARC_GOT13 a= gainst symbol `mdo_calloc' defined in =2Etext section in lp_MDO=2Eo >>mmio=2Eo: in function `mm_read_mtx_crd': >>mmio=2Ec:(=2Etext+0x938): relocation truncated to fit: R_SPARC_GOT13 aga= inst symbol `stdin@@GLIBC_2=2E2' defined in =2Edata section in /lib/sparc64= -linux-gnu/libc=2Eso=2E6 >>mmio=2Ec:(=2Etext+0x9f8): relocation truncated to fit: R_SPARC_GOT13 aga= inst symbol `stdin@@GLIBC_2=2E2' defined in =2Edata section in /lib/sparc64= -linux-gnu/libc=2Eso=2E6 >>mmio=2Ec:(=2Etext+0xa7c): relocation truncated to fit: R_SPARC_GOT13 aga= inst symbol `stdin@@GLIBC_2=2E2' defined in =2Edata section in /lib/sparc64= -linux-gnu/libc=2Eso=2E6 >>mmio=2Eo: in function `mm_read_unsymmetric_sparse': >>mmio=2Ec:(=2Etext+0xce8): relocation truncated to fit: R_SPARC_GOT13 aga= inst symbol `stderr@@GLIBC_2=2E2' defined in =2Edata section in /lib/sparc6= 4-linux-gnu/libc=2Eso=2E6 >>mmio=2Ec:(=2Etext+0xd24): relocation truncated to fit: R_SPARC_GOT13 aga= inst symbol `stderr@@GLIBC_2=2E2' defined in =2Edata section in /lib/sparc6= 4-linux-gnu/libc=2Eso=2E6 >>mmio=2Eo: in function `mm_write_mtx_crd': >>mmio=2Ec:(=2Etext+0xdd0): relocation truncated to fit: R_SPARC_GOT13 aga= inst symbol `stdout@@GLIBC_2=2E2' defined in =2Edata section in /lib/sparc6= 4-linux-gnu/libc=2Eso=2E6 >>mmio=2Ec:(=2Etext+0xf44): relocation truncated to fit: R_SPARC_GOT13 aga= inst symbol `stdout@@GLIBC_2=2E2' defined in =2Edata section in /lib/sparc6= 4-linux-gnu/libc=2Eso=2E6 >>myblas=2Eo: in function `is_nativeBLAS': >>myblas=2Ec:(=2Etext+0x7a0): relocation truncated to fit: R_SPARC_GOT13 a= gainst symbol `hBLAS' defined in =2Ebss section in myblas=2Eo >>myblas=2Eo: in function `load_BLAS': >>myblas=2Ec:(=2Etext+0x7c0): additional relocation overflows omitted from= the output >>collect2: error: ld returned 1 exit status >>make: *** [/home/glaubitz/loffice/libreoffice-26=2E2=2E0~alpha1/external= /lpsolve/ExternalProject_lpsolve=2Emk:27: /home/glaubitz/loffice/libreoffic= e-26=2E2=2E0~alpha1/workdir/ExternalProject/lpsolve/build] >>Error 1 >> >>So, I'll have to dig deeper in the build system where I need to pass -fP= IE=2E >> >>Adrian >> >>--=20 >> =2E''`=2E John Paul Adrian Glaubitz >>: :' : Debian Developer >>`=2E `' Physicist >> `- GPG: 62FF 8A75 84E0 2956 9546 0006 7426 3B37 F5B5 F913 >> ------ELI6C3DOQL0TNGWJFSSROJDMIRL93L Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: quoted-printable <html><head></head><body><div dir=3D"auto">Hi,<br><br>Upstream patches rela= ted to/for lp-solve I mean:<br><br><<a href=3D"https://git=2Elibreoffice= =2Eorg/core/+/refs/heads/master/external/lpsolve/">https://git=2Elibreoffic= e=2Eorg/core/+/refs/heads/master/external/lpsolve/</a>><br><br>In any wa= y you need to teach ccc -fPIE=2E But then I'd wonder why lp-solve in Debian= built=2E=2E=2E That one has "just" -fPIC=2E<br><br>See salsa=2Edebian=2Eor= g/math-team/lp-solve<br><br>Regards <br><br>Rene</div><br><br><div class=3D= "gmail_quote"><div dir=3D"auto">Am 28=2E November 2025 09:23:26 MEZ schrieb= Rene Engelhard <rene@rene-engelhard=2Ede>:</div><blockquote class=3D= "gmail_quote" style=3D"margin: 0pt 0pt 0pt 0=2E8ex; border-left: 1px solid = rgb(204, 204, 204); padding-left: 1ex;"> <div dir=3D"auto">Hi,<br><br>The internal lp-solve probably just doesn't h= onour the system env buildflags=2E It's a crude shell script used for build= ing (ccc), see the existing lp-solve-related patches=2E<br><br>Regards <br>= <br>Rene</div><br><br><div class=3D"gmail_quote"><div dir=3D"auto">Am 28=2E= November 2025 08:53:17 MEZ schrieb John Paul Adrian Glaubitz <glaubitz@= physik=2Efu-berlin=2Ede>:</div><blockquote class=3D"gmail_quote" style= =3D"margin: 0pt 0pt 0pt 0=2E8ex; border-left: 1px solid rgb(204, 204, 204);= padding-left: 1ex;"> <pre class=3D"k9mail"><div dir=3D"auto">Hi Jan,<br><br>On Fri, 2025-11-28 = at 00:17 +0100, Jan Engelhardt wrote:<br></div><blockquote class=3D"gmail_q= uote" style=3D"margin: 0pt 0pt 1ex 0=2E8ex; border-left: 1px solid #729fcf;= padding-left: 1ex;"><div dir=3D"auto">On Thursday 2025-11-27 22:13, John P= aul Adrian Glaubitz wrote:<br></div><blockquote class=3D"gmail_quote" style= =3D"margin: 0pt 0pt 1ex 0=2E8ex; border-left: 1px solid #ad7fa8; padding-le= ft: 1ex;"><div dir=3D"auto">--- debian/rules=2Eorig 2025-11-08 21:28:26= =2E000000000 +0100<br>+++ debian/rules 2025-11-27 22:11:18=2E0635141= 33 +0100<br>@@ -1146,6 +1146,11 @@<br> DEB_CXXFLAGS_MAINT_APPEND =3D = -ffp-contract=3Doff<br>endif<br><br>+ifneq (,$(filter sparc64,$(DEB_HOST_AR= CH)))<br>+ DEB_CFLAGS_MAINT_APPEND =3D -fPIE<br>+ DEB_CXXFLAGS_= MAINT_APPEND =3D -fPIE<br>+endif<br></div></blockquote><div dir=3D"auto"><b= r>If all you have a "hammer" (e=2Eg=2E `=2E/configure CFLAGS=3D-fPIC`), tha= t CFLAGS<br>variable may be used by the software project for both executabl= es and shared<br>libraries=2E<br><br>It is possible for the build to fail, = since PIE is not meant to<br>be used when building shared libraries=2E<br><= br>If that happens, you have to switch from PIE to PIC (that latter is more= <br>general)=2E<br><br>On the other hand, if the software project uses libt= ool, you are in good hands:<br>libtool forces -fPIC on shared libs anyway a= nd transparently strips any<br>conflicting -fPIE internally (it also eats t= he small model -fpic/-fpie<br>in favor of -fPIC)=2E<br></div></blockquote><= div dir=3D"auto"><br>Yeah, you seem to be correct with your analysis as the= -fPIE didn't help and the<br>error still occurs:<br><br>=2E=2E/shared/comm= onlib=2Ec: In function 'timeNow':<br>=2E=2E/shared/commonlib=2Ec:705:3: war= ning: 'ftime' is deprecated: Use gettimeofday or clock_gettime instead [-Wd= eprecated-declarations]<br> 705 | ftime(&buf);<br> | ^~~~~<br= >In file included from =2E=2E/shared/commonlib=2Ec:7:<br>/usr/include/sparc= 64-linux-gnu/sys/timeb=2Eh:29:12: note: declared here<br> 29 | extern int= ftime (struct timeb *__timebuf)<br> | ^~~~~<br>lp_MDO=2Eo:= in function `getMDO':<br>lp_MDO=2Ec:(=2Etext+0x6f4): relocation truncated = to fit: R_SPARC_GOT13 against symbol `mdo_free' defined in =2Etext section = in lp_MDO=2Eo<br>lp_MDO=2Ec:(=2Etext+0x6fc): relocation truncated to fit: R= _SPARC_GOT13 against symbol `mdo_calloc' defined in =2Etext section in lp_M= DO=2Eo<br>mmio=2Eo: in function `mm_read_mtx_crd':<br>mmio=2Ec:(=2Etext+0x9= 38): relocation truncated to fit: R_SPARC_GOT13 against symbol `stdin@@GLIB= C_2=2E2' defined in =2Edata section in /lib/sparc64-linux-gnu/libc=2Eso=2E6= <br>mmio=2Ec:(=2Etext+0x9f8): relocation truncated to fit: R_SPARC_GOT13 ag= ainst symbol `stdin@@GLIBC_2=2E2' defined in =2Edata section in /lib/sparc6= 4-linux-gnu/libc=2Eso=2E6<br>mmio=2Ec:(=2Etext+0xa7c): relocation truncated= to fit: R_SPARC_GOT13 against symbol `stdin@@GLIBC_2=2E2' defined in =2Eda= ta section in /lib/sparc64-linux-gnu/libc=2Eso=2E6<br>mmio=2Eo: in function= `mm_read_unsymmetric_sparse':<br>mmio=2Ec:(=2Etext+0xce8): relocation trun= cated to fit: R_SPARC_GOT13 against symbol `stderr@@GLIBC_2=2E2' defined in= =2Edata section in /lib/sparc64-linux-gnu/libc=2Eso=2E6<br>mmio=2Ec:(=2Ete= xt+0xd24): relocation truncated to fit: R_SPARC_GOT13 against symbol `stder= r@@GLIBC_2=2E2' defined in =2Edata section in /lib/sparc64-linux-gnu/libc= =2Eso=2E6<br>mmio=2Eo: in function `mm_write_mtx_crd':<br>mmio=2Ec:(=2Etext= +0xdd0): relocation truncated to fit: R_SPARC_GOT13 against symbol `stdout@= @GLIBC_2=2E2' defined in =2Edata section in /lib/sparc64-linux-gnu/libc=2Es= o=2E6<br>mmio=2Ec:(=2Etext+0xf44): relocation truncated to fit: R_SPARC_GOT= 13 against symbol `stdout@@GLIBC_2=2E2' defined in =2Edata section in /lib/= sparc64-linux-gnu/libc=2Eso=2E6<br>myblas=2Eo: in function `is_nativeBLAS':= <br>myblas=2Ec:(=2Etext+0x7a0): relocation truncated to fit: R_SPARC_GOT13 = against symbol `hBLAS' defined in =2Ebss section in myblas=2Eo<br>myblas=2E= o: in function `load_BLAS':<br>myblas=2Ec:(=2Etext+0x7c0): additional reloc= ation overflows omitted from the output<br>collect2: error: ld returned 1 e= xit status<br>make: *** [/home/glaubitz/loffice/libreoffice-26=2E2=2E0~alph= a1/external/lpsolve/ExternalProject_lpsolve=2Emk:27: /home/glaubitz/loffice= /libreoffice-26=2E2=2E0~alpha1/workdir/ExternalProject/lpsolve/build]<br>Er= ror 1<br><br>So, I'll have to dig deeper in the build system where I need t= o pass -fPIE=2E<br><br>Adrian<br><br></div></pre></blockquote></div></block= quote></div></body></html> ------ELI6C3DOQL0TNGWJFSSROJDMIRL93L--