Opened 2 years ago

Closed 2 years ago

#16106 closed defect (fixed)

32 bit issues for 11.1 release

Reported by: pierre Owned by: Douglas R. Reno
Priority: normal Milestone: 11.1
Component: BOOK Version: git
Severity: normal Keywords:
Cc:

Description

We have a few issues on 32-bit, that we may want to address before 11.1 release: Three packages do not build:

  • firefox
  • thunderbird, both with
    /modules/fdlibm/src/math_private.h:34:21: error: conflicting declaration typedef __double_t double_t
    
  • and libreoffice with:
    ucbstorage.cxx:(.text+0x645b): undefined reference to `non-virtual thunk to cppu::WeakImplHelper<com::sun::star::io::XInputStream>::acquire()'
    

There are proposed fixes for those, but nothing committed yet AFAICT

Furthermore, there is a patch for SDL2, specific to i?86, that has not been tested.

Change History (15)

comment:1 by pierre, 2 years ago

The last patch in mozilla's bug https://bugzilla.mozilla.org/show_bug.cgi?id=1729459 fixes the build for firefox and should also be good on thunderbird. Alternatively, if we are sure we use only gcc/g++ recent versions, the following sed is ok:

case "$(uname -m)" in
   i?86) sed -e '/typedef[ ]*double/s/double/long double/' \
             -i modules/fdlibm/src/math_private.h
esac

comment:3 by pierre, 2 years ago

Another failure I've found in openjdk:

/usr/bin/ld: /sources/openjdk/jdk17u-jdk-17.0.1-ga/build/linux-x86-server-release/hotspot/variant-server/libjvm/objs/adaptiveSizePolicy.o: warning: relocation in read-only section `.text'
/usr/bin/ld: BFD (GNU Binutils) 2.38 assertion fail ../../bfd/elfxx-x86.c:529
collect2: fatal error: ld terminated with signal 11 [Segmentation fault]

Needs to be confirmed

comment:4 by pierre, 2 years ago

The patch above does not address the libreoffice issue.

in reply to:  3 comment:5 by Douglas R. Reno, 2 years ago

Replying to pierre:

Another failure I've found in openjdk:

/usr/bin/ld: /sources/openjdk/jdk17u-jdk-17.0.1-ga/build/linux-x86-server-release/hotspot/variant-server/libjvm/objs/adaptiveSizePolicy.o: warning: relocation in read-only section `.text'
/usr/bin/ld: BFD (GNU Binutils) 2.38 assertion fail ../../bfd/elfxx-x86.c:529
collect2: fatal error: ld terminated with signal 11 [Segmentation fault]

Needs to be confirmed

I will attempt to confirm this, but https://sourceware.org/bugzilla/show_bug.cgi?id=28894 appears to be the same kind of issue

comment:6 by pierre, 2 years ago

The fix for openjdk is in binutils and is described in lfs#5012

Last edited 2 years ago by pierre (previous) (diff)

comment:7 by pierre, 2 years ago

Workaround added for firefox and thunderbird at d468e961aa5d75cc1c88fe651241a3138b482392

comment:8 by Douglas R. Reno, 2 years ago

We should probably check whether the CFLAGS in clisp are needed still. I suspect they aren't because they were added due to a bug in GCC/binutils a while ago

comment:9 by Douglas R. Reno, 2 years ago

Owner: changed from blfs-book to Douglas R. Reno
Status: newassigned

comment:10 by Douglas R. Reno, 2 years ago

Here's what is left to complete this:

  • Libreoffice compilation issue (see description)
  • Determine whether SDL2 patch is still required
  • Determine whether clisp patch is still required

Tasks #2 and #3 can probably be done today as I made my VMWare VM an i686 system (and made it SysV so I have a recent example for troubleshooting purposes).

comment:11 by pierre, 2 years ago

clisp CFLAGS for i686 are still required. Clisp built without the patch OTOH (which is not specific to 32 bit AFAICT)

in reply to:  11 comment:12 by pierre, 2 years ago

Replying to pierre:

clisp CFLAGS for i686 are still required. Clisp built without the patch OTOH (which is not specific to 32 bit AFAICT)

The patch for clisp is only needed if using an external library (libffcall)

comment:13 by pierre, 2 years ago

SDL2 builds without the patch on 32-bit now.

comment:14 by pierre, 2 years ago

Libreoffice: Tried to add "export CFLAGS=-O2" before ./autogen.sh. The build went farther, but failed with:

[build LNK] Library/libsubsequenttest.so
/usr/lib/gcc/i686-pc-linux-gnu/11.2.0/../../../../i686-pc-linux-gnu/bin/ld: /sources/libreoffice/libreoffice-7.3.0.3/workdir/CxxObject/xmloff/source/core/xmlimp.o: warning: relocation against `_ZThn20_N4cppu14WeakImplHelperIJN3com3sun4star3xml3sax18XFastAttributeListENS3_4util10XCloneableEEE7acquireEv' in read-only section `.text'
/usr/lib/gcc/i686-pc-linux-gnu/11.2.0/../../../../i686-pc-linux-gnu/bin/ld: /sources/libreoffice/libreoffice-7.3.0.3/workdir/CxxObject/xmloff/source/core/xmlimp.o: in function `SvXMLImport::SetAutoStyles(SvXMLStylesContext*)':
xmlimp.cxx:(.text+0x87cc): undefined reference to `non-virtual thunk to cppu::WeakImplHelper<com::sun::star::xml::sax::XFastAttributeList, com::sun::star::util::XCloneable>::acquire()'
/usr/lib/gcc/i686-pc-linux-gnu/11.2.0/../../../../i686-pc-linux-gnu/bin/ld: warning: creating DT_TEXTREL in a shared object
collect2: error: ld returned 1 exit status
make[1]: *** [/sources/libreoffice/libreoffice-7.3.0.3/xmloff/Library_xo.mk:20: /sources/libreoffice/libreoffice-7.3.0.3/instdir/program/libxolo.so] Error 1
make[1]: *** Waiting for unfinished jobs....
make: *** [Makefile:288: build] Error 2

comment:15 by pierre, 2 years ago

Resolution: fixed
Status: assignedclosed

Actually, there are files "solenv/gbuild/platform/LINUX_<processor>_GCC.mk", which set a few variables. The LINUX_INTEL_GCC.mk file sets compiler flags to -Os, the LINUX_X86_64_GCC.mk doesn't. So I applied

sed /-Os/d -i solenv/gbuild/platform/LINUX_INTEL_GCC.mk

and the build succeeded. So we can consider this ticket as fixed at 835b017e36

Note: See TracTickets for help on using tickets.