Reenable building with -fvisibility-inlines-hidden.
authorBenjamin Kramer <benny.kra@googlemail.com>
Thu, 22 Dec 2011 21:41:32 +0000 (21:41 +0000)
committerBenjamin Kramer <benny.kra@googlemail.com>
Thu, 22 Dec 2011 21:41:32 +0000 (21:41 +0000)
This was disabled years ago because of a bug in GCC 4.1, which is
on our "broken compilers" list for other reasons. Saving ~500k
on a clang binary (Release+Asserts) is well worth dropping support
for it.

We currently disable it for shared libraries (where it would bring
the biggest win) because clang is broken (PR11642).

IMPORTANT: If you're doing incremental builds you may get tons of
linker warnings. make clean will fix them.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147182 91177308-0d34-0410-b5e6-96231b3b80d8

Makefile.rules

index 974a962102f269635599160190844cf392673b8f..05b9689973bcf43e89e3a8e8475e18aebe7d8d5d 100644 (file)
@@ -319,9 +319,12 @@ ifeq ($(ENABLE_PROFILING),1)
   KEEP_SYMBOLS := 1
 endif
 
-#ifeq ($(ENABLE_VISIBILITY_INLINES_HIDDEN),1)
-#    CXX.Flags += -fvisibility-inlines-hidden
-#endif
+ifeq ($(ENABLE_VISIBILITY_INLINES_HIDDEN),1)
+# FIXME: clang's -fvisibility-inlines-hidden is broken for shared libs. PR11642.
+ifneq ($(ENABLE_SHARED),1)
+    CXX.Flags += -fvisibility-inlines-hidden
+endif
+endif
 
 ifdef ENABLE_EXPENSIVE_CHECKS
   # GNU libstdc++ uses RTTI if you define _GLIBCXX_DEBUG, which we did above.