diff --git a/contrib/make_sunver.pl b/contrib/make_sunver.pl index 32e639ed873..4dd184d64ea 100644 --- 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 index 980677f3533..efadd9dcd48 100644 --- a/libatomic/Makefile.am +++ b/libatomic/Makefile.am @@ -55,9 +55,7 @@ libatomic.map-sun : $(top_srcdir)/libatomic.map \ $(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 index d9d529bc502..9798e7c09e9 100644 --- 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 index 2c5b74df9ee..067cf8e1a69 100644 --- 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 index e8ab5f210ec..1003b58b944 100644 --- a/libffi/Makefile.in +++ b/libffi/Makefile.in @@ -1940,8 +1940,7 @@ stamp-build-info: doc/libffi.texi $(srcdir)/doc/version.texi doc/$(am__dirstamp) @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 index 9e1d12f7546..ab605d49984 100644 --- 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 index ab10a476eae..ced10e98aaa 100644 --- a/libgfortran/Makefile.in +++ b/libgfortran/Makefile.in @@ -4576,9 +4576,7 @@ uninstall-am: uninstall-cafexeclibLTLIBRARIES uninstall-gfor_cHEADERS \ @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 index 1871590596d..855f0affddf 100644 --- 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 index 11480d6a953..da902f3daca 100644 --- 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 index a25317b07fe..d1ba5ee7140 100644 --- a/libitm/Makefile.am +++ b/libitm/Makefile.am @@ -39,9 +39,7 @@ libitm.map-sun : $(top_srcdir)/libitm.map \ $(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 index 9f0691018a9..f02ad05efb1 100644 --- 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 index 3ddebe14b93..93806106abb 100644 --- a/libquadmath/Makefile.am +++ b/libquadmath/Makefile.am @@ -25,8 +25,7 @@ quadmath.map-sun : $(srcdir)/quadmath.map \ $(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 index 06dca1534ff..ff3373064b1 100644 --- a/libquadmath/Makefile.in +++ b/libquadmath/Makefile.in @@ -1434,8 +1434,7 @@ uninstall-am: uninstall-dvi-am uninstall-html-am uninstall-info-am \ @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 index 8d0bcf8edc5..67b59853c59 100644 --- 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 index 168f620a1f8..febbc4e5e57 100644 --- a/libssp/Makefile.in +++ b/libssp/Makefile.in @@ -822,9 +822,7 @@ uninstall-am: uninstall-nobase_libsubincludeHEADERS \ @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 index 37ba1491dea..a7cc57abfa8 100644 --- a/libstdc++-v3/src/Makefile.am +++ b/libstdc++-v3/src/Makefile.am @@ -350,9 +350,7 @@ libstdc++-symbols.ver-sun : libstdc++-symbols.ver \ 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 index 1bdf0daa88f..106b96995aa 100644 --- a/libstdc++-v3/src/Makefile.in +++ b/libstdc++-v3/src/Makefile.in @@ -1096,9 +1096,7 @@ compatibility-condvar.o: compatibility-condvar.cc @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 \