]> git.ipfire.org Git - thirdparty/libtool.git/commitdiff
*** empty log message ***
authorGordon Matzigkeit <gord@gnu.org>
Mon, 20 Oct 1997 01:24:09 +0000 (01:24 +0000)
committerGordon Matzigkeit <gord@gnu.org>
Mon, 20 Oct 1997 01:24:09 +0000 (01:24 +0000)
ChangeLog
NEWS
README
configure.in
libtool.m4
ltconfig.in
ltmain.in

index 9c17b85873a63fbcbc6d322d5197a55461344657..8795a2a630303661921ef5e8fcdc85b91dc98d1e 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,19 @@
 Sun Oct 19 12:48:14 1997  Gordon Matzigkeit  <gord@gnu.org>
 
+       * 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 de298f9e072e9b6297c2045336b7dadf5633ce21..19a3f8f0bcb0997e422160b22bc255c20723ffec 100644 (file)
--- 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*.
 \f
 New in 1.0:
 * Bug fixes.
diff --git a/README b/README
index b9025232882801d4a4b82504d781d3c51d04cde2..d4a1286300ac5e220af62dd020efcaa321a10dc6 100644 (file)
--- 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*)
index 2472c1780e8f70d78611818476cfe117645571b6..ec0bb8947fa053902d06a1c5f8c2741a789369bf 100644 (file)
@@ -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)
index d6670a592f7797ccc4846e4992aafb9387c72d4c..6c3b5d4406f2990c25fb6571b1cb4b1c6acd042e 100644 (file)
@@ -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
index f0335c53571d0230de40ff2b3462a7fb7a8c1613..0a996fc80c8ff22cce1ea971a858a51a05d9229e 100755 (executable)
@@ -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"
index 1fbb60a5955b6628948316980cfa78d431231b9a..6b120ccbbc8d551d515585e8dfa39b7ac632a9b2 100644 (file)
--- 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"