From: Gordon Matzigkeit Date: Sat, 29 Nov 1997 21:03:42 +0000 (+0000) Subject: *** empty log message *** X-Git-Tag: release-1-0~34 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=bb6f3c73536bcf95797834dccb8c52270f1ad3bb;p=thirdparty%2Flibtool.git *** empty log message *** --- diff --git a/ChangeLog b/ChangeLog index f6591b36e..f5ffc3a54 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,20 @@ +Sat Nov 29 11:19:18 1997 Gordon Matzigkeit + + * ltconfig.in (COLLECT_NAMES): Enable this workaround for a broken + collect2 only on AIX 3. This avoids problems on other AIX + versions. Reported by Stefan Westerfeld. + + * ltmain.in, ltconfig.in (finish_eval): Variable like finish_cmds, + except it is a single command which is evaled, and not shown. + + * ltconfig.in: Port to AmigaOS. From Joop van de Wege. + + * ltmain.in (echo): Delete preamble to check for a working echo, + since we just use the one included in the generated libtool. + + * ltconfig.in (echo): Include this definition in the generated + libtool script. + Fri Nov 28 09:28:02 1997 Gordon Matzigkeit * ltconfig.in, libtool.m4 (NM): Add /usr/ccs/bin to the PATH @@ -52,7 +69,7 @@ Sun Nov 23 09:29:58 1997 Gordon Matzigkeit default. Make `-no-undefined' in order for people to declare that a library is entirely self-contained. This prevents maintainers from accidentally creating shared libraries that won't work on - AIX. Reported by Stefan Westerfield and Danny Backx. + AIX. Reported by Stefan Westerfeld and Danny Backx. * ltconfig.in (echo): Use an echo variable, just as in ltmain.in, because we need it for quoting substitutions. For most of the diff --git a/Makefile.am b/Makefile.am index 293c62cd2..ed1937d82 100644 --- a/Makefile.am +++ b/Makefile.am @@ -115,8 +115,8 @@ maintainer-check-versions: fi maintainer-release: maintainer-check-versions distcheck - cd $(top_srcdir) && $(PRCS) checkin $(PACKAGE) - cd $(top_srcdir) && $(PRCS) rekey $(PACKAGE) configure.in libtool.spec + cd $(top_srcdir) && $(PRCS) checkin -f $(PACKAGE) + cd $(top_srcdir) && $(PRCS) rekey -f $(PACKAGE) configure.in libtool.spec echo "============================="; \ echo "Congratulations! $(PACKAGE)-$(VERSION) is now complete."; \ echo; \ diff --git a/NEWS b/NEWS index 67cb99ee1..a9e528440 100644 --- a/NEWS +++ b/NEWS @@ -1,7 +1,9 @@ NEWS - list of user-visible changes between releases of GNU Libtool -New in 1.0x - 1997-XX-XX, Gordon Matzigkeit: +New in 1.0g - 1997-11-29, Gordon Matzigkeit: * Bug fixes. +* `-allow-undefined' is now the default. You can use `-no-undefined' + to declare that a shared library is completely self-contained. * Support for *-*-amigaos*. New in 1.0f - 1997-11-08, Gordon Matzigkeit: @@ -10,8 +12,6 @@ New in 1.0f - 1997-11-08, Gordon Matzigkeit: `-static' flag now just prevents dynamic linking of libtool libraries. * The `-rpath' flag can be used to hardcode absolute directories when linking executables using libtool. -* `-allow-undefined' is now the default. You can use `-no-undefined' - to declare that a shared library is completely self-contained. * Suppress duplicate compiler output during `compile' mode. * New `execute' mode to support debugging uninstalled libtool libraries and executables. diff --git a/TODO b/TODO index 5937ec597..ba6aa587c 100644 --- a/TODO +++ b/TODO @@ -1,8 +1,6 @@ For next public release: ************************ -* Integrate the AmigaOS patches found in lt-amiga.diff. - * Document `execute' mode, and the experimental nature of -dlopen and -dlpreopen. diff --git a/libtool.m4 b/libtool.m4 index 7f0770aea..e3cbf611c 100644 --- a/libtool.m4 +++ b/libtool.m4 @@ -196,7 +196,7 @@ AC_CACHE_VAL(ac_cv_path_NM, # Check to see if the nm accepts a BSD-compat flag. # Adding the `sed 1!d' prevents false positives on HP-UX, which says: # nm: unknown option "B" ignored - if ($ac_dir/nm -B /dev/null 2>&1 | sed '1!d'; exit 0) | egrep /dev/null >dev/null; then + if ($ac_dir/nm -B /dev/null 2>&1 | sed '1!d'; exit 0) | egrep /dev/null >/dev/null; then ac_cv_path_NM="$ac_dir/nm -B" elif ($ac_dir/nm -p /dev/null 2>&1 | sed '1!d'; exit 0) | egrep /dev/null >/dev/null; then ac_cv_path_NM="$ac_dir/nm -p" diff --git a/ltconfig.in b/ltconfig.in index 9975f9649..ab2696b56 100755 --- a/ltconfig.in +++ b/ltconfig.in @@ -27,28 +27,25 @@ # A lot of this script is taken from autoconf-2.10. echo=echo -if test "X`$echo '\t'`" = 'X\t'; then : +if test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then : else # The Solaris and AIX default echo program unquotes backslashes. # This makes it impossible to quote backslashes using # echo "$something" | sed 's/\\/\\\\/g' # So, we emulate echo with printf '%s\n' echo='printf %s\n' - if test "X`$echo '\t'`" = 'X\t'; then : + if test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then : else # Oops. We have no working printf. Try to find a not-so-buggy echo. echo=echo IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}:" - save_PATH="$PATH" - PATH="$PATH":/usr/ucb - for dir in $PATH; do + for dir in $PATH /usr/ucb; do if test -f $dir/echo && test "X`$dir/echo '\t'`" = 'X\t'; then echo="$dir/echo" break fi done IFS="$save_ifs" - PATH="$save_PATH" fi fi @@ -305,7 +302,7 @@ host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` case "$host_os" in -aix*) +aix3*) # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. @@ -458,6 +455,12 @@ if test "$with_gcc" = yes; then os2*) # We can build DLLs from non-PIC. ;; + amigaos*) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the `-m68020' flag to GCC prevents building anything better, + # like `-m68040'. + pic_flag='-m68020 -resident32 -malways-restore-a4' + ;; *) pic_flag='-fPIC' ;; @@ -688,7 +691,7 @@ hardcode_shlibpath_var=unsupported runpath_var= case "$host_os" in -sunos4*) +amigaos* | sunos4*) # On these operating systems, we should treat GNU ld like the system ld. gnu_ld_acts_native=yes ;; @@ -737,6 +740,12 @@ else hardcode_minus_L=yes ;; + 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)' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + ;; + # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # doesn't break anything, and helps significantly (at the cost of a little @@ -1074,6 +1083,7 @@ soname_spec= postinstall_cmds= postuninstall_cmds= finish_cmds= +finish_eval= shlibpath_var= version_type=none dynamic_linker="$host_os ld.so" @@ -1089,6 +1099,12 @@ aix3* | aix4*) soname_spec='$libname.so.$major' ;; +amigaos*) + library_names_spec='$libname.ixlibrary $libname.a' + # Create ${libname}_ixlibrary.a entries in /sys/libs. + finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "$lib" | sed '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "(cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a)"; (cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a) || exit 1; done' + ;; + freebsd2* | freebsd3*) version_type=sunos library_names_spec='$libname.so.$versuffix $libname.so' @@ -1153,7 +1169,6 @@ netbsd* | openbsd*) ;; os2*) - version_type=none libname_spec='$name' library_names_spec='$libname.dll $libname.a' dynamic_linker='OS/2 ld.exe' @@ -1246,13 +1261,13 @@ rmdir .libs 2>/dev/null echo "$ac_t$objdir" 1>&6 # Now quote all the things that may contain metacharacters. -for var in old_CC old_CFLAGS old_CPPFLAGS old_LD old_NM old_RANLIB \ +for var in echo old_CC old_CFLAGS old_CPPFLAGS old_LD old_NM old_RANLIB \ old_LN_S AR CC LD LN_S NM reload_flag reload_cmds wl pic_flag \ link_static_flag no_builtin_flag export_dynamic_flag_spec \ profile_flag_pattern libname_spec library_names_spec soname_spec RANLIB \ old_archive_cmds old_archive_from_new_cmds old_postinstall_cmds \ old_postuninstall_cmds archive_cmds postinstall_cmds postuninstall_cmds \ - allow_undefined_flag finish_cmds global_symbol_pipe \ + allow_undefined_flag finish_cmds finish_eval global_symbol_pipe \ striplib old_striplib \ hardcode_libdir_flag_spec hardcode_libdir_separator; do @@ -1289,6 +1304,9 @@ cat < $ofile # Compiler and other test output produced by $progname, useful for # debugging $progname, is in ./config.log if it exists. +# An echo program that doesn't interpret backslashes. +echo="$echo" + # The version of $progname that generated this script. LTCONFIG_VERSION="$VERSION" @@ -1378,6 +1396,9 @@ allow_undefined_flag="$allow_undefined_flag" # Commands used to finish a libtool library installation in a directory. finish_cmds="$finish_cmds" +# Same as above, but a single script fragment to be evaled but not shown. +finish_eval="$finish_eval" + # Take the output of nm and produce a listing of raw symbols and C names. global_symbol_pipe="$global_symbol_pipe" diff --git a/ltmain.in b/ltmain.in index ee3277746..033a928fd 100644 --- a/ltmain.in +++ b/ltmain.in @@ -990,8 +990,8 @@ if test -z "$show_help"; then # Create links to the real library. for linkname in $linknames; do - $show "(cd $objdir && $LN_S $realname $link)" - $run eval '(cd $objdir && $LN_S $realname $link)' || exit $? + $show "(cd $objdir && $LN_S $realname $linkname)" + $run eval '(cd $objdir && $LN_S $realname $linkname)' || exit $? done # If -export-dynamic was specified, set the dlname.