diff --git a/ChangeLog b/ChangeLog index 8a9815c9..8c061b51 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,16 @@ +1999-01-15 Gary V. Vaughan + + From Andrey Slepuhin + * libtoolize.in (cd $pkgdatadir): Make sure we return the the + working directory when this is done. + + From Andrey Slepuhin + * 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 . + 1999-01-15 Thomas Tanner * Makefile.am (@DIST_MAKEFILE_LIST@): added a second '$' @@ -34,6 +47,7 @@ 1999-01-14 Gary V. Vaughan + * 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 4feb92f9..6f1b7d0a 100644 --- 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 6d5cfb15..24ce7f22 100644 --- 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 +Andrey Slepuhin Bruno Haible Carl D. Roth Charles S. Kerr @@ -25,6 +26,7 @@ Joseph Beckenbach III Karl Berry Kenneth Albanowski Marc J. Fraioli +Mark Elbrecht Mark Kettenis Mimi Burbank Oliver Guntermann diff --git a/libtoolize.in b/libtoolize.in index 09510795..b98cfabb 100644 --- a/libtoolize.in +++ b/libtoolize.in @@ -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 diff --git a/ltconfig.in b/ltconfig.in index 7c57f29c..8b6681a4 100755 --- a/ltconfig.in +++ b/ltconfig.in @@ -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