Subject: Re: bug#10569: libtool-2.4.2 4 of 102 tests failed

From: Dennis Clarke <[email-masked]>
Date: Sat, 21 Jan 2012 10:35:44 -0500 (EST)

> Dennis,
>
> Where did the architecture-specific flags (-mcpu=970 -mtune=970
> -maltivec -mabi=altivec -mvrsave -m64 -mpowerpc64 -mfull-toc
> -malign-power -mupdate -mcall-linux -msvr4-struct-return) come from?
> Do you have a config.site (e.g. /usr/local/share/config.site) file?
> The tests appear to be failing because the 64-bit standard C++ library
> needed satisfy the requirements of the non-default
> architecture-specific flags (e.g. -m64) was not found.  If these
> CFLAGS are (somehow) provided, then it may be necessary to pass extra
> LDFLAGS so that the linker knows where to find a compatible library
> (if it even exists).
>
> Bob
>

You hit the nail on the head.

In fact, Debian squeeze for PowerPC dow not even have a 64-bit C++ lib at all :

root@charon:~# aptitude search libstdc++
v   libstdc++-dev                   -
p   libstdc++5                      - The GNU Standard C++ Library v3
i   libstdc++6                      - The GNU Standard C++ Library v3
p   libstdc++6-4.3-dbg              - The GNU Standard C++ Library v3 (debugging
p   libstdc++6-4.3-dev              - The GNU Standard C++ Library v3 (developme
p   libstdc++6-4.3-doc              - The GNU Standard C++ Library v3 (documenta
p   libstdc++6-4.3-pic              - The GNU Standard C++ Library v3 (shared li
p   libstdc++6-4.4-dbg              - The GNU Standard C++ Library v3 (debugging
i A libstdc++6-4.4-dev              - The GNU Standard C++ Library v3 (developme
p   libstdc++6-4.4-doc              - The GNU Standard C++ Library v3 (documenta
p   libstdc++6-4.4-pic              - The GNU Standard C++ Library v3 (shared li
root@charon:~# ls -lab /usr/lib/gcc/powerpc-linux-gnu/4.4/libstdc++.so
lrwxrwxrwx 1 root root 23 Jan 16 05:42
/usr/lib/gcc/powerpc-linux-gnu/4.4/libstdc++.so -> ../../../libstdc++.so.6

I was just trying to build the Boehm-Demers-Weiser garbage collector
and ran into a brick wall with :

g++  -fPIC -DPIC -shared -nostdlib
/usr/lib/gcc/powerpc-linux-gnu/4.4.5/../../../../lib64/crti.o
/usr/lib/gcc/powerpc-linux-gnu/4.4.5/64/crtbeginS.o  .libs/gc_cpp.o  
-Wl,-rpath -Wl,/home/dclarke/build/gc-7.2alpha6/.libs -Wl,-rpath
-Wl,/usr/local/lib -L/usr/local/lib ./.libs/libgc.so -ldl
-L/usr/lib/gcc/powerpc-linux-gnu/4.4.5/64
-L/usr/lib/gcc/powerpc-linux-gnu/4.4.5/../../../../lib64 -L/lib/../lib64
-L/usr/lib/../lib64 -L/usr/lib/gcc/powerpc-linux-gnu/4.4.5
-L/usr/lib/gcc/powerpc-linux-gnu/4.4.5/../../.. -lstdc++ -lm -lpthread -lc
-lgcc_s /usr/lib/gcc/powerpc-linux-gnu/4.4.5/64/crtendS.o
/usr/lib/gcc/powerpc-linux-gnu/4.4.5/../../../../lib64/crtn.o  -mcpu=970
-mtune=970 -maltivec -mabi=altivec -mvrsave -m64 -mpowerpc64 -mfull-toc
-malign-power -mupdate -mcall-linux -msvr4-struct-return -pthread   -pthread
-Wl,-soname -Wl,libgccpp.so.1 -o .libs/libgccpp.so.1.0.3
/usr/bin/ld: skipping incompatible
/usr/lib/gcc/powerpc-linux-gnu/4.4.5/libstdc++.so when searching for -lstdc++
/usr/bin/ld: skipping incompatible
/usr/lib/gcc/powerpc-linux-gnu/4.4.5/libstdc++.a when searching for -lstdc++
/usr/bin/ld: skipping incompatible
/usr/lib/gcc/powerpc-linux-gnu/4.4.5/libstdc++.so when searching for -lstdc++
/usr/bin/ld: skipping incompatible
/usr/lib/gcc/powerpc-linux-gnu/4.4.5/libstdc++.a when searching for -lstdc++
/usr/bin/ld: skipping incompatible
/usr/lib/gcc/powerpc-linux-gnu/4.4.5/libstdc++.so when searching for -lstdc++
/usr/bin/ld: skipping incompatible
/usr/lib/gcc/powerpc-linux-gnu/4.4.5/libstdc++.a when searching for -lstdc++
/usr/bin/ld: cannot find -lstdc++
collect2: ld returned 1 exit status
gmake[1]: *** [libgccpp.la] Error 1

$ file /usr/lib/libstdc++.so.6.0.13
/usr/lib/libstdc++.so.6.0.13: ELF 32-bit MSB shared object, PowerPC or cisco
4500, version 1 (SYSV), dynamically linked, with unknown capability 0x41000000
= 0x13676e75, with unknown capability 0x10000 = 0xb0401, stripped

ka bam .. no 64-bit C++ standard lib.

Thus far everything I am building in /usr/local is 64-bit and built with flags
that you see above. Every test passes thus far. Everything except :

$ grep FAIL  libtool-2.4.2-001.README
FAIL: tests/tagdemo-static-make.test
FAIL: tests/tagdemo-make.test
FAIL: tests/tagdemo-shared-make.test
FAIL: tests/tagdemo-undef-make.test

I installed libtool anyways figureing this was my first pass stack.

$ /usr/local/bin/libtool --version
libtool (GNU libtool) 2.4.2
Written by Gordon Matzigkeit <[email-masked]>, 1996

Anyway, yes, I need to boot strap GCC myself and that was always the plan
anyway.  I just hope that like Sparc I will get both a 32-bit and a 64-bit set
of libs.

Dennis

-- 
--
http://pgp.mit.edu:11371/pks/lookup?op=vindex&search=0x1D936C72FA35B44B
+-------------------------+-----------------------------------+
| Dennis Clarke           | Solaris and Linux and Open Source |
| [email-masked]   | Respect for open standards.       |
+-------------------------+-----------------------------------+