libtool-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: tagdemo link problem libtool HEAD / AIX 5.3


From: Rainer Tammer
Subject: Re: tagdemo link problem libtool HEAD / AIX 5.3
Date: Tue, 15 Jan 2008 09:13:25 +0100
User-agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.8.1.3) Gecko/20070326 Thunderbird/2.0.0.0 Mnenhy/0.7.5.0

Hello Ralf,
I rechecked the following combinations (just to be sure :-)):

branch-1.5: AIX 6.1 / IBM XL C/C++ 9.0 + gfortran 4.2.2 / AIX ar/nm
=> All 112 tests passed

branch-1.5: AIX 6.1 / gcc 4.2.2 compiled for AIX 5.3 from www.perzl.org / AIX ar/nm
=> All 112 tests passed

branch-1.5: AIX 5.3 / IBM VisualAge C/C++ 6.0 + gfortran 4.2.2 / AIX ar/nm
=> All 112 tests passed

branch-1.5: AIX 5.3 / gcc 4.2.2 compiled for AIX 5.3 from www.perzl.org / AIX ar/nm
=> All 112 tests passed

branch-1.5: AIX 5.3 / gcc 4.2.2 compiled for AIX 5.3 from www.perzl.org / binutils ar/nm
=> 2 of 110 tests failed

1. failure
g++ -g -O2 -Wl,-brtl -o .libs/tagdemo main.o -L./.libs -lbaz -L/opt/freeware/src/packages/BUILD/gcc-build/powerpc-ibm-aix5.3.0.0/libstdc++-v3/src -L/opt/freeware/src/packages/BUILD/gcc-build/powerpc-ibm-aix5.3.0.0/libstdc++-v3/src/.libs -L/opt/freeware/src/packages/BUILD/gcc-build/./gcc -L/opt/freeware/lib/gcc/powerpc-ibm-aix5.3.0.0/ ../.. -L/opt/freeware/lib/gcc/powerpc-ibm-aix5.3.0.0/4.2.2 -lstdc++ -Wl,-blibpath:/daten/source/libtool/branch-1-5/libtool-20080113-gcc/tests/_inst/lib:/opt/freeware/lib/gcc/powerpc-ibm-aix5.3.0.0/4.2.2:/opt/freeware/lib/gcc/powerpc-ibm-aix5.3.0.0/4.2.2:/opt/freeware/lib/gcc/powerpc-ibm-aix5.3.0.0/4.2.2/../../..:/usr/lib:/lib
ld: 0711-317 ERROR: Undefined symbol: vtable for foobar_derived
ld: 0711-317 ERROR: Undefined symbol: vtable for barbaz_derived
ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more information.
collect2: ld returned 8 exit status
gmake[3]: *** [tagdemo] Error 1
gmake[3]: Target `all' not remade because of errors.
gmake[3]: Leaving directory `/daten/source/libtool/branch-1-5/libtool-20080113-gcc/tagdemo'
FAIL: tagdemo-make.test

2. failure
g++ -g -O2 -Wl,-brtl -o .libs/tagdemo main.o -L./.libs -lbaz -L/opt/freeware/src/packages/BUILD/gcc-build/powerpc-ibm-aix5.3.0.0/libstdc++-v3/src -L/opt/freeware/src/packages/BUILD/gcc-build/powerpc-ibm-aix5.3.0.0/libstdc++-v3/src/.libs -L/opt/freeware/src/packages/BUILD/gcc-build/./gcc -L/opt/freeware/lib/gcc/powerpc-ibm-aix5.3.0.0/ ../.. -L/opt/freeware/lib/gcc/powerpc-ibm-aix5.3.0.0/4.2.2 -lstdc++ -Wl,-blibpath:/daten/source/libtool/branch-1-5/libtool-20080113-gcc/tests/_inst/lib:/opt/freeware/lib/gcc/powerpc-ibm-aix5.3.0.0/4.2.2:/opt/freeware/lib/gcc/powerpc-ibm-aix5.3.0.0/4.2.2:/opt/freeware/lib/gcc/powerpc-ibm-aix5.3.0.0/4.2.2/../../..:/usr/lib:/lib
ld: 0711-317 ERROR: Undefined symbol: vtable for foobar_derived
ld: 0711-317 ERROR: Undefined symbol: vtable for barbaz_derived
ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more information.
collect2: ld returned 8 exit status
gmake[3]: *** [tagdemo] Error 1
gmake[3]: Target `all' not remade because of errors.
gmake[3]: Leaving directory `/daten/source/libtool/branch-1-5/libtool-20080113-gcc/tagdemo'
FAIL: tagdemo-make.test

branch-1.5: AIX 5.2 / IBM XL C/C++ 8.0 / AIX ar/nm
=> All tests are OK

HEAD: AIX 6.1 / IBM XL C/C++ 9.0 + gfortran 4.2.2 / AIX ar/nm
=> All 124 tests passed + testsuite 57 tests passed + 2 skipped (8 + 14)

HEAD: AIX 6.1 / gcc 4.2.2 compiled for AIX 5.3 from www.perzl.org / AIX ar/nm
=> All 124 tests passed + testsuite 57 tests passed + 2 skipped (8 + 14)

HEAD: AIX 5.3 / IBM VisualAge C/C++ 6.0 + gfortran 4.2.2 / AIX ar/nm
=> All 124 tests passwd + testsuite 57 tests passed + 2 skipped (8 + 14)

HEAD: AIX 5.3 / gcc 4.2.2 compiled for AIX 5.3 from www.perzl.org / AIX ar/nm
=> All 124 tests passwd + testsuite 57 tests passed + 2 skipped (8 + 14)


Ah, great.  So it seems we finally got all AIX issues nailed.  The GCC
fixincludes screwup for unistd.h seems likely to break other headers as
well, and more importantly, I think it should be breaking lots of
packages.  Surely we could
  #ifndef R_OK
  # define R_OK 4
  #endif

just like we do for MSVC, but we certainly cannot replace all of
unistd.h (and no, I'm not going to drag in gnulib for a GCC bug in
a way old version).  Let that be fixed upstream.

The problem is not the R_OK is not defined, the problem is that rid_t is not in the gcc version of sys/types.h. If you add "typedef uint_t rid_t; /* role ID */" to sys/types.h then the R_OK problem is gone.
Furthermore this only happens on AIX 6.1 not on 5.x.

By the time we have a fully working gcc 4.2.2 on AIX 6.1 the problem should went away.
And if the old Toolbox ar/nm is installed things are going wrong.

Well, we strive to make that work for as many setups as possible, but
for this one I think we should just put a note in doc/notes.texi.
Thats OK.
I've applied the patch below and backported it to branch-1-5's README.
(I don't like unconditionally rejecting free-software binutils over
proprietary native, because it may be fixed in due time, or a newer
version is already, and actually testing for the C++ link failure just
for deciding which nm to use would be too complex.)

I have just the same feeling.
Is it possible to check if we are on AIX and then switch automatically to the AIX ar/nm ??

Possibly.  But it would be rather complicated, and this is IMHO a rather
rare use case for which I don't think the added complexity is worth it.

OK, it's now in the notes and thus everyone can read it :-))

Thank you very much for your help.

If you need further test (not only libtool) on AIX please feel free to contact me via personal mail.
Cheers,
Ralf

Bye
 Rainer


P.S.: When will you put the new config.guess in autoconf ?
I still see the old version in git.





reply via email to

[Prev in Thread] Current Thread [Next in Thread]