summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLuboš Luňák <l.lunak@collabora.com>2018-06-30 03:35:49 +0200
committerLuboš Luňák <l.lunak@collabora.com>2018-07-04 15:35:22 +0200
commite73825ea4b12cc62caa95faa902bfc9ebb48f58a (patch)
tree03ba42e9a903644e064a0b7e3a83801aedb63157
parentloplugin:useuniqueptr in ScDPDataDimension (diff)
downloadcore-e73825ea4b12cc62caa95faa902bfc9ebb48f58a.tar.gz
core-e73825ea4b12cc62caa95faa902bfc9ebb48f58a.zip
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.ac2
-rw-r--r--external/icu/ExternalProject_icu.mk3
-rw-r--r--solenv/gbuild/platform/solaris.mk6
-rw-r--r--solenv/gbuild/platform/unxgcc.mk6
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)