libtool-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[SCM] GNU Libtool branch, master, updated. v2.2.6-189-g7efdc24


From: Ralf Wildenhues
Subject: [SCM] GNU Libtool branch, master, updated. v2.2.6-189-g7efdc24
Date: Sun, 28 Feb 2010 04:49:04 +0000

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU Libtool".

The branch, master has been updated
       via  7efdc2482e01bade122656c13b53423ec49f59db (commit)
      from  5627b263cc369f26ae90384e673653f64e0108ff (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 7efdc2482e01bade122656c13b53423ec49f59db
Author: Pierre Ossman <address@hidden>
Date:   Mon Feb 22 22:44:04 2010 +0100

    Fix deplibs check fallback for 64-bit Windows and Windows CE.
    
    * libltdl/m4/libtool.m4 (_LT_CHECK_MAGIC_METHOD): Accept file formats
    'pe-arm-wince' and 'pe-x86-64'.  Add note about consistency with ...
    * libltdl/config/ltmain.m4sh (func_win32_libid): ... the respective
    pattern here; sync pattern from the former.
    * tests/deplibs-mingw.at (deplibs without file command): New
    file, new test.
    * Makefile.am (TESTSUITE_AT): Update.
    * NEWS: Update.
    
    Signed-off-by: Ralf Wildenhues <address@hidden>

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog                  |   13 ++++++
 Makefile.am                |    3 +-
 NEWS                       |    1 +
 libltdl/config/ltmain.m4sh |    3 +-
 libltdl/m4/libtool.m4      |    3 +-
 tests/deplibs-mingw.at     |   93 ++++++++++++++++++++++++++++++++++++++++++++
 6 files changed, 113 insertions(+), 3 deletions(-)
 create mode 100644 tests/deplibs-mingw.at

diff --git a/ChangeLog b/ChangeLog
index 8445fbe..19873a1 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,16 @@
+2010-02-28  Pierre Ossman  <address@hidden>  (tiny change)
+            Ralf Wildenhues <address@hidden>
+
+       Fix deplibs check fallback for 64-bit Windows and Windows CE.
+       * libltdl/m4/libtool.m4 (_LT_CHECK_MAGIC_METHOD): Accept file formats
+       'pe-arm-wince' and 'pe-x86-64'.  Add note about consistency with ...
+       * libltdl/config/ltmain.m4sh (func_win32_libid): ... the respective
+       pattern here; sync pattern from the former.
+       * tests/deplibs-mingw.at (deplibs without file command): New
+       file, new test.
+       * Makefile.am (TESTSUITE_AT): Update.
+       * NEWS: Update.
+
 2010-02-24  Scott McCreary  <address@hidden>  (tiny change)
 
        Update search path on Haiku for legacy system directory.
diff --git a/Makefile.am b/Makefile.am
index 29a639a..a7de46d 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -504,7 +504,8 @@ TESTSUITE_AT        = tests/testsuite.at \
                  tests/configure-iface.at \
                  tests/stresstest.at \
                  tests/cmdline_wrap.at \
-                 tests/darwin.at
+                 tests/darwin.at \
+                 tests/deplibs-mingw.at
 
 EXTRA_DIST     += $(srcdir)/$(TESTSUITE) $(TESTSUITE_AT) 
$(srcdir)/tests/package.m4
 
diff --git a/NEWS b/NEWS
index 61638fd..00ab5c1 100644
--- a/NEWS
+++ b/NEWS
@@ -64,6 +64,7 @@ New in 2.2.8 2010-??-??: git version 2.2.7a, Libtool team:
     when using the compiler driver to link programs. Now "-Wc," is stripped
     just as it is when linking libraries through the compiler driver.
   - Symbol versioning works with the GNU gold linker now.
+  - Fixes for detection of shared library dependencies on MinGW systems.
 
 * Miscellaneous changes:
 
diff --git a/libltdl/config/ltmain.m4sh b/libltdl/config/ltmain.m4sh
index 56b7497..8fcedc9 100644
--- a/libltdl/config/ltmain.m4sh
+++ b/libltdl/config/ltmain.m4sh
@@ -2189,8 +2189,9 @@ func_win32_libid ()
     win32_libid_type="x86 archive import"
     ;;
   *ar\ archive*) # could be an import, or static
+    # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD.
     if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null |
-       $EGREP 'file format (pe-i386(.*architecture: 
i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then
+       $EGREP 'file format (pei*-i386(.*architecture: 
i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then
       win32_nmres=`eval $NM -f posix -A $1 |
        $SED -n -e '
            1,100{
diff --git a/libltdl/m4/libtool.m4 b/libltdl/m4/libtool.m4
index b538fa6..f99e618 100644
--- a/libltdl/m4/libtool.m4
+++ b/libltdl/m4/libtool.m4
@@ -3009,7 +3009,8 @@ mingw* | pw32*)
     lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
     lt_cv_file_magic_cmd='func_win32_libid'
   else
-    lt_cv_deplibs_check_method='file_magic file format 
pei*-i386(.*architecture: i386)?'
+    # Keep this pattern in sync with the one in func_win32_libid.
+    lt_cv_deplibs_check_method='file_magic file format 
(pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)'
     lt_cv_file_magic_cmd='$OBJDUMP -f'
   fi
   ;;
diff --git a/tests/deplibs-mingw.at b/tests/deplibs-mingw.at
new file mode 100644
index 0000000..68e8386
--- /dev/null
+++ b/tests/deplibs-mingw.at
@@ -0,0 +1,93 @@
+# deplibs-mingw.at --                         -*- Autotest -*-
+
+#   Copyright (C) 2010 Free Software Foundation, Inc.
+#
+#   This file is part of GNU Libtool.
+#
+# GNU Libtool is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License as
+# published by the Free Software Foundation; either version 2 of
+# the License, or (at your option) any later version.
+#
+# GNU Libtool is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GNU Libtool; see the file COPYING.  If not, a copy
+# can be downloaded from  http://www.gnu.org/licenses/gpl.html,
+# or obtained by writing to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+####
+
+# Check that deplibs are detected correctly even if there is no `file'
+# command installed.
+
+AT_SETUP([deplibs without file command])
+AT_KEYWORDS([libtool])
+
+cwd=`pwd`
+instdir=$cwd/inst
+libdir=$instdir/lib
+bindir=$instdir/bin
+LDFLAGS="$LDFLAGS -no-undefined"
+
+mkdir inst inst/bin inst/lib
+
+AT_DATA([a.c],
+[[int a () { return 0; }
+]])
+AT_DATA([b.c],
+[[extern int a ();
+int b () { return a (); }
+]])
+
+for file in a.c b.c; do
+  $LIBTOOL --mode=compile $CC $CPPFLAGS $CFLAGS -c $file
+done
+AT_CHECK([$LIBTOOL --mode=link $CC $CFLAGS $LDFLAGS -o liba.la a.lo -rpath 
$libdir],
+        [], [ignore], [ignore])
+AT_CHECK([library_names= && . ./liba.la && if test -z "$library_names"; then 
exit 77; fi ],
+        [], [ignore], [ignore])
+AT_CHECK([$LIBTOOL --mode=install cp liba.la $libdir], [], [ignore], [ignore])
+AT_CHECK([$LIBTOOL --mode=clean rm -f liba.la], [], [ignore], [ignore])
+rm -f $libdir/liba.la
+
+# check once with `file' (if present) and once without, if on MinGW.
+for try in with-file without-file; do
+  AT_CHECK([$LIBTOOL --mode=link $CC $CFLAGS $LDFLAGS -o libb.la b.lo -rpath 
$libdir ]dnl
+          [-L$libdir -la],
+          [], [ignore], [ignore])
+  AT_CHECK([library_names= && . ./libb.la && if test -z "$library_names"; then 
exit 99; fi ],
+          [], [ignore], [ignore])
+
+  case $host_os in
+  mingw*)
+    if file /; then
+      mkdir bin new-libtool
+
+      cat >bin/file <<\EOF
+#! /bin/sh
+exit 1
+EOF
+      chmod +x bin/file
+      PATH=`pwd`/bin${PATH_SEPARATOR-:}$PATH
+      cd new-libtool
+      AT_CHECK(["$abs_top_srcdir"/configure $configure_options || exit 77],
+              [], [ignore], [ignore])
+      cd ..
+      LIBTOOL=new-libtool/libtool
+      export LIBTOOL
+      # Check whether the generated script is usable; otherwise, skip.
+      AT_CHECK([$LIBTOOL --mode=link $CC $CFLAGS $LDFLAGS -o libunrelated.la 
a.lo -rpath $libdir] dnl
+              [|| exit 77], [], [ignore], [ignore])
+    else
+      break;
+    fi;;
+  *)
+    break;;
+  esac
+done
+
+AT_CLEANUP


hooks/post-receive
-- 
GNU Libtool




reply via email to

[Prev in Thread] Current Thread [Next in Thread]