From: Gordon Matzigkeit Date: Mon, 20 Oct 1997 01:24:09 +0000 (+0000) Subject: *** empty log message *** X-Git-Tag: release-1-0~56 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7c5fe1050f32573ee33342764634e0d4a413af67;p=thirdparty%2Flibtool.git *** empty log message *** --- diff --git a/ChangeLog b/ChangeLog index 9c17b8587..8795a2a63 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,19 @@ Sun Oct 19 12:48:14 1997 Gordon Matzigkeit + * ltconfig.in (LD): Same as below. + + * libtool.m4 (LD): Set LD if we discover an absolute path to GNU + ld. This avoids unnecessary tests. Reported by Ulrich Drepper. + + * ltconfig.in: Port to OS/2 using EMX. From Jeff Freedman. + (double_quote_subst): sed substitution to protect metacharacters + in variables that are evaled twice. + + * ltmain.in (link): Use old_archive_from_new_cmds. + + * ltconfig.in (old_archive_from_new_cmds): New variable to + support DLL libraries. + * ltmain.in (link): Only `eval' export_dynamic_flag_spec if it is not empty. Reported by Stephan Kulow. diff --git a/NEWS b/NEWS index de298f9e0..19a3f8f0b 100644 --- a/NEWS +++ b/NEWS @@ -26,7 +26,7 @@ New in 1.0d: * Allow configure.in to change the defaults for AM_PROG_LIBTOOL's `--enable-shared' and `--enable-static' flags by setting the `enable_shared' or `enable_static' shell variables to `no'. -* Support for UTS 4.x. +* Support for *-*-uts4* and *-*-os2*. New in 1.0: * Bug fixes. diff --git a/README b/README index b90252328..d4a128630 100644 --- a/README +++ b/README @@ -18,6 +18,7 @@ Shared library support has been implemented for these platforms: Linux ELF (*-*-linux*, except aout, coff, and oldld) NetBSD 1.x (*-*-netbsd*) OpenBSD 2.x (*-*-openbsd*) + OS/2 using EMX (*-*-os2*) SCO OpenServer 5.x (*-*-sco3.2v5*) Solaris 2.x (*-*-solaris2*) SunOS 4.x, a.k.a. Solaris 1.x (*-*-sunos4*) diff --git a/configure.in b/configure.in index 2472c1780..ec0bb8947 100644 --- a/configure.in +++ b/configure.in @@ -1,6 +1,6 @@ dnl Process this file with autoconf to create configure. AC_INIT(ltmain.in) -AM_INIT_AUTOMAKE(libtool,1.0d) +AM_INIT_AUTOMAKE(libtool,1.0e) pkgdatadir='${datadir}/libtool' AC_SUBST(pkgdatadir) diff --git a/libtool.m4 b/libtool.m4 index d6670a592..6c3b5d440 100644 --- a/libtool.m4 +++ b/libtool.m4 @@ -21,7 +21,7 @@ ## configuration script generated by Autoconf, you may include it under ## the same distribution terms that you use for the rest of that program. -# serial 14 AM_PROG_LIBTOOL +# serial 15 AM_PROG_LIBTOOL AC_DEFUN(AM_PROG_LIBTOOL, [AC_REQUIRE([AC_CANONICAL_HOST]) AC_REQUIRE([AC_PROG_RANLIB]) @@ -103,7 +103,9 @@ if test "$ac_cv_prog_gcc" = yes; then ac_prog=`($CC -print-prog-name=ld) 2>&5` case "$ac_prog" in # Accept absolute paths. - /*) ;; + /*) + test -z "$LD" && LD="$ac_prog" + ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld diff --git a/ltconfig.in b/ltconfig.in index f0335c535..0a996fc80 100755 --- a/ltconfig.in +++ b/ltconfig.in @@ -41,7 +41,10 @@ help="Try \`$progname --help' for more information." # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. -sed_quote_subst='s/\([\\"$]\)/\\\1/g' +sed_quote_subst='s/\([\\"$\\\\]\)/\\\1/g' + +# Same as above, but don't quote variable references. +double_quote_subst='s/\([\\"\\\\]\)/\\\1/g' # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems @@ -262,6 +265,9 @@ if test "$verify_host" = yes; then host=`$ac_config_sub $host_alias` echo "$ac_t$host" 1>&6 + # Make sure the host verified. + test -z "$host" && exit 1 + elif test -z "$host"; then echo "$progname: you must specify a host type if you use \`--no-verify'" 1>&2 echo "$help" 1>&2 @@ -427,7 +433,7 @@ else # PORTME Check for PIC flags for the system compiler. case "$host_os" in aix3* | aix4*) - # FIXME All rs/6000 code is PIC, but is there any non-rs/6000 AIX platform? + # All AIX code is PIC. link_static_flag='-bnso -bI:/lib/syscalls.exp' ;; @@ -444,8 +450,12 @@ else pic_flag= ;; + os2*) + # We can build DLLs from non-PIC. + ;; + osf3* | osf4*) - # FIXME - pic_flag is probably required for hppa*-osf* and i860-osf* + # All OSF/1 code is PIC. wl='-Wl,' link_static_flag='-non_shared' ;; @@ -479,14 +489,6 @@ else esac fi -case "$host_cpu" in -alpha | rs6000 | powerpc | powerpcle) - # Yippee! All RS/6000 and PowerPC code is position-independent. - # Apparently, so is DEC alpha! - pic_flag= - ;; -esac - if test -n "$pic_flag"; then echo "$ac_t$pic_flag" 1>&6 @@ -576,7 +578,9 @@ if test -z "$LD"; then ac_prog=`($CC -print-prog-name=ld) 2>&5` case "$ac_prog" in # Accept absolute paths. - /*) ;; + /*) + test -z "$LD" && LD="$ac_prog" + ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld @@ -594,22 +598,24 @@ if test -z "$LD"; then echo "$progname:@LINENO@: checking for non-GNU ld" >&5 fi - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" - for ac_dir in $PATH; do - test -z "$ac_dir" && ac_dir=. - if test -f "$ac_dir/$ac_prog"; then - LD="$ac_dir/$ac_prog" - # Check to see if the program is GNU ld. I'd rather use --version, - # but apparently some GNU ld's only accept -v. - # Break only if it was the GNU/non-GNU ld that we prefer. - if "$LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then - test "$with_gnu_ld" != no && break - else - test "$with_gnu_ld" != yes && break + if test -z "$LD"; then + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" + for ac_dir in $PATH; do + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog"; then + LD="$ac_dir/$ac_prog" + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some GNU ld's only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + if "$LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then + test "$with_gnu_ld" != no && break + else + test "$with_gnu_ld" != yes && break + fi fi - fi - done - IFS="$ac_save_ifs" + done + IFS="$ac_save_ifs" + fi if test -n "$LD"; then echo "$ac_t$LD" 1>&6 @@ -638,6 +644,7 @@ echo $ac_n "checking whether the linker ($LD) supports shared libraries... $ac_c allow_undefined_flag= archive_cmds= +old_archive_from_new_cmds= export_dynamic_flag_spec= hardcode_libdir_flag_spec= hardcode_libdir_separator= @@ -752,6 +759,14 @@ else hardcode_shlibpath_var=no ;; + os2*) + # FIXME: unsure of OS/2 hardcoding properties + hardcode_direct=yes + allow_undefined_flag=unsupported + archive_cmds='echo "LIBRARY $libname INITINSTANCE" > $objdir/$libname.def;echo "DESCRIPTION \"$libname\"" >> $objdir/$libname.def;echo DATA >> $objdir/$libname.def;echo " SINGLE NONSHARED" >> $objdir/$libname.def;echo EXPORTS >> $objdir/$libname.def;emxexp$libobjs >> $objdir/$libname.def;$CC -Zdll -Zcrtdll -o $lib$libobjs $objdir/$libname.def$deplibs' + old_archive_from_new_cmds='emximp -o $libname.a $objdir/$libname.def' + ;; + osf3*) allow_undefined_flag=' -expect_unresolved' archive_cmds='$LD -shared${allow_undefined_flag} -o $lib -soname $soname -set_version $verstring$libobjs$deplibs' @@ -1079,6 +1094,12 @@ netbsd* | openbsd*) shlibpath_var=LD_LIBRARY_PATH ;; +os2*) + version_type=none + library_names_spec='$libname.dll' + dynamic_linker='OS/2 ld.exe' + ;; + osf3* | osf4*) version_type=osf soname_spec='$libname.so' @@ -1150,7 +1171,8 @@ echo "checking if libtool supports shared libraries... $can_build_shared" 1>&6 echo $ac_n "checking whether to build shared libraries... $ac_c" 1>&6 test "$can_build_shared" = "no" && enable_shared=no -# On AIX, shared libraries and static libraries use the same namespace. +# On AIX, shared libraries and static libraries use the same namespace, and +# are all built from PIC. case "$host_os" in aix*) test "$enable_shared" = yes && enable_static=no @@ -1185,12 +1207,23 @@ for var in 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 library_names_spec soname_spec RANLIB \ - old_archive_cmds old_postinstall_cmds archive_cmds postinstall_cmds \ + old_archive_cmds old_archive_from_new_cmds old_postinstall_cmds \ + archive_cmds postinstall_cmds \ allow_undefined_flag finish_cmds global_symbol_pipe \ striplib old_striplib \ hardcode_libdir_flag_spec hardcode_libdir_separator; do - eval "$var=\`echo \"\$$var\" | sed \"\$sed_quote_subst\"\`" + case "$var" in + reload_cmds | old_archive_cmds | old_archive_from_new_cmds | \ + old_postinstall_cmds | archive_cmds | postinstall_cmds | finish_cmds | \ + global_symbol_pipe) + # Double-quote double-evaled strings. + eval "$var=\`echo \"\$$var\" | sed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\"\`" + ;; + *) + eval "$var=\`echo \"\$$var\" | sed \"\$sed_quote_subst\"\`" + ;; + esac done ofile=libtool @@ -1284,6 +1317,9 @@ RANLIB="$RANLIB" old_archive_cmds="$old_archive_cmds" old_postinstall_cmds="$old_postinstall_cmds" +# Create an old-style archive from a shared archive. +old_archive_from_new_cmds="$old_archive_from_new_cmds" + # Commands used to build and install a shared archive. archive_cmds="$archive_cmds" postinstall_cmds="$postinstall_cmds" diff --git a/ltmain.in b/ltmain.in index 1fbb60a59..6b120ccbb 100644 --- a/ltmain.in +++ b/ltmain.in @@ -66,7 +66,7 @@ rm="rm -f" # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. -sed_quote_subst='s/\([\\"$]\)/\\\1/g' +sed_quote_subst='s/\([\\"$\\\\]\)/\\\1/g' # NLS nuisances. # Only set LANG and LC_ALL to C if already set. @@ -1473,7 +1473,11 @@ EOF fi # Do each command in the archive commands. - cmds=`eval \\$echo \"$old_archive_cmds\"` + if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then + cmds=`eval \\$echo \"$old_archive_from_new_cmds\"` + else + cmds=`eval \\$echo \"$old_archive_cmds\"` + fi IFS="${IFS= }"; save_ifs="$IFS"; IFS=';' for cmd in $cmds; do IFS="$save_ifs"