bug-libtool
[Top][All Lists]
Advanced

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

Re: darwin fat binary support bugfix


From: Peter O'Gorman
Subject: Re: darwin fat binary support bugfix
Date: Mon, 21 Apr 2008 15:20:45 -0500
User-agent: Thunderbird 2.0.0.9 (X11/20071115)

Peter O'Gorman wrote:

> I will fix, and even apply the (non-failing) test tomorrow.

Making the test fail is better.

Ok?

Peter
-- 
Peter O'Gorman
http://pogma.com
>From d9a4d8f71ae415bb716dc8267a506a102bacf0b2 Mon Sep 17 00:00:00 2001
From: Peter O'Gorman <address@hidden>
Date: Mon, 21 Apr 2008 15:18:41 -0500
Subject: [PATCH] basename does not take a list of strings.
 * libltdl/config/ltmain.m4sh(func_extract_archives): Use sed
 $basename.
 * tests/darwin.at: New. Check that we can built fat program,
 shared library and convenience library.
 * Makefile.am: Add test.
 Reported by LiKai Liu <address@hidden>

---
 ChangeLog                  |    8 ++++
 Makefile.am                |    3 +-
 libltdl/config/ltmain.m4sh |    2 +-
 tests/darwin.at            |   96 ++++++++++++++++++++++++++++++++++++++++++++
 4 files changed, 107 insertions(+), 2 deletions(-)
 create mode 100644 tests/darwin.at

diff --git a/ChangeLog b/ChangeLog
index 4cc2147..b4d0388 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,13 @@
 2008-04-21  Peter O'Gorman  <address@hidden>
 
+       basename does not take a list of strings.
+       * libltdl/config/ltmain.m4sh(func_extract_archives): Use sed
+       $basename.
+       * tests/darwin.at: New. Check that we can built fat program,
+       shared library and convenience library.
+       * Makefile.am: Add test.
+       Reported by LiKai Liu <address@hidden>
+
        Use AC_CHECK_TOOL for lipo too.
        * libltdl/m4/libtool.m4 (_LT_REQUIRED_DARWIN_CHECKS): Check.
        * libltdl/config/ltmain.m4sh (func_extract_archives): Use.
diff --git a/Makefile.am b/Makefile.am
index 480b647..0085c7f 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -465,7 +465,8 @@ TESTSUITE_AT        = tests/testsuite.at \
                  tests/deplibs-ident.at \
                  tests/configure-iface.at \
                  tests/stresstest.at \
-                 tests/cmdline_wrap.at
+                 tests/cmdline_wrap.at \
+                 tests/darwin.at
 
 EXTRA_DIST     += $(srcdir)/$(TESTSUITE) $(TESTSUITE_AT) 
$(srcdir)/tests/package.m4
 
diff --git a/libltdl/config/ltmain.m4sh b/libltdl/config/ltmain.m4sh
index 089f162..ff1e50d 100644
--- a/libltdl/config/ltmain.m4sh
+++ b/libltdl/config/ltmain.m4sh
@@ -2222,7 +2222,7 @@ func_extract_archives ()
              $RM 
"unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}"
            done # $darwin_arches
             ## Okay now we've a bunch of thin objects, gotta fatten them up :)
-           darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name 
\*.lo -print| xargs basename | sort -u | $NL2SP`
+           darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name 
\*.lo -print | $SED -e "$basename" | sort -u`
            darwin_file=
            darwin_files=
            for darwin_file in $darwin_filelist; do
diff --git a/tests/darwin.at b/tests/darwin.at
new file mode 100644
index 0000000..adc0db6
--- /dev/null
+++ b/tests/darwin.at
@@ -0,0 +1,96 @@
+# darwin.at - tests specific to Mac OS X
+#
+#   Copyright (C) 2008 Free Software Foundation, Inc.
+#   Written by Peter O'Gorman, 2008
+#
+#   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.
+####
+
+AT_BANNER([Mac OS X tests])
+AT_SETUP([darwin fat compile])
+noskip=:
+case "$host_os" in
+darwin*) ;;
+*) noskip=false ;;
+esac
+
+AT_DATA([foo.c],[[
+int x=0;
+]])
+
+$noskip && {
+$CC $CPPFLAGS $CFLAGS -arch ppc -arch i386 -c -o foo.o foo.c 2>&1 > /dev/null 
|| noskip=false
+rm -f foo.o
+}
+
+AT_CHECK([$noskip || (exit 77)])
+
+AT_DATA([baz.c],[[
+int y=0;
+]])
+
+AT_DATA([bar.c],[[
+extern int x;
+int bar(void);
+int bar() { return x;}
+]])
+
+AT_DATA([main.c],[[
+extern int x;
+extern int y;
+
+int main() {
+return x+y;
+}
+]])
+
+mkdir bin
+AT_DATA([bin/basename],[[
+#! /bin/sh
+
+usage="usage: $0 argument"
+if test $# != 1; then
+                  echo $usage >&2
+                  exit 1
+fi
+
+echo $1 | sed "s,^.*/,,"
+]])
+
+chmod +x bin/basename
+save_PATH=$PATH
+PATH=`pwd`/bin:$PATH
+export PATH
+
+AT_CHECK([$LIBTOOL --mode=compile --tag=CC $CC -c -o foo.lo $CPPFLAGS $CFLAGS 
-arch ppc -arch i386 foo.c],[0],[ignore],[ignore])
+
+AT_CHECK([$LIBTOOL --mode=compile --tag=CC $CC -c -o baz.lo $CPPFLAGS $CFLAGS 
-arch ppc -arch i386 baz.c],[0],[ignore],[ignore])
+
+AT_CHECK([$LIBTOOL --mode=link --tag=CC $CC -o libfoo.la $CPPFLAGS $CFLAGS 
$LDFLAGS -arch ppc -arch i386 foo.lo baz.lo],[0],[ignore],[ignore])
+
+AT_CHECK([$LIBTOOL --mode=compile --tag=CC $CC -c -o bar.lo $CPPFLAGS $CFLAGS 
-arch ppc -arch i386 bar.c],[0],[ignore],[ignore])
+
+AT_CHECK([$LIBTOOL --mode=link --tag=CC $CC  -o libbar.la $CPPFLAGS $CFLAGS 
$LDFLAGS -arch ppc -arch i386 bar.lo libfoo.la -rpath 
/nonexistant],[0],[ignore],[ignore])
+
+AT_CHECK([$LIBTOOL --mode=compile --tag=CC $CC -c -o main.lo $CPPFLAGS $CFLAGS 
-arch ppc -arch i386 main.c],[0],[ignore],[ignore])
+
+AT_CHECK([$LIBTOOL --mode=link --tag=CC $CC  -o main $CPPFLAGS $CFLAGS 
$LDFLAGS -arch ppc -arch i386 main.lo libbar.la],[0],[ignore],[ignore])
+
+PATH=$save_PATH
+AT_CLEANUP
-- 
1.5.3.7


reply via email to

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