On Mon, Jun 20, 2022, 7:23 AM Gabriele Bulfon <gbul...@sonicle.com> wrote:
> Who may be responsible for this alignment? > The same Makefile has been used in other distros, and the same 4.7 that > I'm using was built on another previous system without problems, but now > produces this error itself on the new system. > I bet this is something about the env on the new system, but I don't know > what piece is responsible for this alignment. > This would come from binutils. Did you upgrade those also? I think if you use a -v on the linking gcc invocation, it should show the linker.xommand and script used. Just follow that info to locate the linker script and then look just before the unaligned section. --joel > > Any clue? > Gabriele > > > *Sonicle S.r.l. *: http://www.sonicle.com > *Music: *http://www.gabrielebulfon.com > *eXoplanets : *https://gabrielebulfon.bandcamp.com/album/exoplanets > > > ------------------------------ > > > *Da:* Joel Sherrill <j...@rtems.org> > *A:* Gabriele Bulfon <gbul...@sonicle.com> > *Cc:* GCC <gcc@gcc.gnu.org> > *Data:* 20 giugno 2022 13.04.17 CEST > *Oggetto:* Re: Build of any gcc breaks on my sparc / illumos env > > > > > On Mon, Jun 20, 2022, 5:14 AM Gabriele Bulfon via Gcc <gcc@gcc.gnu.org> > wrote: > >> Hi, >> >> I'm the maintainer of the XStreamOS/illumos distro, mainly x86 but we >> also have a sparc version. >> I'm currently trying to upgrade a T4 system running XStreamOS/sparc as of >> illumos 2019. >> This system contains a gcc 4.7 that I used to build all the various >> userland components, built on a previous XStreamOS basic system through a >> gcc 3. >> I don't know what changed in the env of the T4 system, with respect to >> the previous where I built gcc 4.7. >> On this system I cannot build any of gcc 5,6,7,8,9,10. >> The build always breaks here: >> >> libtool: link: >> >> /data/sources/sonicle/xstream-userland-gate/components/gcc-6/build/sparcv7/./gcc/xgcc >> -shared-libgcc >> -B/data/sources/sonicle/xstream-userland-gate/components/gcc-6/build/sparcv7/./gcc >> -nostdinc++ >> -L/data/sources/sonicle/xstream-userland-gate/components/gcc-6/build/sparcv7/sparc-sun-solaris2.11/libstdc++-v3/src >> -L/data/sources/sonicle/xstream-userland-gate/components/gcc-6/build/sparcv7/sparc-sun-solaris2.11/libstdc++-v3/src/.libs >> -L/data/sources/sonicle/xstream-userland-gate/components/gcc-6/build/sparcv7/sparc-sun-solaris2.11/libstdc++-v3/libsupc++/.libs >> -B/usr/gcc/6/sparc-sun-solaris2.11/bin/ >> -B/usr/gcc/6/sparc-sun-solaris2.11/lib/ -isystem >> /usr/gcc/6/sparc-sun-solaris2.11/include -isystem >> /usr/gcc/6/sparc-sun-solaris2.11/sys-include -shared -nostdlib >> /usr/lib/crti.o /usr/lib/values-Xa.o >> /data/sources/sonicle/xstream-userland-gate/components/gcc-6/build/sparcv7/./gcc/crtbeginS.o >> .libs/compatibility.o .libs/compatibility-debug_list.o >> .libs/compatibility-debug_list-2.o .libs/compatibility-c++0x.o >> .libs/compatibility-atomic-c++0x.o .libs/compatibility-thread-c++0x.o >> .libs/compatibility-chrono.o .libs/compatibility-condvar.o -Wl,-z >> -Wl,allextract ../libsupc++/.libs/libsupc++convenience.a >> ../src/c++98/.libs/libc++98convenience.a >> ../src/c++11/.libs/libc++11convenience.a -Wl,-z -Wl,defaultextract >> >> -L/data/sources/sonicle/xstream-userland-gate/components/gcc-6/build/sparcv7/sparc-sun-solaris2.11/libstdc++-v3/libsupc++/.libs >> -L/data/sources/sonicle/xstream-userland-gate/components/gcc-6/build/sparcv7/sparc-sun-solaris2.11/libstdc++-v3/src >> -L/data/sources/sonicle/xstream-userland-gate/components/gcc-6/build/sparcv7/sparc-sun-solaris2.11/libstdc++-v3/src/.libs >> -lm >> -L/data/sources/sonicle/xstream-userland-gate/components/gcc-6/build/sparcv7/./gcc >> -lgcc_s -lc -lgcc_s -lc >> /data/sources/sonicle/xstream-userland-gate/components/gcc-6/build/sparcv7/./gcc/crtendS.o >> /usr/lib/crtn.o -Wl,-M -Wl,libstdc++-symbols.ver-sun -Wl,-h >> -Wl,libstdc++.so.6 -o .libs/libstdc++.so.6.0.22 >> ld: fatal: relocation error: R_SPARC_DISP32: file .libs/compatibility.o: >> symbol .gcc_except_table (section): offset 0xffffffff74d8ddf1 is non-aligned >> ld: fatal: relocation error: R_SPARC_DISP32: file .libs/compatibility.o: >> symbol .gcc_except_table (section): offset 0xffffffff74d8de11 is non-aligned >> ld: fatal: relocation error: R_SPARC_DISP32: file >> .libs/compatibility-atomic-c++0x.o: symbol .gcc_except_table (section): >> offset 0xffffffff74d8de99 is non-aligned >> ld: fatal: relocation error: R_SPARC_DISP32: file >> .libs/compatibility-atomic-c++0x.o: symbol .gcc_except_table (section): >> offset 0xffffffff74d8deb9 is non-aligned >> ... > > > Any chance the linker script is missing an align directive ahead of this > section? Or it is insufficient? Or (unlikely) broken? > > --joel > > >> >> As an example, the ".libs/compatibility.o" file is built like this: >> >> libtool: compile: >> >> /data/sources/sonicle/xstream-userland-gate/components/gcc-6/build/sparcv7/./gcc/xgcc >> -shared-libgcc >> -B/data/sources/sonicle/xstream-userland-gate/components/gcc-6/build/sparcv7/./gcc >> -nostdinc++ >> -L/data/sources/sonicle/xstream-userland-gate/components/gcc-6/build/sparcv7/sparc-sun-solaris2.11/libstdc++-v3/src >> -L/data/sources/sonicle/xstream-userland-gate/components/gcc-6/build/sparcv7/sparc-sun-solaris2.11/libstdc++-v3/src/.libs >> -L/data/sources/sonicle/xstream-userland-gate/components/gcc-6/build/sparcv7/sparc-sun-solaris2.11/libstdc++-v3/libsupc++/.libs >> -B/usr/gcc/6/sparc-sun-solaris2.11/bin/ >> -B/usr/gcc/6/sparc-sun-solaris2.11/lib/ -isystem >> /usr/gcc/6/sparc-sun-solaris2.11/include -isystem >> /usr/gcc/6/sparc-sun-solaris2.11/sys-include >> -I/data/sources/sonicle/xstream-userland-gate/components/gcc-6/build/sparcv7/sparc-sun-solaris2.11/libstdc++-v3/include/sparc-sun-solaris2.11 >> -I/data/sources/sonicle/xstream-userland-gate/components/gcc-6/build/sparcv7/sparc-sun-solaris2.11/libstdc++-v3/include >> -I/data/sources/sonicle/xstream-userland-gate/components/gcc-6/gcc-6.5.0/libstdc++-v3/libsupc++ >> -std=gnu++98 -fPIC -DPIC -fno-implicit-templates -Wall -Wextra >> -Wwrite-strings -Wcast-qual -Wabi -fdiagnostics-show-location=once >> -ffunction-sections -fdata-sections -frandom-seed=compatibility.lo -g -O2 >> -c >> /data/sources/sonicle/xstream-userland-gate/components/gcc-6/gcc-6.5.0/libstdc++-v3/src/c++98/compatibility.cc >> -fPIC -DPIC -D_GLIBCXX_SHARED -o .libs/compatibility.o >> >> I cannot find what is causing this non-aligned problem. >> This is how configure is invoked: >> >> /data/sources/sonicle/xstream-userland-gate/components/gcc-6/gcc-6.5.0/configure >> --prefix=/usr/gcc/6 --mandir=/usr/gcc/6/share/man --bindir=/usr/gcc/6/bin >> --libdir=/usr/gcc/6/lib --sbindir=/usr/gcc/6/sbin --infodir=/usr/share/info >> --sysconfdir=/etc --without-gnu-as --with-as=/usr/bin/as >> --build=sparc-sun-solaris2.11 --sbindir=/usr/gcc/6/bin >> --libdir=/usr/gcc/6/lib --libexecdir=/usr/gcc/6/lib --host >> sparc-sun-solaris2.11 --build sparc-sun-solaris2.11 --target >> sparc-sun-solaris2.11 --with-pkgversion="XStreamOS 6.5.0-XS-2" >> --with-bugurl="https://bugs.xstreamos.org" --enable-plugins >> --enable-objc-gc --enable-initfini-array >> --enable-languages=c,c++,fortran,lto,objc --without-gnu-ld >> --with-ld=/usr/bin/ld >> --with-build-time-tools=/usr/gnu/sparc-sun-solaris2.11/bin --disable-libitm >> --without-gnu-as --with-as=/usr/bin/as LDFLAGS="-R/usr/gcc/6/lib" >> >> As you can see, I use both illumos as and ld, but I also tried using gnu >> as with the same result. >> I also tried using gnu ld (which is not recommended on a sparc build, >> AFAIK), but that brought in different problems earlier. >> >> Anyone can help? >> >> Thanks! >> Gabriele >> >> >> >> Sonicle S.r.l. : http://www.sonicle.com >> Music: http://www.gabrielebulfon.com >> eXoplanets : https://gabrielebulfon.bandcamp.com/album/exoplanets >> >> >>