From 859df16485d512e69b529f57a9c747107dec23bc Mon Sep 17 00:00:00 2001 From: Caroline Tice Date: Fri, 25 Mar 2016 09:19:46 -0700 Subject: Fix issue of generating symlinks for libgnustl_shared.so With the changes that unified the Android & ChromeOS GCC compiler, some of the conditional changes introduced with the enable-bionic-libs flags were causing libgnustl_shared.so to be generated with symbol versions and symbolic links, which broke certain things. This CL fixes that issue (https://buganizer.corp.google.com/issues/27832514) Change-Id: Ib7fe825f2be353e0ff7beba008a71793b1ad2244 --- gcc-4.9/libstdc++-v3/src/Makefile.am | 53 +++++------------- gcc-4.9/libstdc++-v3/src/Makefile.in | 103 +++++++++++++---------------------- 2 files changed, 51 insertions(+), 105 deletions(-) diff --git a/gcc-4.9/libstdc++-v3/src/Makefile.am b/gcc-4.9/libstdc++-v3/src/Makefile.am index e1f6956ac..3209ae06f 100644 --- a/gcc-4.9/libstdc++-v3/src/Makefile.am +++ b/gcc-4.9/libstdc++-v3/src/Makefile.am @@ -58,45 +58,43 @@ cxx11_sources = \ compatibility-chrono.cc \ compatibility-condvar.cc -if ENABLE_BIONIC_LIBS - libgnustl_shared_la_SOURCES = $(cxx98_sources) $(cxx11_sources) +libgnustl_shared_la_SOURCES = $(cxx98_sources) $(cxx11_sources) - libgnustl_shared_la_LIBADD = \ +libgnustl_shared_la_LIBADD = \ $(GLIBCXX_LIBS) \ $(top_builddir)/libsupc++/libsupc++convenience.la \ $(top_builddir)/src/c++98/libc++98convenience.la \ $(top_builddir)/src/c++11/libc++11convenience.la - libgnustl_shared_la_DEPENDENCIES = \ +libgnustl_shared_la_DEPENDENCIES = \ ${version_dep} \ $(top_builddir)/libsupc++/libsupc++convenience.la \ $(top_builddir)/src/c++98/libc++98convenience.la \ $(top_builddir)/src/c++11/libc++11convenience.la - libgnustl_shared_la_LDFLAGS = \ +libgnustl_shared_la_LDFLAGS = \ ${libtool_version_info_string} ${version_arg} -lm - libgnustl_shared_la_LINK = $(CXXLINK) $(libstdc___la_LDFLAGS) -else - libstdc___la_SOURCES = $(cxx98_sources) $(cxx11_sources) +libgnustl_shared_la_LINK = $(CXXLINK) $(libstdc___la_LDFLAGS) + +libstdc___la_SOURCES = $(cxx98_sources) $(cxx11_sources) - libstdc___la_LIBADD = \ +libstdc___la_LIBADD = \ $(GLIBCXX_LIBS) \ $(top_builddir)/libsupc++/libsupc++convenience.la \ $(top_builddir)/src/c++98/libc++98convenience.la \ $(top_builddir)/src/c++11/libc++11convenience.la - libstdc___la_DEPENDENCIES = \ +libstdc___la_DEPENDENCIES = \ ${version_dep} \ $(top_builddir)/libsupc++/libsupc++convenience.la \ $(top_builddir)/src/c++98/libc++98convenience.la \ $(top_builddir)/src/c++11/libc++11convenience.la - libstdc___la_LDFLAGS = \ +libstdc___la_LDFLAGS = \ ${libtool_version_info_string} ${version_arg} -lm - libstdc___la_LINK = $(CXXLINK) $(libstdc___la_LDFLAGS) -endif +libstdc___la_LINK = $(CXXLINK) $(libstdc___la_LDFLAGS) # Use special rules for compatibility-ldbl.cc compilation, as we need to # pass -mlong-double-64. @@ -247,8 +245,7 @@ endif if ENABLE_SYMVERS_SUN version_arg = -Wl,-M,libstdc++-symbols.ver-sun version_dep = libstdc++-symbols.ver-sun - if ENABLE_BIONIC_LIBS - libstdc++-symbols.ver-sun : libstdc++-symbols.ver \ +libstdc++-symbols.ver-sun : libstdc++-symbols.ver \ $(toplevel_srcdir)/contrib/make_sunver.pl \ $(libgnustl_shared_la_OBJECTS) $(libgnustl_shared_la_LIBADD) CXXFILT="$(CXXFILT)"; export CXXFILT; \ @@ -258,34 +255,11 @@ version_dep = libstdc++-symbols.ver-sun `echo $(libgnustl_shared_la_LIBADD) | \ sed 's,/\([^/.]*\)\.la,/.libs/\1.a,g'` \ > $@ || (rm -f $@ ; exit 1) - else - libstdc++-symbols.ver-sun : libstdc++-symbols.ver \ - $(toplevel_srcdir)/contrib/make_sunver.pl \ - $(libstdc___la_OBJECTS) $(libstdc___la_LIBADD) - 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 's,/\([^/.]*\)\.la,/.libs/\1.a,g'` \ - > $@ || (rm -f $@ ; exit 1) - endif endif if ENABLE_SYMVERS_DARWIN version_arg = -Wl,-exported_symbols_list,libstdc++-symbols.explist version_dep = libstdc++-symbols.explist - if ENABLE_BIONIC_LIBS - libstdc++-symbols.explist : libstdc++-symbols.ver \ - ${glibcxx_srcdir}/scripts/make_exports.pl \ - $(libgnustl_shared_la_OBJECTS) $(libgnustl_shared_la_LIBADD) - perl ${glibcxx_srcdir}/scripts/make_exports.pl \ - libstdc++-symbols.ver \ - $(libgnustl_shared_la_OBJECTS:%.lo=.libs/%.o) \ - `echo $(libgnustl_shared_la_LIBADD) | \ - sed 's,/\([^/.]*\)\.la,/.libs/\1.a,g'` \ - > $@ || (rm -f $@ ; exit 1) - else - libstdc++-symbols.explist : libstdc++-symbols.ver \ +libstdc++-symbols.explist : libstdc++-symbols.ver \ ${glibcxx_srcdir}/scripts/make_exports.pl \ $(libstdc___la_OBJECTS) $(libstdc___la_LIBADD) perl ${glibcxx_srcdir}/scripts/make_exports.pl \ @@ -294,7 +268,6 @@ version_dep = libstdc++-symbols.explist `echo $(libstdc___la_LIBADD) | \ sed 's,/\([^/.]*\)\.la,/.libs/\1.a,g'` \ > $@ || (rm -f $@ ; exit 1) - endif endif CLEANFILES += $(version_dep) diff --git a/gcc-4.9/libstdc++-v3/src/Makefile.in b/gcc-4.9/libstdc++-v3/src/Makefile.in index d9637d813..3fa09e068 100644 --- a/gcc-4.9/libstdc++-v3/src/Makefile.in +++ b/gcc-4.9/libstdc++-v3/src/Makefile.in @@ -95,13 +95,11 @@ am__objects_2 = compatibility.lo compatibility-debug_list.lo \ am__objects_3 = compatibility-c++0x.lo compatibility-atomic-c++0x.lo \ compatibility-thread-c++0x.lo compatibility-chrono.lo \ compatibility-condvar.lo -@ENABLE_BIONIC_LIBS_TRUE@am_libgnustl_shared_la_OBJECTS = \ -@ENABLE_BIONIC_LIBS_TRUE@ $(am__objects_2) $(am__objects_3) +am_libgnustl_shared_la_OBJECTS = $(am__objects_2) $(am__objects_3) libgnustl_shared_la_OBJECTS = $(am_libgnustl_shared_la_OBJECTS) @ENABLE_BIONIC_LIBS_TRUE@am_libgnustl_shared_la_rpath = -rpath \ @ENABLE_BIONIC_LIBS_TRUE@ $(toolexeclibdir) -@ENABLE_BIONIC_LIBS_FALSE@am_libstdc___la_OBJECTS = $(am__objects_2) \ -@ENABLE_BIONIC_LIBS_FALSE@ $(am__objects_3) +am_libstdc___la_OBJECTS = $(am__objects_2) $(am__objects_3) libstdc___la_OBJECTS = $(am_libstdc___la_OBJECTS) @ENABLE_BIONIC_LIBS_FALSE@am_libstdc___la_rpath = -rpath \ @ENABLE_BIONIC_LIBS_FALSE@ $(toolexeclibdir) @@ -372,40 +370,40 @@ cxx11_sources = \ compatibility-chrono.cc \ compatibility-condvar.cc -@ENABLE_BIONIC_LIBS_TRUE@libgnustl_shared_la_SOURCES = $(cxx98_sources) $(cxx11_sources) -@ENABLE_BIONIC_LIBS_TRUE@libgnustl_shared_la_LIBADD = \ -@ENABLE_BIONIC_LIBS_TRUE@ $(GLIBCXX_LIBS) \ -@ENABLE_BIONIC_LIBS_TRUE@ $(top_builddir)/libsupc++/libsupc++convenience.la \ -@ENABLE_BIONIC_LIBS_TRUE@ $(top_builddir)/src/c++98/libc++98convenience.la \ -@ENABLE_BIONIC_LIBS_TRUE@ $(top_builddir)/src/c++11/libc++11convenience.la - -@ENABLE_BIONIC_LIBS_TRUE@libgnustl_shared_la_DEPENDENCIES = \ -@ENABLE_BIONIC_LIBS_TRUE@ ${version_dep} \ -@ENABLE_BIONIC_LIBS_TRUE@ $(top_builddir)/libsupc++/libsupc++convenience.la \ -@ENABLE_BIONIC_LIBS_TRUE@ $(top_builddir)/src/c++98/libc++98convenience.la \ -@ENABLE_BIONIC_LIBS_TRUE@ $(top_builddir)/src/c++11/libc++11convenience.la - -@ENABLE_BIONIC_LIBS_TRUE@libgnustl_shared_la_LDFLAGS = \ -@ENABLE_BIONIC_LIBS_TRUE@ ${libtool_version_info_string} ${version_arg} -lm - -@ENABLE_BIONIC_LIBS_TRUE@libgnustl_shared_la_LINK = $(CXXLINK) $(libstdc___la_LDFLAGS) -@ENABLE_BIONIC_LIBS_FALSE@libstdc___la_SOURCES = $(cxx98_sources) $(cxx11_sources) -@ENABLE_BIONIC_LIBS_FALSE@libstdc___la_LIBADD = \ -@ENABLE_BIONIC_LIBS_FALSE@ $(GLIBCXX_LIBS) \ -@ENABLE_BIONIC_LIBS_FALSE@ $(top_builddir)/libsupc++/libsupc++convenience.la \ -@ENABLE_BIONIC_LIBS_FALSE@ $(top_builddir)/src/c++98/libc++98convenience.la \ -@ENABLE_BIONIC_LIBS_FALSE@ $(top_builddir)/src/c++11/libc++11convenience.la - -@ENABLE_BIONIC_LIBS_FALSE@libstdc___la_DEPENDENCIES = \ -@ENABLE_BIONIC_LIBS_FALSE@ ${version_dep} \ -@ENABLE_BIONIC_LIBS_FALSE@ $(top_builddir)/libsupc++/libsupc++convenience.la \ -@ENABLE_BIONIC_LIBS_FALSE@ $(top_builddir)/src/c++98/libc++98convenience.la \ -@ENABLE_BIONIC_LIBS_FALSE@ $(top_builddir)/src/c++11/libc++11convenience.la - -@ENABLE_BIONIC_LIBS_FALSE@libstdc___la_LDFLAGS = \ -@ENABLE_BIONIC_LIBS_FALSE@ ${libtool_version_info_string} ${version_arg} -lm - -@ENABLE_BIONIC_LIBS_FALSE@libstdc___la_LINK = $(CXXLINK) $(libstdc___la_LDFLAGS) +libgnustl_shared_la_SOURCES = $(cxx98_sources) $(cxx11_sources) +libgnustl_shared_la_LIBADD = \ + $(GLIBCXX_LIBS) \ + $(top_builddir)/libsupc++/libsupc++convenience.la \ + $(top_builddir)/src/c++98/libc++98convenience.la \ + $(top_builddir)/src/c++11/libc++11convenience.la + +libgnustl_shared_la_DEPENDENCIES = \ + ${version_dep} \ + $(top_builddir)/libsupc++/libsupc++convenience.la \ + $(top_builddir)/src/c++98/libc++98convenience.la \ + $(top_builddir)/src/c++11/libc++11convenience.la + +libgnustl_shared_la_LDFLAGS = \ + ${libtool_version_info_string} ${version_arg} -lm + +libgnustl_shared_la_LINK = $(CXXLINK) $(libstdc___la_LDFLAGS) +libstdc___la_SOURCES = $(cxx98_sources) $(cxx11_sources) +libstdc___la_LIBADD = \ + $(GLIBCXX_LIBS) \ + $(top_builddir)/libsupc++/libsupc++convenience.la \ + $(top_builddir)/src/c++98/libc++98convenience.la \ + $(top_builddir)/src/c++11/libc++11convenience.la + +libstdc___la_DEPENDENCIES = \ + ${version_dep} \ + $(top_builddir)/libsupc++/libsupc++convenience.la \ + $(top_builddir)/src/c++98/libc++98convenience.la \ + $(top_builddir)/src/c++11/libc++11convenience.la + +libstdc___la_LDFLAGS = \ + ${libtool_version_info_string} ${version_arg} -lm + +libstdc___la_LINK = $(CXXLINK) $(libstdc___la_LDFLAGS) # A note on compatibility and static libraries. # @@ -917,8 +915,7 @@ compatibility-condvar.o: compatibility-condvar.cc @ENABLE_SYMVERS_TRUE@ $(EGREP) -v '^[ ]*#(#| |$$)' $@.tmp | \ @ENABLE_SYMVERS_TRUE@ $(CC) -E -P -include $(CONFIG_HEADER) - > $@ || (rm -f $@ ; exit 1) @ENABLE_SYMVERS_TRUE@ rm -f $@.tmp -@ENABLE_SYMVERS_SUN_TRUE@@ENABLE_SYMVERS_TRUE@ if ENABLE_BIONIC_LIBS -@ENABLE_SYMVERS_SUN_TRUE@@ENABLE_SYMVERS_TRUE@ libstdc++-symbols.ver-sun : libstdc++-symbols.ver \ +@ENABLE_SYMVERS_SUN_TRUE@@ENABLE_SYMVERS_TRUE@libstdc++-symbols.ver-sun : libstdc++-symbols.ver \ @ENABLE_SYMVERS_SUN_TRUE@@ENABLE_SYMVERS_TRUE@ $(toplevel_srcdir)/contrib/make_sunver.pl \ @ENABLE_SYMVERS_SUN_TRUE@@ENABLE_SYMVERS_TRUE@ $(libgnustl_shared_la_OBJECTS) $(libgnustl_shared_la_LIBADD) @ENABLE_SYMVERS_SUN_TRUE@@ENABLE_SYMVERS_TRUE@ CXXFILT="$(CXXFILT)"; export CXXFILT; \ @@ -928,30 +925,7 @@ compatibility-condvar.o: compatibility-condvar.cc @ENABLE_SYMVERS_SUN_TRUE@@ENABLE_SYMVERS_TRUE@ `echo $(libgnustl_shared_la_LIBADD) | \ @ENABLE_SYMVERS_SUN_TRUE@@ENABLE_SYMVERS_TRUE@ sed 's,/\([^/.]*\)\.la,/.libs/\1.a,g'` \ @ENABLE_SYMVERS_SUN_TRUE@@ENABLE_SYMVERS_TRUE@ > $@ || (rm -f $@ ; exit 1) -@ENABLE_SYMVERS_SUN_TRUE@@ENABLE_SYMVERS_TRUE@ else -@ENABLE_SYMVERS_SUN_TRUE@@ENABLE_SYMVERS_TRUE@ libstdc++-symbols.ver-sun : libstdc++-symbols.ver \ -@ENABLE_SYMVERS_SUN_TRUE@@ENABLE_SYMVERS_TRUE@ $(toplevel_srcdir)/contrib/make_sunver.pl \ -@ENABLE_SYMVERS_SUN_TRUE@@ENABLE_SYMVERS_TRUE@ $(libstdc___la_OBJECTS) $(libstdc___la_LIBADD) -@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 's,/\([^/.]*\)\.la,/.libs/\1.a,g'` \ -@ENABLE_SYMVERS_SUN_TRUE@@ENABLE_SYMVERS_TRUE@ > $@ || (rm -f $@ ; exit 1) -@ENABLE_SYMVERS_SUN_TRUE@@ENABLE_SYMVERS_TRUE@ endif -@ENABLE_SYMVERS_DARWIN_TRUE@@ENABLE_SYMVERS_TRUE@ if ENABLE_BIONIC_LIBS -@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 \ -@ENABLE_SYMVERS_DARWIN_TRUE@@ENABLE_SYMVERS_TRUE@ $(libgnustl_shared_la_OBJECTS) $(libgnustl_shared_la_LIBADD) -@ENABLE_SYMVERS_DARWIN_TRUE@@ENABLE_SYMVERS_TRUE@ perl ${glibcxx_srcdir}/scripts/make_exports.pl \ -@ENABLE_SYMVERS_DARWIN_TRUE@@ENABLE_SYMVERS_TRUE@ libstdc++-symbols.ver \ -@ENABLE_SYMVERS_DARWIN_TRUE@@ENABLE_SYMVERS_TRUE@ $(libgnustl_shared_la_OBJECTS:%.lo=.libs/%.o) \ -@ENABLE_SYMVERS_DARWIN_TRUE@@ENABLE_SYMVERS_TRUE@ `echo $(libgnustl_shared_la_LIBADD) | \ -@ENABLE_SYMVERS_DARWIN_TRUE@@ENABLE_SYMVERS_TRUE@ sed 's,/\([^/.]*\)\.la,/.libs/\1.a,g'` \ -@ENABLE_SYMVERS_DARWIN_TRUE@@ENABLE_SYMVERS_TRUE@ > $@ || (rm -f $@ ; exit 1) -@ENABLE_SYMVERS_DARWIN_TRUE@@ENABLE_SYMVERS_TRUE@ else -@ENABLE_SYMVERS_DARWIN_TRUE@@ENABLE_SYMVERS_TRUE@ libstdc++-symbols.explist : libstdc++-symbols.ver \ +@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 \ @ENABLE_SYMVERS_DARWIN_TRUE@@ENABLE_SYMVERS_TRUE@ $(libstdc___la_OBJECTS) $(libstdc___la_LIBADD) @ENABLE_SYMVERS_DARWIN_TRUE@@ENABLE_SYMVERS_TRUE@ perl ${glibcxx_srcdir}/scripts/make_exports.pl \ @@ -960,7 +934,6 @@ compatibility-condvar.o: compatibility-condvar.cc @ENABLE_SYMVERS_DARWIN_TRUE@@ENABLE_SYMVERS_TRUE@ `echo $(libstdc___la_LIBADD) | \ @ENABLE_SYMVERS_DARWIN_TRUE@@ENABLE_SYMVERS_TRUE@ sed 's,/\([^/.]*\)\.la,/.libs/\1.a,g'` \ @ENABLE_SYMVERS_DARWIN_TRUE@@ENABLE_SYMVERS_TRUE@ > $@ || (rm -f $@ ; exit 1) -@ENABLE_SYMVERS_DARWIN_TRUE@@ENABLE_SYMVERS_TRUE@ endif # Control additional build primary rules. all-once: libstdc++convenience.la $(STAMP_DEBUG) -- cgit v1.2.3