summaryrefslogtreecommitdiff
path: root/solenv/inc/unxlngi6.mk
diff options
context:
space:
mode:
Diffstat (limited to 'solenv/inc/unxlngi6.mk')
-rw-r--r--solenv/inc/unxlngi6.mk17
1 files changed, 11 insertions, 6 deletions
diff --git a/solenv/inc/unxlngi6.mk b/solenv/inc/unxlngi6.mk
index 51d52241b498..3cc514c8b9a0 100644
--- a/solenv/inc/unxlngi6.mk
+++ b/solenv/inc/unxlngi6.mk
@@ -157,10 +157,15 @@ LINKFLAGSRUNPATH_OXT=
LINKFLAGSRUNPATH_NONE=
# flag -Wl,-z,noexecstack sets the NX bit on the stack
LINKFLAGS=-Wl,-z,noexecstack -Wl,-z,combreloc $(LINKFLAGSDEFS)
+.IF "$(HAVE_LD_BSYMBOLIC_FUNCTIONS)" == "TRUE"
+LINKFLAGS += -Wl,-Bsymbolic-functions -Wl,--dynamic-list-cpp-new -Wl,--dynamic-list-cpp-typeinfo
+.ENDIF
# linker flags for linking applications
-LINKFLAGSAPPGUI= -Wl,-export-dynamic -Wl,--noinhibit-exec
-LINKFLAGSAPPCUI= -Wl,-export-dynamic -Wl,--noinhibit-exec
+LINKFLAGSAPPGUI= -Wl,-export-dynamic -Wl,--noinhibit-exec \
+ -Wl,-rpath-link,$(LB):$(SOLARLIBDIR)
+LINKFLAGSAPPCUI= -Wl,-export-dynamic -Wl,--noinhibit-exec \
+ -Wl,-rpath-link,$(LB):$(SOLARLIBDIR)
# linker flags for linking shared libraries
LINKFLAGSSHLGUI= -shared
@@ -202,11 +207,11 @@ LINKFLAGS += -Wl,-zdynsort
.ENDIF
# libraries for linking applications
-STDLIBGUIMT+=-lX11 -ldl -lpthread -lm
-STDLIBCUIMT+=-ldl -lpthread -lm
+STDLIBGUIMT+=-Wl,--as-needed -lX11 -ldl -lpthread -lm -Wl,--no-as-needed
+STDLIBCUIMT+=-Wl,--as-needed -ldl -lpthread -lm -Wl,--no-as-needed
# libraries for linking shared libraries
-STDSHLGUIMT+=-lX11 -lXext -ldl -lpthread -lm
-STDSHLCUIMT+=-ldl -lpthread -lm
+STDSHLGUIMT+=-Wl,--as-needed -lX11 -lXext -ldl -lpthread -lm -Wl,--no-as-needed
+STDSHLCUIMT+=-Wl,--as-needed -ldl -lpthread -lm -Wl,--no-as-needed
LIBSALCPPRT*=-Wl,--whole-archive -lsalcpprt -Wl,--no-whole-archive