* libtool.m4 (LD): Append -melf* option to LD on IRIX with GNU ld.
authorAlexandre Oliva <aoliva@redhat.com>
Thu, 20 Feb 2003 01:12:28 +0000 (01:12 +0000)
committerAlexandre Oliva <aoliva@redhat.com>
Thu, 20 Feb 2003 01:12:28 +0000 (01:12 +0000)
* ltconfig: Handle it.
* ltcf-cxx.sh: Use with_gnu_ld passed as a shell variable instead of
auto-detecting it.

ChangeLog
libtool.m4
ltcf-cxx.sh
ltconfig

index e9f87acd17b18e9457986988898456b33e90c381..29ced0e928bd8ce01319df14c1b4c7c6577e8deb 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2003-02-19  Alexandre Oliva  <aoliva@redhat.com>
+
+       * libtool.m4 (LD): Append -melf* option to LD on IRIX with GNU ld.
+       * ltconfig: Handle it.
+       * ltcf-cxx.sh: Use with_gnu_ld passed as a shell variable instead of
+       auto-detecting it.
+
 2003-02-19  Alexandre Oliva  <aoliva@redhat.com>
 
        * ltcf-cxx.sh: Replace $linker_flags with $compiler_flags wherever
index 3f452bcba281a46434baa6e2a679b2b2568b0afc..eca1da32ec5f9b1f41c3a80b6019047618251388 100644 (file)
@@ -144,6 +144,19 @@ case $host in
   # Find out which ABI we are using.
   echo '[#]line __oline__ "configure"' > conftest.$ac_ext
   if AC_TRY_EVAL(ac_compile); then
+   if test "$lt_cv_prog_gnu_ld" = yes; then
+    case `/usr/bin/file conftest.$ac_objext` in
+    *32-bit*)
+      LD="${LD-ld} -melf32bsmip"
+      ;;
+    *N32*)
+      LD="${LD-ld} -melf32bmipn32"
+      ;;
+    *64-bit*)
+      LD="${LD-ld} -melf64bmip"
+      ;;
+    esac
+   else
     case `/usr/bin/file conftest.$ac_objext` in
     *32-bit*)
       LD="${LD-ld} -32"
@@ -155,6 +168,7 @@ case $host in
       LD="${LD-ld} -64"
       ;;
     esac
+   fi
   fi
   rm -rf conftest*
   ;;
index c239ee1649db7a9f54cb98ff6e6dd54313500791..9059b1a002f15dabee816f5bc6c210e002acda3e 100644 (file)
@@ -68,11 +68,16 @@ if { ac_try='${CC-c++} -E conftest.$ac_ext'; { (eval echo \"$ac_try\") 1>&5; (ev
   # Set up default GNU C++ configuration
 
   # Check if GNU C++ uses GNU ld as the underlying linker, since the
-  # archiving commands below assume that GNU ld is being used.
-  if eval "`$CC -print-prog-name=ld` --version 2>&1" | \
-      egrep 'GNU ld' > /dev/null; then
-    with_gnu_ld=yes
-
+  # archiving commands below assume that GNU ld is being used.  The
+  # assumption here is that the linker is going to be the same as that
+  # used by the C compiler.  For the purposes of GCC, this is ok, but
+  # if someone uses g++ along with a non-GNU C compiler that doesn't
+  # use GNU ld, we may lose.  This is ok for the toolchain tree, since
+  # the only users of ltcf-cxx.sh are libstdc++-v3 and libjava,
+  # anyway, and those use both gcc and g++, so the settings are bound
+  # to be the same.
+
+  if test "$with_gnu_ld" = yes; then
     archive_cmds='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
     archive_expsym_cmds='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
 
@@ -92,7 +97,6 @@ if { ac_try='${CC-c++} -E conftest.$ac_ext'; { (eval echo \"$ac_try\") 1>&5; (ev
       whole_archive_flag_spec=
     fi
   else
-    with_gnu_ld=no
     wlarc=
 
     # A generic and very simple default shared library creation
@@ -110,7 +114,6 @@ if { ac_try='${CC-c++} -E conftest.$ac_ext'; { (eval echo \"$ac_try\") 1>&5; (ev
 
 else
   with_gcc=no
-  with_gnu_ld=no
   wlarc=
 fi
 
index 5ccefe0463e0b93abadda8422d97c4330122d2bc..5be608915e27efafa52be84e5229ee6db6e7065d 100755 (executable)
--- a/ltconfig
+++ b/ltconfig
@@ -1186,6 +1186,11 @@ hpux9* | hpux10* | hpux11*)
   ;;
 
 irix5* | irix6*)
+  if test "$with_gnu_ld" = yes; then
+    version_type=linux
+  else
+    version_type=irix
+  if
   version_type=irix
   need_lib_prefix=no
   need_version=no
@@ -1197,9 +1202,12 @@ irix5* | irix6*)
     ;;
   *)
     case $LD in # libtool.m4 will add one of these switches to LD
-    *-32|*"-32 ") libsuff= shlibsuff= libmagic=32-bit;;
-    *-n32|*"-n32 ") libsuff=32 shlibsuff=N32 libmagic=N32;;
-    *-64|*"-64 ") libsuff=64 shlibsuff=64 libmagic=64-bit;;
+    *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
+      libsuff= shlibsuff= libmagic=32-bit;;
+    *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
+      libsuff=32 shlibsuff=N32 libmagic=N32;;
+    *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
+      libsuff=64 shlibsuff=64 libmagic=64-bit;;
     *) libsuff= shlibsuff= libmagic=never-match;;
     esac
     ;;