summaryrefslogtreecommitdiffstats
path: root/libcxx/lib
diff options
context:
space:
mode:
authorHoward Hinnant <hhinnant@apple.com>2010-12-17 14:46:43 +0000
committerHoward Hinnant <hhinnant@apple.com>2010-12-17 14:46:43 +0000
commitc950e77d1d0431b9fa9144e9ea7eaa858d8e032e (patch)
tree31a672a40ebda8b5227d84a342b243b1099c6700 /libcxx/lib
parent166cfa3a428aaf9f0cf780461b4c21aea45eb905 (diff)
downloadbcm5719-llvm-c950e77d1d0431b9fa9144e9ea7eaa858d8e032e.tar.gz
bcm5719-llvm-c950e77d1d0431b9fa9144e9ea7eaa858d8e032e.zip
Effort to reduce the number of exported symbols
llvm-svn: 122057
Diffstat (limited to 'libcxx/lib')
-rwxr-xr-xlibcxx/lib/buildit2
-rw-r--r--libcxx/lib/libc++unexp.exp19
2 files changed, 21 insertions, 0 deletions
diff --git a/libcxx/lib/buildit b/libcxx/lib/buildit
index db22942831b..e296f021820 100755
--- a/libcxx/lib/buildit
+++ b/libcxx/lib/buildit
@@ -41,6 +41,7 @@ case $TRIPLE in
-compatibility_version 1 \
-install_name /usr/lib/libc++.dylib \
-Wl,-reexport_library,/usr/lib/libc++abi.dylib \
+ -Wl,-unexported_symbols_list,libc++unexp.exp \
/usr/lib/libSystem.B.dylib"
else
LDSHARED_FLAGS="-o libc++.1.dylib \
@@ -49,6 +50,7 @@ case $TRIPLE in
-install_name /usr/lib/libc++.dylib \
${SDKROOT}/usr/lib/libc++abi.dylib \
-lSystem \
+ -Wl,-unexported_symbols_list,libc++unexp.exp \
-Wl,-reexported_symbols_list,libc++abi.exp \
-Wl,-force_symbols_not_weak_list,notweak.exp"
fi
diff --git a/libcxx/lib/libc++unexp.exp b/libcxx/lib/libc++unexp.exp
new file mode 100644
index 00000000000..9507fc57f18
--- /dev/null
+++ b/libcxx/lib/libc++unexp.exp
@@ -0,0 +1,19 @@
+# all guard variables
+__ZGVNSt3__*
+# all vtables
+# __ZTV*
+# all VTT
+# __ZTT*
+# all non-virtual thunks
+# __ZTh*
+# all virtual thunks
+# __ZTv*
+# typeinfo for std::__1::__types
+# There are no std::__types
+# __ZTINSt3__1[0-9][0-9]*__*
+# typeinfo name for std::__1::__types
+__ZTSNSt3__1[0-9][0-9]*__*
+# anything using __hidden_allocator
+*__hidden_allocator*
+# anything using __sso_allocator
+*__sso_allocator*
OpenPOWER on IntegriCloud