After the previous libatomic patch, many testcases fail on Solaris/x86
like this:

FAIL: libatomic.c/atomic-compare-exchange-1.c (test for excess errors)
Excess errors:
Undefined                       first referenced
 symbol                             in file
__atomic_compare_exchange_1         /var/tmp//cc7jayIi.o
ld: fatal: symbol referencing errors. No output written to .
WARNING: libatomic.c/atomic-compare-exchange-1.c compilation failed to produce 
executable

This is caused by the fact that the libatomic.map-sun rule currently
only expects archives in libatomic_la_LIBADD, but here it contains
objects instead.

This is a great demonstration why the current massive duplication of
such rules among versioned libraries is a mess: the libjava rules had
this right.  Unifying all this is still on my agenda.

The following patch fixes this and fixes all but a few testcases which
fail for unrelated reasons (yet to be determined/reported).

I've not only regenerated Makefile.in, but also aclocal.m4, since
automake complained

      configure.ac:84: version mismatch.  This is Automake 1.11.1,
      configure.ac:84: but the definition used by this AM_INIT_AUTOMAKE
      configure.ac:84: comes from Automake 1.11.3.  You should recreate
      configure.ac:84: aclocal.m4 with aclocal and run automake again.

and 1.11.1 is the current required version.

Ok for mainline?

        Rainer


2012-05-05  Rainer Orth  <r...@cebitec.uni-bielefeld.de>

        * Makefile.am (libatomic.map-sun): Handle objects in
        libatomic_la_LIBADD.
        * aclocal.m4: Regenerate.
        * Makefile.in: Regenerate.

# HG changeset patch
# Parent 0114ed05eb41c51370fdc050784072611a025da8
Allow for objects in libatomic_la_LIBADD

diff --git a/libatomic/Makefile.am b/libatomic/Makefile.am
--- a/libatomic/Makefile.am
+++ b/libatomic/Makefile.am
@@ -56,7 +56,7 @@ libatomic.map-sun : $(top_srcdir)/libato
 	  $(top_srcdir)/libatomic.map \
 	  $(libatomic_la_OBJECTS:%.lo=.libs/%.o) \
 	 `echo $(libatomic_la_LIBADD) | \
-	    sed 's,/\([^/.]*\)\.la,/.libs/\1.a,g'` \
+	    sed 's,\([^/ 	]*\)\.l\([ao]\),.libs/\1.\2,g'` \
 	 > $@ || (rm -f $@ ; exit 1)
 endif
 else
-- 
-----------------------------------------------------------------------------
Rainer Orth, Center for Biotechnology, Bielefeld University

Reply via email to