tests: do not test undef symbols across shlibs on AIX.

On AIX, undefined symbols across shared libraries can work only
when the main program explicitly exports those symbols. As this
is bad practice anyway and -no-undefined should be preferred, we
skip this.
* tests/template.at: Skip test with undef syms across libraries
on AIX.

Signed-off-by: Gary V. Vaughan <gary@gnu.org>
This commit is contained in:
Michael Haubenwallner 2014-11-21 19:03:26 +00:00 committed by Gary V. Vaughan
parent 8083d2b47b
commit 845ff0b768

View File

@ -129,10 +129,12 @@ LT_AT_TAG([CXX])
AT_KEYWORDS([libtool])
noskip=:
withundef=:
# Mac OS X.
# The linker has issues with this test.
case $host in
*-darwin*) noskip=false ;;
*-aix*) withundef=false ;;
esac
@ -243,7 +245,7 @@ AT_CHECK([$LIBTOOL --tag=CXX --mode=link $CXX $CXXFLAGS $LDFLAGS -o sub/main$EXE
[0], [ignore], [ignore])
LT_AT_EXEC_CHECK([./sub/main], [ignore])
# lib convenience
if $noskip; then
if $noskip && $withundef; then
AT_CHECK([$LIBTOOL --tag=CXX --mode=link $CXX $CXXFLAGS $LDFLAGS -o lib2/libb.la lib2/b.lo -rpath /foo],
[0], [ignore], [ignore])
AT_CHECK([$LIBTOOL --tag=CXX --mode=link $CXX $CXXFLAGS $LDFLAGS -o sub/main$EXEEXT $main_o lib2/libb.la lib/liba.la],
@ -254,11 +256,14 @@ fi
# both installed
AT_CHECK([$LIBTOOL --tag=CXX --mode=link $CXX $CXXFLAGS $LDFLAGS -o lib/liba.la lib/a.lo -rpath /foo],
[0], [ignore], [ignore])
AT_CHECK([$LIBTOOL --tag=CXX --mode=link $CXX $CXXFLAGS $LDFLAGS -o lib2/libb.la lib2/b.lo -rpath /bar],
[0], [ignore], [ignore])
AT_CHECK([$LIBTOOL --tag=CXX --mode=link $CXX $CXXFLAGS $LDFLAGS -o sub/main$EXEEXT $main_o lib2/libb.la lib/liba.la],
[0], [ignore], [ignore])
LT_AT_EXEC_CHECK([./sub/main])
if $withundef; then
AT_CHECK([$LIBTOOL --tag=CXX --mode=link $CXX $CXXFLAGS $LDFLAGS -o lib2/libb.la lib2/b.lo -rpath /bar],
[0], [ignore], [ignore])
AT_CHECK([$LIBTOOL --tag=CXX --mode=link $CXX $CXXFLAGS $LDFLAGS -o sub/main$EXEEXT $main_o lib2/libb.la lib/liba.la],
[0], [ignore], [ignore])
LT_AT_EXEC_CHECK([./sub/main])
fi
# both convenience, libb depending on liba
AT_CHECK([$LIBTOOL --tag=CXX --mode=link $CXX $CXXFLAGS $LDFLAGS -o lib/liba.la lib/a.lo],
[0], [ignore], [ignore])