]> git.ipfire.org Git - thirdparty/libtool.git/commitdiff
improved aix support
authorGary V. Vaughan <gary@gnu.org>
Fri, 15 Jan 1999 12:31:10 +0000 (12:31 +0000)
committerGary V. Vaughan <gary@gnu.org>
Fri, 15 Jan 1999 12:31:10 +0000 (12:31 +0000)
ChangeLog
NEWS
THANKS
libtoolize.in
ltconfig.in

index 8a9815c9e68a8b5f61115323522307ae7bb20e03..8c061b51db8cd040e838eecf3c041d3f1a3e0af1 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,16 @@
+1999-01-15  Gary V. Vaughan  <gvaughan@oranda.demon.co.uk>
+
+       From Andrey Slepuhin <pooh@msu.ru>
+       * libtoolize.in (cd $pkgdatadir): Make sure we return the the
+       working directory when this is done.
+
+       From Andrey Slepuhin <pooh@msu.ru>
+       * ltconfig.in (aix): Use shared library support correctly on
+       aix4*, and tweak the config for aix3.
+       * NEWS: added aix3 and aix4 to list of hosts with improved
+       support.
+       * THANKS: added Andrey Slepuhin <pooh@msu.ru>.
+
 1999-01-15  Thomas Tanner  <tanner@gmx.de>
 
        * Makefile.am (@DIST_MAKEFILE_LIST@): added a second '$' 
@@ -34,6 +47,7 @@
          
 1999-01-14  Gary V. Vaughan  <garyv@oranda.demon.co.uk>
 
+       * THANKS: added Mark Elbrecht.
        * ltconfig.in (PATH_SEPARATOR): new variable to hold valid $PATH
        separator characters for the build host, to support DJGPP
        environment.
diff --git a/NEWS b/NEWS
index 4feb92f9d0ef064f8c57417e7046caf60e68be6b..6f1b7d0a50af337f296e8b2f73c7b0205dd1ab5e 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -3,7 +3,7 @@ NEWS - list of user-visible changes between releases of GNU Libtool
 New in 1.2e: CVS version:
 * Support -R for specifying run-time path of programs and library dependencies
 * Support for BeOS
-* Improved support for Win32, SysV 4.3, BSD/OS 4.x and NetBSD
+* Improved support for Win32, aix3, aix4, SysV 4.3, BSD/OS 4.x and NetBSD
 * Various bugfixes
 
 New in 1.2c: CVS version; 1.2d: 1998-12-16, Libtool team:
diff --git a/THANKS b/THANKS
index 6d5cfb152edbe3d0eb17398f546cc93208d9e00c..24ce7f2252276d28c0a546772192f8855108dda8 100644 (file)
--- a/THANKS
+++ b/THANKS
@@ -9,6 +9,7 @@ time and energy in helping to track down bugs, port to new systems,
 and generally assist in the libtool maintainership process:
 
 Akim Demaille <demaille@inf.enst.fr>
+Andrey Slepuhin <pooh@msu.ru>
 Bruno Haible <haible@ilog.fr>
 Carl D. Roth <roth@cse.ucsc.edu>
 Charles S. Kerr <cskerr@delenn.jccbi.gov>
@@ -25,6 +26,7 @@ Joseph Beckenbach III <jrb3@best.com>
 Karl Berry <kb@cs.umb.edu>
 Kenneth Albanowski <kjahds@kjahds.com>
 Marc J. Fraioli <fraioli@dg-rtp.dg.com>
+Mark Elbrecht <snowball3@usa.net>
 Mark Kettenis <kettenis@phys.uva.nl>
 Mimi Burbank <mimi@scri.fsu.edu>
 Oliver Guntermann <og@informatik.uni-hannover.de>
index 09510795da6c893eb5f6f59b38df74de0fbe0604..b98cfabb6d82d11258820d3caa71f6ff1b381b01 100644 (file)
@@ -140,7 +140,7 @@ if test ! -f configure.in; then
 fi
 
 
-if cd $pkgdatadir && ls; then :
+if (cd $pkgdatadir && ls); then :
 else
   echo "$progname: cannot list files in \`$pkgdatadir'" 1>&2
   exit 1
index 7c57f29c11a1ed572f1a19261faa622dfa884ccc..8b6681a4c6653b1821e9a9ec90bdd15470956cd2 100755 (executable)
@@ -590,9 +590,18 @@ if test "$with_gcc" = yes; then
   link_static_flag='-static'
 
   case "$host_os" in
-  aix3* | aix4* | beos* | irix5* | irix6* | osf3* | osf4*)
+  beos* | irix5* | irix6* | osf3* | osf4*)
     # PIC is the default for these OSes.
     ;;
+  aix*)
+    # Below there is a dirty hack to force normal static linking with -ldl
+    # The problem is because libdl dynamically linked with both libc and
+    # libC (AIX C++ library), which obviously doesn't included in libraries
+    # list by gcc. This cause undefined symbols with -static flags.
+    # This hack allows C programs to be linked with "-static -ldl", but
+    # we not sure about C++ programs.
+    link_static_flag="$link_static_flag -Wl,-lC"
+    ;;
   cygwin32* | mingw32* | os2*)
     # We can build DLLs from non-PIC.
     ;;
@@ -1120,13 +1129,24 @@ else
     ;;
 
   aix4*)
-    allow_undefined_flag=unsupported
-    archive_cmds='$NM $libobjs | $global_symbol_pipe | sed '\''s/.* //'\' | sort | uniq' > $lib.exp        else cat $export_symbols > $lib.exp~
-       $CC -o $objdir/$soname $libobjs $deplibs ${wl}-bE:$lib.exp ${wl}-bM:SRE ${wl}-bnoentry~$AR cru $lib $objdir/$soname'
-    archive_sym_cmds='$CC -o $objdir/$soname $libobjs $deplibs ${wl}-bE:$export_symbols ${wl}-bM:SRE ${wl}-bnoentry~$AR cru $lib $objdir/$soname'
+    allow_undefined_flag=
+    if test "$with_gcc" = yes; then
+      # collect2 in egcs and probably latest gcc has full support for
+      # -shared flag, so we feel much better.
+      archive_cmds='$CC -shared $thread_safe_flags -o $objdir/$soname $libobjs $deplibs'
+    else
+      archive_cmds='$NM $libobjs | $global_symbol_pipe | sed '\''s/.* //'\' | sort | uniq' > $lib.exp        else cat $export_symbols > $lib.exp~
+      $CC -o $objdir/$soname $libobjs $deplibs ${wl}-bE:$lib.exp ${wl}-bM:SRE ${wl}-bnoentry'
+      archive_sym_cmds='$CC -o $objdir/$soname $libobjs $deplibs ${wl}-bE:$export_symbols ${wl}-bM:SRE ${wl}-bnoentry'
+    fi
     hardcode_direct=yes
     hardcode_minus_L=yes
-    ;;
+    # Though LIBPATH variable hardcodes shlibpath into executable,
+    # it doesn't affect searching for -l* libraries; this confuses
+    # tests in mdemo.
+    hardcode_shlibpath_var=unsupported
+    hardcode_libdir_flag_spec='-L$libdir'
+   ;;
 
   amigaos*)
     archive_cmds='$rm $objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $objdir/a2ixlibrary.data~$AR cru $lib $libobjs~$RANLIB $lib~(cd $objdir && a2ixlibrary -32)'
@@ -1585,7 +1605,7 @@ deplibs_check_method='none'
 # Notes: regexs are run through expr.
 echo $ac_n "checking dynamic linker characteristics... $ac_c" 1>&6
 case "$host_os" in
-aix3* | aix4*)
+aix3*)
   version_type=linux
   library_names_spec='${libname}${release}.so$versuffix $libname.a'
   shlibpath_var=LIBPATH
@@ -1594,6 +1614,18 @@ aix3* | aix4*)
   soname_spec='${libname}${release}.so$major'
   ;;
 
+aix4*)
+  version_type=linux
+  # AIX has no versioning support, so currently we can not hardcode correct
+  # soname into executable. Probably we can add versioning support to
+  # collect2, so additional links can be useful in future.
+  # We preserve .a as extension for shared libraries though AIX4.2
+  # and later linker supports .so
+  library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.a'
+  shlibpath_var=LIBPATH
+  deplibs_check_method=pass_all
+  ;;
+
 amigaos*)
   library_names_spec='$libname.ixlibrary $libname.a'
   # Create ${libname}_ixlibrary.a entries in /sys/libs.
@@ -1805,13 +1837,17 @@ test "$can_build_shared" = "no" && enable_shared=no
 # On AIX, shared libraries and static libraries use the same namespace, and
 # are all built from PIC.
 case "$host_os" in
-aix*)
+aix3*)
   test "$enable_shared" = yes && enable_static=no
   if test -n "$RANLIB"; then
     archive_cmds="$archive_cmds~\$RANLIB \$lib"
     postinstall_cmds='$RANLIB $lib'
   fi
   ;;
+
+aix4*)
+  test "$enable_shared" = yes && enable_static=no
+  ;;
 esac
 
 echo "$ac_t$enable_shared" 1>&6