# HG changeset patch # Parent 760a45ebd3104e6b2f5f739e62790ce1a4e7f33b build: Derive object names in make_sunver.pl diff --git a/contrib/make_sunver.pl b/contrib/make_sunver.pl --- a/contrib/make_sunver.pl +++ b/contrib/make_sunver.pl @@ -17,6 +17,7 @@ # GNU mangling style. use FileHandle; +use File::Basename; use IPC::Open2; # Enforce C locale. @@ -37,12 +38,22 @@ my @OBJECTS = (); # List of shared objects to omit from processing. my @SHAREDOBJS = (); -# Filter out those input archives that have corresponding shared objects to -# avoid adding all symbols matched in the archive to the output map. foreach $file (@ARGV) { + # Filter out those input archives that have corresponding shared objects to + # avoid adding all symbols matched in the archive to the output map. if (($so = $file) =~ s/\.a$/.so/ && -e $so) { printf STDERR "omitted $file -> $so\n"; push (@SHAREDOBJS, $so); + # Skip libraries. + } elsif ($file =~ /^-l/) { + next; + # Convert libtool object/archive names to underlying objects/archives. + } elsif ($file =~ /\.l[ao]$/) { + my ($name, $path, $suffix) = fileparse($file, ".l[ao]"); + $suffix =~ s/l//; + # Strip leading ./ prepended by fileparse. + $path =~ s%^\./%%; + push (@OBJECTS, "$path.libs/$name$suffix") } else { push (@OBJECTS, $file); } diff --git a/libatomic/Makefile.am b/libatomic/Makefile.am --- a/libatomic/Makefile.am +++ b/libatomic/Makefile.am @@ -55,9 +55,7 @@ libatomic.map-sun : $(top_srcdir)/libato $(libatomic_la_OBJECTS) $(libatomic_la_LIBADD) perl $(top_srcdir)/../contrib/make_sunver.pl \ $(top_srcdir)/libatomic.map \ - $(libatomic_la_OBJECTS:%.lo=.libs/%.o) \ - `echo $(libatomic_la_LIBADD) | \ - sed 's,\([^/ ]*\)\.l\([ao]\),.libs/\1.\2,g'` \ + $(libatomic_la_OBJECTS) $(libatomic_la_LIBADD) \ > $@ || (rm -f $@ ; exit 1) endif else diff --git a/libatomic/Makefile.in b/libatomic/Makefile.in --- a/libatomic/Makefile.in +++ b/libatomic/Makefile.in @@ -888,9 +888,7 @@ vpath % $(strip $(search_path)) @LIBAT_BUILD_VERSIONED_SHLIB_SUN_TRUE@@LIBAT_BUILD_VERSIONED_SHLIB_TRUE@ $(libatomic_la_OBJECTS) $(libatomic_la_LIBADD) @LIBAT_BUILD_VERSIONED_SHLIB_SUN_TRUE@@LIBAT_BUILD_VERSIONED_SHLIB_TRUE@ perl $(top_srcdir)/../contrib/make_sunver.pl \ @LIBAT_BUILD_VERSIONED_SHLIB_SUN_TRUE@@LIBAT_BUILD_VERSIONED_SHLIB_TRUE@ $(top_srcdir)/libatomic.map \ -@LIBAT_BUILD_VERSIONED_SHLIB_SUN_TRUE@@LIBAT_BUILD_VERSIONED_SHLIB_TRUE@ $(libatomic_la_OBJECTS:%.lo=.libs/%.o) \ -@LIBAT_BUILD_VERSIONED_SHLIB_SUN_TRUE@@LIBAT_BUILD_VERSIONED_SHLIB_TRUE@ `echo $(libatomic_la_LIBADD) | \ -@LIBAT_BUILD_VERSIONED_SHLIB_SUN_TRUE@@LIBAT_BUILD_VERSIONED_SHLIB_TRUE@ sed 's,\([^/ ]*\)\.l\([ao]\),.libs/\1.\2,g'` \ +@LIBAT_BUILD_VERSIONED_SHLIB_SUN_TRUE@@LIBAT_BUILD_VERSIONED_SHLIB_TRUE@ $(libatomic_la_OBJECTS) $(libatomic_la_LIBADD) \ @LIBAT_BUILD_VERSIONED_SHLIB_SUN_TRUE@@LIBAT_BUILD_VERSIONED_SHLIB_TRUE@ > $@ || (rm -f $@ ; exit 1) -include $(wildcard $(DEPDIR)/*.Ppo) diff --git a/libffi/Makefile.am b/libffi/Makefile.am --- a/libffi/Makefile.am +++ b/libffi/Makefile.am @@ -200,8 +200,7 @@ libffi_version_dep = libffi.map-sun libffi.map-sun : libffi.map $(top_srcdir)/../contrib/make_sunver.pl \ $(libffi_la_OBJECTS) $(libffi_la_LIBADD) perl $(top_srcdir)/../contrib/make_sunver.pl libffi.map \ - `echo $(libffi_la_OBJECTS) $(libffi_la_LIBADD) | \ - sed 's,\([^/ ]*\)\.l\([ao]\),.libs/\1.\2,g'` \ + $(libffi_la_OBJECTS) $(libffi_la_LIBADD) \ > $@ || (rm -f $@ ; exit 1) endif else diff --git a/libffi/Makefile.in b/libffi/Makefile.in --- a/libffi/Makefile.in +++ b/libffi/Makefile.in @@ -1940,8 +1940,7 @@ stamp-build-info: doc/libffi.texi $(srcd @LIBFFI_BUILD_VERSIONED_SHLIB_SUN_TRUE@@LIBFFI_BUILD_VERSIONED_SHLIB_TRUE@libffi.map-sun : libffi.map $(top_srcdir)/../contrib/make_sunver.pl \ @LIBFFI_BUILD_VERSIONED_SHLIB_SUN_TRUE@@LIBFFI_BUILD_VERSIONED_SHLIB_TRUE@ $(libffi_la_OBJECTS) $(libffi_la_LIBADD) @LIBFFI_BUILD_VERSIONED_SHLIB_SUN_TRUE@@LIBFFI_BUILD_VERSIONED_SHLIB_TRUE@ perl $(top_srcdir)/../contrib/make_sunver.pl libffi.map \ -@LIBFFI_BUILD_VERSIONED_SHLIB_SUN_TRUE@@LIBFFI_BUILD_VERSIONED_SHLIB_TRUE@ `echo $(libffi_la_OBJECTS) $(libffi_la_LIBADD) | \ -@LIBFFI_BUILD_VERSIONED_SHLIB_SUN_TRUE@@LIBFFI_BUILD_VERSIONED_SHLIB_TRUE@ sed 's,\([^/ ]*\)\.l\([ao]\),.libs/\1.\2,g'` \ +@LIBFFI_BUILD_VERSIONED_SHLIB_SUN_TRUE@@LIBFFI_BUILD_VERSIONED_SHLIB_TRUE@ $(libffi_la_OBJECTS) $(libffi_la_LIBADD) \ @LIBFFI_BUILD_VERSIONED_SHLIB_SUN_TRUE@@LIBFFI_BUILD_VERSIONED_SHLIB_TRUE@ > $@ || (rm -f $@ ; exit 1) libffi.map: $(top_srcdir)/libffi.map.in diff --git a/libgfortran/Makefile.am b/libgfortran/Makefile.am --- a/libgfortran/Makefile.am +++ b/libgfortran/Makefile.am @@ -29,9 +29,7 @@ gfortran.ver-sun : gfortran.ver \ $(libgfortran_la_OBJECTS) $(libgfortran_la_LIBADD) perl $(top_srcdir)/../contrib/make_sunver.pl \ gfortran.ver \ - $(subst /,/.libs/,$(libgfortran_la_OBJECTS:.lo=.o)) \ - `echo $(libgfortran_la_LIBADD) | \ - sed 's,/\([^/.]*\)\.la,/.libs/\1.a,g'` \ + $(libgfortran_la_OBJECTS) $(libgfortran_la_LIBADD) \ > $@ || (rm -f $@ ; exit 1) endif else diff --git a/libgfortran/Makefile.in b/libgfortran/Makefile.in --- a/libgfortran/Makefile.in +++ b/libgfortran/Makefile.in @@ -4576,9 +4576,7 @@ uninstall-am: uninstall-cafexeclibLTLIBR @LIBGFOR_USE_SYMVER_SUN_TRUE@@LIBGFOR_USE_SYMVER_TRUE@ $(libgfortran_la_OBJECTS) $(libgfortran_la_LIBADD) @LIBGFOR_USE_SYMVER_SUN_TRUE@@LIBGFOR_USE_SYMVER_TRUE@ perl $(top_srcdir)/../contrib/make_sunver.pl \ @LIBGFOR_USE_SYMVER_SUN_TRUE@@LIBGFOR_USE_SYMVER_TRUE@ gfortran.ver \ -@LIBGFOR_USE_SYMVER_SUN_TRUE@@LIBGFOR_USE_SYMVER_TRUE@ $(subst /,/.libs/,$(libgfortran_la_OBJECTS:.lo=.o)) \ -@LIBGFOR_USE_SYMVER_SUN_TRUE@@LIBGFOR_USE_SYMVER_TRUE@ `echo $(libgfortran_la_LIBADD) | \ -@LIBGFOR_USE_SYMVER_SUN_TRUE@@LIBGFOR_USE_SYMVER_TRUE@ sed 's,/\([^/.]*\)\.la,/.libs/\1.a,g'` \ +@LIBGFOR_USE_SYMVER_SUN_TRUE@@LIBGFOR_USE_SYMVER_TRUE@ $(libgfortran_la_OBJECTS) $(libgfortran_la_LIBADD) \ @LIBGFOR_USE_SYMVER_SUN_TRUE@@LIBGFOR_USE_SYMVER_TRUE@ > $@ || (rm -f $@ ; exit 1) # Turn on vectorization and loop unrolling for matmul. diff --git a/libgomp/Makefile.am b/libgomp/Makefile.am --- a/libgomp/Makefile.am +++ b/libgomp/Makefile.am @@ -44,9 +44,7 @@ libgomp.ver-sun : libgomp.ver \ $(libgomp_la_OBJECTS) $(libgomp_la_LIBADD) perl $(top_srcdir)/../contrib/make_sunver.pl \ libgomp.ver \ - $(libgomp_la_OBJECTS:%.lo=.libs/%.o) \ - `echo $(libgomp_la_LIBADD) | \ - sed 's,/\([^/.]*\)\.la,/.libs/\1.a,g'` \ + $(libgomp_la_OBJECTS) $(libgomp_la_LIBADD) \ > $@ || (rm -f $@ ; exit 1) endif else diff --git a/libgomp/Makefile.in b/libgomp/Makefile.in --- a/libgomp/Makefile.in +++ b/libgomp/Makefile.in @@ -1378,9 +1378,7 @@ vpath % $(strip $(search_path)) @LIBGOMP_BUILD_VERSIONED_SHLIB_SUN_TRUE@@LIBGOMP_BUILD_VERSIONED_SHLIB_TRUE@ $(libgomp_la_OBJECTS) $(libgomp_la_LIBADD) @LIBGOMP_BUILD_VERSIONED_SHLIB_SUN_TRUE@@LIBGOMP_BUILD_VERSIONED_SHLIB_TRUE@ perl $(top_srcdir)/../contrib/make_sunver.pl \ @LIBGOMP_BUILD_VERSIONED_SHLIB_SUN_TRUE@@LIBGOMP_BUILD_VERSIONED_SHLIB_TRUE@ libgomp.ver \ -@LIBGOMP_BUILD_VERSIONED_SHLIB_SUN_TRUE@@LIBGOMP_BUILD_VERSIONED_SHLIB_TRUE@ $(libgomp_la_OBJECTS:%.lo=.libs/%.o) \ -@LIBGOMP_BUILD_VERSIONED_SHLIB_SUN_TRUE@@LIBGOMP_BUILD_VERSIONED_SHLIB_TRUE@ `echo $(libgomp_la_LIBADD) | \ -@LIBGOMP_BUILD_VERSIONED_SHLIB_SUN_TRUE@@LIBGOMP_BUILD_VERSIONED_SHLIB_TRUE@ sed 's,/\([^/.]*\)\.la,/.libs/\1.a,g'` \ +@LIBGOMP_BUILD_VERSIONED_SHLIB_SUN_TRUE@@LIBGOMP_BUILD_VERSIONED_SHLIB_TRUE@ $(libgomp_la_OBJECTS) $(libgomp_la_LIBADD) \ @LIBGOMP_BUILD_VERSIONED_SHLIB_SUN_TRUE@@LIBGOMP_BUILD_VERSIONED_SHLIB_TRUE@ > $@ || (rm -f $@ ; exit 1) omp_lib_kinds.mod: omp_lib.mod diff --git a/libitm/Makefile.am b/libitm/Makefile.am --- a/libitm/Makefile.am +++ b/libitm/Makefile.am @@ -39,9 +39,7 @@ libitm.map-sun : $(top_srcdir)/libitm.ma $(libitm_la_OBJECTS) $(libitm_la_LIBADD) perl $(top_srcdir)/../contrib/make_sunver.pl \ $(top_srcdir)/libitm.map \ - $(libitm_la_OBJECTS:%.lo=.libs/%.o) \ - `echo $(libitm_la_LIBADD) | \ - sed 's,/\([^/.]*\)\.la,/.libs/\1.a,g'` \ + $(libitm_la_OBJECTS) $(libitm_la_LIBADD) \ > $@ || (rm -f $@ ; exit 1) endif else diff --git a/libitm/Makefile.in b/libitm/Makefile.in --- a/libitm/Makefile.in +++ b/libitm/Makefile.in @@ -1179,9 +1179,7 @@ vpath % $(strip $(search_path)) @LIBITM_BUILD_VERSIONED_SHLIB_SUN_TRUE@@LIBITM_BUILD_VERSIONED_SHLIB_TRUE@ $(libitm_la_OBJECTS) $(libitm_la_LIBADD) @LIBITM_BUILD_VERSIONED_SHLIB_SUN_TRUE@@LIBITM_BUILD_VERSIONED_SHLIB_TRUE@ perl $(top_srcdir)/../contrib/make_sunver.pl \ @LIBITM_BUILD_VERSIONED_SHLIB_SUN_TRUE@@LIBITM_BUILD_VERSIONED_SHLIB_TRUE@ $(top_srcdir)/libitm.map \ -@LIBITM_BUILD_VERSIONED_SHLIB_SUN_TRUE@@LIBITM_BUILD_VERSIONED_SHLIB_TRUE@ $(libitm_la_OBJECTS:%.lo=.libs/%.o) \ -@LIBITM_BUILD_VERSIONED_SHLIB_SUN_TRUE@@LIBITM_BUILD_VERSIONED_SHLIB_TRUE@ `echo $(libitm_la_LIBADD) | \ -@LIBITM_BUILD_VERSIONED_SHLIB_SUN_TRUE@@LIBITM_BUILD_VERSIONED_SHLIB_TRUE@ sed 's,/\([^/.]*\)\.la,/.libs/\1.a,g'` \ +@LIBITM_BUILD_VERSIONED_SHLIB_SUN_TRUE@@LIBITM_BUILD_VERSIONED_SHLIB_TRUE@ $(libitm_la_OBJECTS) $(libitm_la_LIBADD) \ @LIBITM_BUILD_VERSIONED_SHLIB_SUN_TRUE@@LIBITM_BUILD_VERSIONED_SHLIB_TRUE@ > $@ || (rm -f $@ ; exit 1) # Make sure -msse is appended at the end. @ARCH_X86_TRUE@x86_sse.lo : override CXXFLAGS += -msse diff --git a/libquadmath/Makefile.am b/libquadmath/Makefile.am --- a/libquadmath/Makefile.am +++ b/libquadmath/Makefile.am @@ -25,8 +25,7 @@ quadmath.map-sun : $(srcdir)/quadmath.ma $(libquadmath_la_OBJECTS) $(libquadmath_la_LIBADD) perl $(top_srcdir)/../contrib/make_sunver.pl \ $(srcdir)/quadmath.map \ - `echo $(libquadmath_la_OBJECTS) $(libquadmath_la_LIBADD) | \ - sed 's,\([^/ ]*\)\.l\([ao]\),.libs/\1.\2,g'` \ + $(libquadmath_la_OBJECTS) $(libquadmath_la_LIBADD) \ > $@ || (rm -f $@ ; exit 1) endif else diff --git a/libquadmath/Makefile.in b/libquadmath/Makefile.in --- a/libquadmath/Makefile.in +++ b/libquadmath/Makefile.in @@ -1434,8 +1434,7 @@ uninstall-am: uninstall-dvi-am uninstall @BUILD_LIBQUADMATH_TRUE@@LIBQUAD_USE_SYMVER_SUN_TRUE@@LIBQUAD_USE_SYMVER_TRUE@ $(libquadmath_la_OBJECTS) $(libquadmath_la_LIBADD) @BUILD_LIBQUADMATH_TRUE@@LIBQUAD_USE_SYMVER_SUN_TRUE@@LIBQUAD_USE_SYMVER_TRUE@ perl $(top_srcdir)/../contrib/make_sunver.pl \ @BUILD_LIBQUADMATH_TRUE@@LIBQUAD_USE_SYMVER_SUN_TRUE@@LIBQUAD_USE_SYMVER_TRUE@ $(srcdir)/quadmath.map \ -@BUILD_LIBQUADMATH_TRUE@@LIBQUAD_USE_SYMVER_SUN_TRUE@@LIBQUAD_USE_SYMVER_TRUE@ `echo $(libquadmath_la_OBJECTS) $(libquadmath_la_LIBADD) | \ -@BUILD_LIBQUADMATH_TRUE@@LIBQUAD_USE_SYMVER_SUN_TRUE@@LIBQUAD_USE_SYMVER_TRUE@ sed 's,\([^/ ]*\)\.l\([ao]\),.libs/\1.\2,g'` \ +@BUILD_LIBQUADMATH_TRUE@@LIBQUAD_USE_SYMVER_SUN_TRUE@@LIBQUAD_USE_SYMVER_TRUE@ $(libquadmath_la_OBJECTS) $(libquadmath_la_LIBADD) \ @BUILD_LIBQUADMATH_TRUE@@LIBQUAD_USE_SYMVER_SUN_TRUE@@LIBQUAD_USE_SYMVER_TRUE@ > $@ || (rm -f $@ ; exit 1) @BUILD_LIBQUADMATH_TRUE@stamp-geninsrc: libquadmath.info diff --git a/libssp/Makefile.am b/libssp/Makefile.am --- a/libssp/Makefile.am +++ b/libssp/Makefile.am @@ -23,9 +23,7 @@ ssp.map-sun : $(srcdir)/ssp.map \ $(libssp_la_OBJECTS) $(libssp_la_LIBADD) perl $(top_srcdir)/../contrib/make_sunver.pl \ $(srcdir)/ssp.map \ - $(libssp_la_OBJECTS:%.lo=.libs/%.o) \ - `echo $(libssp_la_LIBADD) | \ - sed 's,/\([^/.]*\)\.la,/.libs/\1.a,g'` \ + $(libssp_la_OBJECTS) $(libssp_la_LIBADD) \ > $@ || (rm -f $@ ; exit 1) endif else diff --git a/libssp/Makefile.in b/libssp/Makefile.in --- a/libssp/Makefile.in +++ b/libssp/Makefile.in @@ -822,9 +822,7 @@ uninstall-am: uninstall-nobase_libsubinc @LIBSSP_USE_SYMVER_SUN_TRUE@@LIBSSP_USE_SYMVER_TRUE@ $(libssp_la_OBJECTS) $(libssp_la_LIBADD) @LIBSSP_USE_SYMVER_SUN_TRUE@@LIBSSP_USE_SYMVER_TRUE@ perl $(top_srcdir)/../contrib/make_sunver.pl \ @LIBSSP_USE_SYMVER_SUN_TRUE@@LIBSSP_USE_SYMVER_TRUE@ $(srcdir)/ssp.map \ -@LIBSSP_USE_SYMVER_SUN_TRUE@@LIBSSP_USE_SYMVER_TRUE@ $(libssp_la_OBJECTS:%.lo=.libs/%.o) \ -@LIBSSP_USE_SYMVER_SUN_TRUE@@LIBSSP_USE_SYMVER_TRUE@ `echo $(libssp_la_LIBADD) | \ -@LIBSSP_USE_SYMVER_SUN_TRUE@@LIBSSP_USE_SYMVER_TRUE@ sed 's,/\([^/.]*\)\.la,/.libs/\1.a,g'` \ +@LIBSSP_USE_SYMVER_SUN_TRUE@@LIBSSP_USE_SYMVER_TRUE@ $(libssp_la_OBJECTS) $(libssp_la_LIBADD) \ @LIBSSP_USE_SYMVER_SUN_TRUE@@LIBSSP_USE_SYMVER_TRUE@ > $@ || (rm -f $@ ; exit 1) # GNU Make needs to see an explicit $(MAKE) variable in the command it diff --git a/libstdc++-v3/src/Makefile.am b/libstdc++-v3/src/Makefile.am --- a/libstdc++-v3/src/Makefile.am +++ b/libstdc++-v3/src/Makefile.am @@ -350,9 +350,7 @@ libstdc++-symbols.ver-sun : libstdc++-sy CXXFILT="$(CXXFILT)"; export CXXFILT; \ perl $(toplevel_srcdir)/contrib/make_sunver.pl \ libstdc++-symbols.ver \ - $(libstdc___la_OBJECTS:%.lo=.libs/%.o) \ - `echo ' $(libstdc___la_LIBADD) ' | \ - sed -e 's,/\([^/.]*\)\.la,/.libs/\1.a,g' -e 's/ -l[^ ]* / /'` \ + $(libstdc___la_OBJECTS) $(libstdc___la_LIBADD) \ > $@ || (rm -f $@ ; exit 1) endif if ENABLE_SYMVERS_DARWIN diff --git a/libstdc++-v3/src/Makefile.in b/libstdc++-v3/src/Makefile.in --- a/libstdc++-v3/src/Makefile.in +++ b/libstdc++-v3/src/Makefile.in @@ -1096,9 +1096,7 @@ compatibility-condvar.o: compatibility-c @ENABLE_SYMVERS_SUN_TRUE@@ENABLE_SYMVERS_TRUE@ CXXFILT="$(CXXFILT)"; export CXXFILT; \ @ENABLE_SYMVERS_SUN_TRUE@@ENABLE_SYMVERS_TRUE@ perl $(toplevel_srcdir)/contrib/make_sunver.pl \ @ENABLE_SYMVERS_SUN_TRUE@@ENABLE_SYMVERS_TRUE@ libstdc++-symbols.ver \ -@ENABLE_SYMVERS_SUN_TRUE@@ENABLE_SYMVERS_TRUE@ $(libstdc___la_OBJECTS:%.lo=.libs/%.o) \ -@ENABLE_SYMVERS_SUN_TRUE@@ENABLE_SYMVERS_TRUE@ `echo ' $(libstdc___la_LIBADD) ' | \ -@ENABLE_SYMVERS_SUN_TRUE@@ENABLE_SYMVERS_TRUE@ sed -e 's,/\([^/.]*\)\.la,/.libs/\1.a,g' -e 's/ -l[^ ]* / /'` \ +@ENABLE_SYMVERS_SUN_TRUE@@ENABLE_SYMVERS_TRUE@ $(libstdc___la_OBJECTS) $(libstdc___la_LIBADD) \ @ENABLE_SYMVERS_SUN_TRUE@@ENABLE_SYMVERS_TRUE@ > $@ || (rm -f $@ ; exit 1) @ENABLE_SYMVERS_DARWIN_TRUE@@ENABLE_SYMVERS_TRUE@libstdc++-symbols.explist : libstdc++-symbols.ver \ @ENABLE_SYMVERS_DARWIN_TRUE@@ENABLE_SYMVERS_TRUE@ ${glibcxx_srcdir}/scripts/make_exports.pl \