summaryrefslogtreecommitdiff
path: root/buildlib
diff options
context:
space:
mode:
authorJulian Andres Klode <jak@debian.org>2016-06-01 14:54:32 +0200
committerJulian Andres Klode <jak@debian.org>2016-06-01 16:00:46 +0200
commitaddbf58217d9aa3709c48d8821b256d726aefa5b (patch)
treea686726e1f94d0effff93068bda7b99fa720f5c3 /buildlib
parent4e417f6222d46571833deb8adf4e725f0e6c3d38 (diff)
Pass -fvisibility-inlines-hidden to g++
This reduces the number of symbols by about 10%. Unfortunately, it does not seem to cover all the weird std::vector and friend template expansions. ABI should not brake due to that change: It was never specified before whether an inline symbol was exported or not; so no library could rely on its presence. Instead, the symbols were exported in each library/program needing it and and then merged into a common one by the dynamic linker. Also update the symbol files to account for the removed symbols.
Diffstat (limited to 'buildlib')
-rw-r--r--buildlib/environment.mak.in2
1 files changed, 2 insertions, 0 deletions
diff --git a/buildlib/environment.mak.in b/buildlib/environment.mak.in
index 9620722de..2ac3d6847 100644
--- a/buildlib/environment.mak.in
+++ b/buildlib/environment.mak.in
@@ -19,6 +19,8 @@ CXXFLAGS+= -Wctor-dtor-privacy -Wdisabled-optimization -Winit-self -Wmissing-inc
#CXXFLAGS+= -fsanitize=address -fsanitize=undefined -fno-sanitize=vptr
# a bit too pedantic to be run by default
#CXXFLAGS+= -Wpedantic -Wno-long-long -Wno-vla -Wno-variadic-macros
+# hide inlines
+CXXFLAGS+= -fvisibility-inlines-hidden
NUM_PROCS = @NUM_PROCS@
# Linker stuff