Hi!

The archive-in-archive.at test uses ar "blindly". It also assumes that
the "old archive" of libfoo.la is named libfoo.a, but both that's not
portable. See attached patch.

Cheers,
Peter
>From 34b258415367f49d4015e289a52ba49667174526 Mon Sep 17 00:00:00 2001
From: Peter Rosin <[email protected]>
Date: Mon, 30 Aug 2010 15:18:12 +0200
Subject: [PATCH] Extract the archive name from the .la file and use $AR (not 
ar).

* Makefile.am: Pass AR through to the testsuite.
* tests/archive-in-archive.at: Extract archive name from the .la
file instead of hardcoding the name, and allow different archivers.

Signed-off-by: Peter Rosin <[email protected]>
---
 ChangeLog                   |    7 +++++++
 Makefile.am                 |    1 +
 tests/archive-in-archive.at |   12 ++++++++----
 3 files changed, 16 insertions(+), 4 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index c6c2447..063df69 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2010-08-30  Peter Rosin  <[email protected]>
+
+       Extract the archive name from the .la file and use $AR (not ar).
+       * Makefile.am: Pass AR through to the testsuite.
+       * tests/archive-in-archive.at: Extract archive name from the .la
+       file instead of hardcoding the name, and allow different archivers.
+
 2010-08-29  Peter Rosin  <[email protected]>
 
        Fix typo when renaming path conversion functions.
diff --git a/Makefile.am b/Makefile.am
index de3eafe..b5cde00 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -513,6 +513,7 @@ EXTRA_DIST     += $(srcdir)/$(TESTSUITE) $(TESTSUITE_AT) 
$(srcdir)/tests/package
 TESTS_ENVIRONMENT = MAKE="$(MAKE)" CC="$(CC)" CFLAGS="$(CFLAGS)" \
        CPP="$(CPP)" CPPFLAGS="$(CPPFLAGS)" LD="$(LD)" LDFLAGS="$(LDFLAGS)" \
        LIBS="$(LIBS)" LN_S="$(LN_S)" NM="$(NM)" RANLIB="$(RANLIB)" \
+       AR="$(AR)" \
        M4SH="$(M4SH)" SED="$(SED)" STRIP="$(STRIP)" lt_INSTALL="$(INSTALL)" \
        MANIFEST_TOOL="$(MANIFEST_TOOL)" \
        OBJEXT="$(OBJEXT)" EXEEXT="$(EXEEXT)" \
diff --git a/tests/archive-in-archive.at b/tests/archive-in-archive.at
index a57dfdd..497cc25 100644
--- a/tests/archive-in-archive.at
+++ b/tests/archive-in-archive.at
@@ -42,11 +42,15 @@ $LIBTOOL --mode=compile --tag=CC $CC $CPPFLAGS $CFLAGS -c 
-o bar.lo bar.c
 $LIBTOOL --mode=link --tag=CC --tag=disable-shared $CC $CFLAGS $LDFLAGS \
 -o libfoo.la foo.lo -version-info 1:0:0 -rpath $thisdir
 $LIBTOOL --mode=install cp libfoo.la $thisdir 
+eval `$EGREP '^(old_library)=' < libfoo.la`
+libfoo=$old_library
 AT_CHECK([$LIBTOOL --mode=link --tag=CC --tag=disable-shared $CC $CFLAGS 
$LDFLAGS \
-        -o libbar.la bar.lo ./libfoo.a -version-info 1:0:0 -rpath $thisdir],
+        -o libbar.la bar.lo $libfoo -version-info 1:0:0 -rpath $thisdir],
         [], [ignore], [ignore])
 AT_CHECK([$LIBTOOL --mode=install cp libbar.la $thisdir], [], [ignore], 
[ignore])
-AT_CHECK([ar -t libbar.a | grep libfoo.a],[1],[ignore],[ignore])
-archive_contents=`ar -t libbar.a`
-AT_XFAIL_IF([case "$archive_contents" in *"libfoo.a"*) : ;; esac])
+eval `$EGREP '^(old_library)=' < libbar.la`
+libbar=$old_library
+AT_CHECK([$AR -t $libbar | grep $libfoo],[1],[ignore],[ignore])
+archive_contents=`$AR -t $libbar`
+AT_XFAIL_IF([case "$archive_contents" in *"$libfoo"*) : ;; esac])
 AT_CLEANUP
-- 
1.7.1

Reply via email to