aboutsummaryrefslogtreecommitdiff
path: root/build/tools/toolchain-patches/gcc
diff options
context:
space:
mode:
authorDavid 'Digit' Turner <digit@google.com>2011-10-10 18:01:38 +0200
committerDavid 'Digit' Turner <digit@google.com>2011-10-10 18:05:34 +0200
commit0059fb2aa9c710cfe7dfd3d67a1cdc7b5e3e284a (patch)
treef5124e13a5cbcfbe65b0e7e0b8c774482294be97 /build/tools/toolchain-patches/gcc
parent13b5f454053aa62ea4cda3c5aa0fb80cfca82dad (diff)
downloadndk-0059fb2aa9c710cfe7dfd3d67a1cdc7b5e3e284a.tar.gz
gnustl_shared: New C++ runtime
This patch fixes build-gnu-libstdc++.sh to work properly and generate libgnustl_shared.so from the GNU libstdc++ sources. This is done by a custom patch to the gcc toolchain source tree to force the generation of libgnustl_shared.so from the same objects than libstdc++.so. This is required because there is no way to change the internal DT_SONAME of a given shared library, so a simple rename will not work. We also ensure that libgnustl_static.a is properly generated and used by the make-standalone-toolchain.sh script (which uses copy-libstdcxx.sh) + Update definitions.mk to make "gnustl_shared" available in APP_STL + Update documentation to reflect that STLport now supports RTTI + Update documentation to reflect the new gnustl_shared runtime Change-Id: Ie3ffaf825ba2d65eca027ec0be5e320d0ee39cbc
Diffstat (limited to 'build/tools/toolchain-patches/gcc')
-rw-r--r--build/tools/toolchain-patches/gcc/0006-Disable-libstdc++-versioning.patch27
1 files changed, 23 insertions, 4 deletions
diff --git a/build/tools/toolchain-patches/gcc/0006-Disable-libstdc++-versioning.patch b/build/tools/toolchain-patches/gcc/0006-Disable-libstdc++-versioning.patch
index 5bd8b38a1..acb23eae9 100644
--- a/build/tools/toolchain-patches/gcc/0006-Disable-libstdc++-versioning.patch
+++ b/build/tools/toolchain-patches/gcc/0006-Disable-libstdc++-versioning.patch
@@ -1,6 +1,6 @@
diff -burN gcc-a/gcc-4.4.3/libstdc++-v3/src/Makefile.am gcc-b/gcc-4.4.3/libstdc++-v3/src/Makefile.am
---- gcc-a/gcc-4.4.3/libstdc++-v3/src/Makefile.am 2011-10-02 22:00:20.352164415 +0200
-+++ gcc-b/gcc-4.4.3/libstdc++-v3/src/Makefile.am 2011-10-02 22:00:37.311501551 +0200
+--- gcc-a/gcc-4.4.3/libstdc++-v3/src/Makefile.am 2011-10-10 17:32:21.983349054 +0200
++++ gcc-b/gcc-4.4.3/libstdc++-v3/src/Makefile.am 2011-10-10 17:10:06.474674579 +0200
@@ -206,7 +206,7 @@
$(top_builddir)/libsupc++/libsupc++convenience.la
@@ -11,8 +11,17 @@ diff -burN gcc-a/gcc-4.4.3/libstdc++-v3/src/Makefile.am gcc-b/gcc-4.4.3/libstdc+
# Use special rules for the deprecated source files so that they find
# deprecated include files.
diff -burN gcc-a/gcc-4.4.3/libstdc++-v3/src/Makefile.in gcc-b/gcc-4.4.3/libstdc++-v3/src/Makefile.in
---- gcc-a/gcc-4.4.3/libstdc++-v3/src/Makefile.in 2011-10-02 22:00:20.352164415 +0200
-+++ gcc-b/gcc-4.4.3/libstdc++-v3/src/Makefile.in 2011-10-02 22:00:37.311501551 +0200
+--- gcc-a/gcc-4.4.3/libstdc++-v3/src/Makefile.in 2011-10-10 17:32:21.983349054 +0200
++++ gcc-b/gcc-4.4.3/libstdc++-v3/src/Makefile.in 2011-10-10 17:10:06.514673034 +0200
+@@ -350,7 +350,7 @@
+ AM_CPPFLAGS = $(GLIBCXX_INCLUDES)
+
+ # Cross compiler support.
+-toolexeclib_LTLIBRARIES = libstdc++.la
++toolexeclib_LTLIBRARIES = libstdc++.la libgnustl_shared.la
+ @ENABLE_SYMVERS_DARWIN_TRUE@@ENABLE_SYMVERS_TRUE@version_arg = -Wl,-exported_symbols_list,libstdc++-symbols.explist
+ @ENABLE_SYMVERS_FALSE@version_arg =
+ @ENABLE_SYMVERS_GNU_NAMESPACE_TRUE@@ENABLE_SYMVERS_TRUE@version_arg = -Wl,--version-script=libstdc++-symbols.ver
@@ -454,7 +454,7 @@
$(top_builddir)/libsupc++/libsupc++convenience.la
@@ -22,3 +31,13 @@ diff -burN gcc-a/gcc-4.4.3/libstdc++-v3/src/Makefile.in gcc-b/gcc-4.4.3/libstdc+
# Use special rules for the deprecated source files so that they find
+@@ -576,6 +576,9 @@
+ libstdc++.la: $(libstdc___la_OBJECTS) $(libstdc___la_DEPENDENCIES)
+ $(CXXLINK) -rpath $(toolexeclibdir) $(libstdc___la_LDFLAGS) $(libstdc___la_OBJECTS) $(libstdc___la_LIBADD) $(LIBS)
+
++libgnustl_shared.la: $(libstdc___la_OBJECTS) $(libstdc___la_DEPENDENCIES)
++ $(CXXLINK) -rpath $(toolexeclibdir) $(libstdc___la_LDFLAGS) $(libstdc___la_OBJECTS) $(libstdc___la_LIBADD) $(LIBS)
++
+ mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+