[Top][All Lists]
[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