Bug #41617 5.1 and 6.0 fail to build on sol10-amd64-a
Submitted: 19 Dec 2008 6:36 Modified: 28 Dec 2008 6:25
Reporter: Sven Sandberg Email Updates:
Status: Closed Impact on me:
Category:Tools: Pushbuild Severity:S1 (Critical)
Version:5.1, 6.0 OS:Any
Assigned to: Kent Boortz CPU Architecture:Any
Tags: build, pb1, pushbuild, sol10-amd64-a

[19 Dec 2008 6:36] Sven Sandberg
5.1-rpl and 6.0-rpl fail to build on sol10-amd64-a. It started some time between Oct 24 and Nov 21. Here are the lines of output where it fails:

 ccache g++ -DHAVE_CONFIG_H -I. -I. -I../../../../include -I./../include -I./../mySTL -DYASSL_PURE_C -g -DSAFE_MUTEX -m64 -O2 -g -mtune=k8 -DMY_ATOMIC_MODE_RWLOCKS -fno-implicit-templates -fno-exceptions -fno-rtti -DHAVE_RWLOCK_T -MT libtaocrypt_la-twofish.lo -MD -MP -MF .deps/libtaocrypt_la-twofish.Tpo -c twofish.cpp -o libtaocrypt_la-twofish.o
/bin/bash ../../../../libtool --preserve-dup-deps --tag=CXX --mode=link ccache g++   -g  -DSAFE_MUTEX -m64 -O2 -g -mtune=k8 -DMY_ATOMIC_MODE_RWLOCKS   -fno-implicit-templates -fno-exceptions -fno-rtti -DHAVE_RWLOCK_T   -m64 -O2 -g -mtune=k8 -static-libgcc -o libtaocrypt.la   libtaocrypt_la-aes.lo  libtaocrypt_la-aestables.lo libtaocrypt_la-algebra.lo  libtaocrypt_la-arc4.lo libtaocrypt_la-asn.lo  libtaocrypt_la-bftables.lo libtaocrypt_la-blowfish.lo  libtaocrypt_la-coding.lo libtaocrypt_la-des.lo  libtaocrypt_la-dh.lo libtaocrypt_la-dsa.lo  libtaocrypt_la-file.lo libtaocrypt_la-hash.lo  libtaocrypt_la-integer.lo libtaocrypt_la-md2.lo  libtaocrypt_la-md4.lo libtaocrypt_la-md5.lo  libtaocrypt_la-misc.lo libtaocrypt_la-random.lo  libtaocrypt_la-ripemd.lo libtaocrypt_la-rsa.lo  libtaocrypt_la-sha.lo libtaocrypt_la-template_instnt.lo  libtaocrypt_la-tftables.lo libtaocrypt_la-twofish.lo  -lnsl -lrt -lresolv -lsocket -lpthread -lthread -lrt -lgen -lsocket -lnsl -lm -lmtmalloc -lpthread -lthread
mkdir .libs
ar cru .libs/libtaocrypt.a  libtaocrypt_la-aes.o libtaocrypt_la-aestables.o libtaocrypt_la-algebra.o libtaocrypt_la-arc4.o libtaocrypt_la-asn.o libtaocrypt_la-bftables.o libtaocrypt_la-blowfish.o libtaocrypt_la-coding.o libtaocrypt_la-des.o libtaocrypt_la-dh.o libtaocrypt_la-dsa.o libtaocrypt_la-file.o libtaocrypt_la-hash.o libtaocrypt_la-integer.o libtaocrypt_la-md2.o libtaocrypt_la-md4.o libtaocrypt_la-md5.o libtaocrypt_la-misc.o libtaocrypt_la-random.o libtaocrypt_la-ripemd.o libtaocrypt_la-rsa.o libtaocrypt_la-sha.o libtaocrypt_la-template_instnt.o libtaocrypt_la-tftables.o libtaocrypt_la-twofish.o
ranlib .libs/libtaocrypt.a
creating libtaocrypt.la
(cd .libs && rm -f libtaocrypt.la && ln -s ../libtaocrypt.la libtaocrypt.la)
Making all in test
make: Warning: Ignoring DistributedMake -j option
if ccache g++ -DHAVE_CONFIG_H -I. -I. -I../../../../include -I./../include -I./../mySTL   -DYASSL_PURE_C -g  -DSAFE_MUTEX -m64 -O2 -g -mtune=k8 -DMY_ATOMIC_MODE_RWLOCKS   -fno-implicit-templates -fno-exceptions -fno-rtti -DHAVE_RWLOCK_T  -MT test-test.o -MD -MP -MF ".deps/test-test.Tpo" -c -o test-test.o `test -f 'test.cpp' || echo './'`test.cpp; \
then mv -f ".deps/test-test.Tpo" ".deps/test-test.Po"; else rm -f ".deps/test-test.Tpo"; exit 1; fi
/bin/bash ../../../../libtool --preserve-dup-deps --tag=CXX --mode=link ccache g++   -g  -DSAFE_MUTEX -m64 -O2 -g -mtune=k8 -DMY_ATOMIC_MODE_RWLOCKS   -fno-implicit-templates -fno-exceptions -fno-rtti -DHAVE_RWLOCK_T   -m64 -O2 -g -mtune=k8 -static-libgcc -o test  test-test.o ../../../../extra/yassl/taocrypt/src/libtaocrypt.la -lnsl -lrt -lresolv -lsocket -lpthread -lthread -lrt -lgen -lsocket -lnsl -lm -lmtmalloc -lpthread -lthread
mkdir .libs
ccache g++ -g -DSAFE_MUTEX -m64 -O2 -g -mtune=k8 -DMY_ATOMIC_MODE_RWLOCKS -fno-implicit-templates -fno-exceptions -fno-rtti -DHAVE_RWLOCK_T -m64 -O2 -g -mtune=k8 -static-libgcc -o test test-test.o  ../../../../extra/yassl/taocrypt/src/.libs/libtaocrypt.a -lnsl -lrt -lsocket -lpthread -lthread -lrt -lsocket -lnsl -lpthread -lthread -lnsl -lrt -lsocket -lpthread -lthread -lrt -lsocket -lnsl -lpthread -lthread /usr/sfw/lib/libstdc++.so -L/usr/sfw/lib -lgcc_s -lnsl -lrt -lresolv -lsocket -lpthread -lthread -lrt -lgen -lsocket -lnsl -lm -lmtmalloc -lpthread -lthread -Wl,-R -Wl,/usr/sfw/lib -Wl,-R -Wl,/usr/sfw/lib
ld: fatal: file /usr/sfw/lib/libstdc++.so: wrong ELF class: ELFCLASS32
ld: fatal: File processing errors. No output written to test
collect2: ld returned 1 exit status
*** Error code 1

How to repeat:
Push: https://intranet.mysql.com/secure/pushbuild/showpush.pl?dir=bzr_mysql-6.0-rpl&order=117

Log: https://intranet.mysql.com/secure/pushbuild/getlog.pl?dir=bzr_mysql-6.0-rpl&entry=Alfranio...
[19 Dec 2008 7:45] Mats Kindahl
The linking failure is because the server is compiled in 64-bit mode (-m64) but linked with a 32-bit library (/usr/sfw/lib/libstdc++.so). The build should link with /usr/sfw/lib/64/libstdc++.so instead.
[19 Dec 2008 16:59] Sven Sandberg
This isn't specific to rpl trees, it happens in main too.
[28 Dec 2008 6:25] Kent Boortz
The build was done using Solaris "make", not able to handle
some GNU specific constructs.

The host was updated with a new OS install, and GNU tools
where installed in other locations, and using other names.
Adjusted and restarted the pushbuild configuration, to pick
up "gmake" and "gtar" from "/opt/csw/bin and "/usr/sfw/bin".