diff options
author | Luboš Luňák <l.lunak@collabora.com> | 2018-06-30 03:35:49 +0200 |
---|---|---|
committer | Luboš Luňák <l.lunak@collabora.com> | 2018-07-04 15:35:22 +0200 |
commit | e73825ea4b12cc62caa95faa902bfc9ebb48f58a (patch) | |
tree | 03ba42e9a903644e064a0b7e3a83801aedb63157 | |
parent | f0d007b7b70e2845df082d11f023e4fca9ac947f (diff) |
drop usage of --dynamic-list-cpp-new/typeinfo
First of all, lld doesn't have these options, but there doesn't seem
to be any point in using them anyway. They are supposed to block
the effect of -Bsymbolic-functions, but:
- --dynamic-list-cpp-new matters only if we'd create our own global
operator new/delete, which we don't
- --dynamic-list-cpp-typeinfo affects only the typeinfo (_ZTI*)
and typeinfo name (_ZTS*) symbols, which are not functions, and
so -Bsymbolic-functions shouldn't do anything with them. According
to https://sourceware.org/bugzilla/show_bug.cgi?id=3831
my understanding is that --dynamic-list-cpp-typeinfo actually
predates -Bsymbolic-functions and it was an attempt to do the same
from the other direction ('bind locally everything except for this'
instead of 'bind locally only functions').
Change-Id: Iadad2d78f32a2adfb9c2100fb4eb5abe75725545
Reviewed-on: https://gerrit.libreoffice.org/56739
Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
Tested-by: Luboš Luňák <l.lunak@collabora.com>
-rw-r--r-- | configure.ac | 2 | ||||
-rw-r--r-- | external/icu/ExternalProject_icu.mk | 3 | ||||
-rw-r--r-- | solenv/gbuild/platform/solaris.mk | 6 | ||||
-rw-r--r-- | solenv/gbuild/platform/unxgcc.mk | 6 |
4 files changed, 4 insertions, 13 deletions
diff --git a/configure.ac b/configure.ac index bf2c8fbf5570..c8d18b18fde8 100644 --- a/configure.ac +++ b/configure.ac @@ -3151,7 +3151,7 @@ HAVE_LD_BSYMBOLIC_FUNCTIONS= if test "$GCC" = "yes"; then AC_MSG_CHECKING([for -Bsymbolic-functions linker support]) bsymbolic_functions_ldflags_save=$LDFLAGS - LDFLAGS="$LDFLAGS -Wl,-Bsymbolic-functions -Wl,--dynamic-list-cpp-new -Wl,--dynamic-list-cpp-typeinfo" + LDFLAGS="$LDFLAGS -Wl,-Bsymbolic-functions" AC_LINK_IFELSE([AC_LANG_PROGRAM([ #include <stdio.h> ],[ diff --git a/external/icu/ExternalProject_icu.mk b/external/icu/ExternalProject_icu.mk index e1ec30938bf7..1e94eef0fd5e 100644 --- a/external/icu/ExternalProject_icu.mk +++ b/external/icu/ExternalProject_icu.mk @@ -54,8 +54,7 @@ icu_LDFLAGS:=" \ $(if $(ENABLE_LTO),$(gb_LTOFLAGS)) \ $(if $(filter TRUE,$(HAVE_LD_HASH_STYLE)),-Wl$(COMMA)--hash-style=$(WITH_LINKER_HASH_STYLE)) \ $(if $(SYSBASE),-L../lib -L../../lib -L../stubdata -L../../stubdata -L$(SYSBASE)/usr/lib) \ - $(if $(filter TRUE,$(HAVE_LD_BSYMBOLIC_FUNCTIONS)),\ - -Wl$(COMMA)-Bsymbolic-functions -Wl$(COMMA)--dynamic-list-cpp-new -Wl$(COMMA)--dynamic-list-cpp-typeinfo) \ + $(if $(filter TRUE,$(HAVE_LD_BSYMBOLIC_FUNCTIONS)), -Wl$(COMMA)-Bsymbolic-functions) \ $(if $(filter ANDROID,$(OS)),$(gb_STDLIBS))" # DATASUBDIR=data in cross-compiling case, because --disable-tools completely skips the diff --git a/solenv/gbuild/platform/solaris.mk b/solenv/gbuild/platform/solaris.mk index 2210d4f972d1..88fa9413f726 100644 --- a/solenv/gbuild/platform/solaris.mk +++ b/solenv/gbuild/platform/solaris.mk @@ -81,11 +81,7 @@ gb_LinkTarget_LDFLAGS += \ endif ifneq ($(HAVE_LD_BSYMBOLIC_FUNCTIONS),) -gb_LinkTarget_LDFLAGS += \ - -Wl,--dynamic-list-cpp-new \ - -Wl,--dynamic-list-cpp-typeinfo \ - -Wl,-Bsymbolic-functions \ - +gb_LinkTarget_LDFLAGS += -Wl,-Bsymbolic-functions endif # sun ld doesn't understand -O1 optimize flag diff --git a/solenv/gbuild/platform/unxgcc.mk b/solenv/gbuild/platform/unxgcc.mk index 8505f9638a19..79144b19763b 100644 --- a/solenv/gbuild/platform/unxgcc.mk +++ b/solenv/gbuild/platform/unxgcc.mk @@ -75,11 +75,7 @@ gb_LinkTarget_LDFLAGS += \ endif ifneq ($(HAVE_LD_BSYMBOLIC_FUNCTIONS),) -gb_LinkTarget_LDFLAGS += \ - -Wl,--dynamic-list-cpp-new \ - -Wl,--dynamic-list-cpp-typeinfo \ - -Wl,-Bsymbolic-functions \ - +gb_LinkTarget_LDFLAGS += -Wl,-Bsymbolic-functions endif ifneq ($(gb_DEBUGLEVEL),0) |