mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-02 20:20:09 +01:00
mesa: Use -Bsymbolic in the linker to locally resolve Mesa-internal symbols.
Normally, LD_PRELOAD will take precedence over your own symbols, which you want for things like malloc() in libc. But we don't have any local symbols we would want overridden (like hash_table_insert(), for example!), so tell the linker to resolve them internally. This also avoids calls through the PLT. Saves almost 100k on libdricore's size, and gets us a bunch of the performance back that we had with non-dricore. Reviewed-by: Ian Romanick <ian.d.romanick@.intel.com>
This commit is contained in:
parent
10ef949424
commit
11e494a572
8 changed files with 15 additions and 7 deletions
|
|
@ -1032,10 +1032,13 @@ if test "x$enable_dri" = xyes; then
|
|||
# put all the necessary libs together
|
||||
DRI_LIB_DEPS="$DRI_LIB_DEPS $SELINUX_LIBS $LIBDRM_LIBS $EXPAT_LIB -lm $PTHREAD_LIBS $DLOPEN_LIBS"
|
||||
GALLIUM_DRI_LIB_DEPS="$GALLIUM_DRI_LIB_DEPS $SELINUX_LIBS $LIBDRM_LIBS $EXPAT_LIB -lm $CLOCK_LIB $PTHREAD_LIBS $DLOPEN_LIBS"
|
||||
|
||||
DRI_DRIVER_LDFLAGS="-module -avoid-version -shared -Wl,-Bsymbolic"
|
||||
fi
|
||||
AM_CONDITIONAL(NEED_LIBDRICORE, test -n "$DRI_DIRS")
|
||||
AC_SUBST([EXPAT_INCLUDES])
|
||||
AC_SUBST([DRI_LIB_DEPS])
|
||||
AC_SUBST([DRI_DRIVER_LDFLAGS])
|
||||
AC_SUBST([GALLIUM_DRI_LIB_DEPS])
|
||||
|
||||
case $DRI_DIRS in
|
||||
|
|
|
|||
|
|
@ -52,7 +52,7 @@ dri_LTLIBRARIES = i915_dri.la
|
|||
endif
|
||||
|
||||
i915_dri_la_SOURCES = $(i915_FILES)
|
||||
i915_dri_la_LDFLAGS = -module -avoid-version -shared
|
||||
i915_dri_la_LDFLAGS = $(DRI_DRIVER_LDFLAGS)
|
||||
i915_dri_la_LIBADD = \
|
||||
../common/libdricommon.la \
|
||||
$(DRI_LIB_DEPS) \
|
||||
|
|
|
|||
|
|
@ -72,7 +72,7 @@ TEST_LIBS = \
|
|||
i965_dri_la_SOURCES =
|
||||
nodist_EXTRA_i965_dri_la_SOURCES = dummy2.cpp
|
||||
i965_dri_la_LIBADD = $(COMMON_LIBS)
|
||||
i965_dri_la_LDFLAGS = -module -avoid-version -shared
|
||||
i965_dri_la_LDFLAGS = $(DRI_DRIVER_LDFLAGS)
|
||||
|
||||
TESTS = \
|
||||
test_eu_compact \
|
||||
|
|
|
|||
|
|
@ -42,7 +42,7 @@ endif
|
|||
nouveau_vieux_dri_la_SOURCES = \
|
||||
$(NOUVEAU_C_FILES)
|
||||
|
||||
nouveau_vieux_dri_la_LDFLAGS = -module -avoid-version -shared
|
||||
nouveau_vieux_dri_la_LDFLAGS = $(DRI_DRIVER_LDFLAGS)
|
||||
nouveau_vieux_dri_la_LIBADD = \
|
||||
../common/libdricommon.la \
|
||||
$(DRI_LIB_DEPS) \
|
||||
|
|
|
|||
|
|
@ -45,7 +45,7 @@ endif
|
|||
r200_dri_la_SOURCES = \
|
||||
$(R200_C_FILES)
|
||||
|
||||
r200_dri_la_LDFLAGS = -module -avoid-version -shared
|
||||
r200_dri_la_LDFLAGS = $(DRI_DRIVER_LDFLAGS)
|
||||
r200_dri_la_LIBADD = \
|
||||
../common/libdricommon.la \
|
||||
$(DRI_LIB_DEPS) \
|
||||
|
|
|
|||
|
|
@ -45,7 +45,7 @@ endif
|
|||
radeon_dri_la_SOURCES = \
|
||||
$(RADEON_C_FILES)
|
||||
|
||||
radeon_dri_la_LDFLAGS = -module -avoid-version -shared
|
||||
radeon_dri_la_LDFLAGS = $(DRI_DRIVER_LDFLAGS)
|
||||
radeon_dri_la_LIBADD = \
|
||||
../common/libdricommon.la \
|
||||
$(DRI_LIB_DEPS) \
|
||||
|
|
|
|||
|
|
@ -42,7 +42,8 @@ endif
|
|||
swrast_dri_la_SOURCES = \
|
||||
$(SWRAST_C_FILES)
|
||||
|
||||
swrast_dri_la_LDFLAGS = -module -avoid-version -shared
|
||||
swrast_dri_la_LDFLAGS = $(DRI_DRIVER_LDFLAGS)
|
||||
|
||||
swrast_dri_la_LIBADD = \
|
||||
$(DRI_LIB_DEPS)
|
||||
|
||||
|
|
|
|||
|
|
@ -37,7 +37,11 @@ libdricore@VERSION@_la_SOURCES = \
|
|||
$(LIBGLCPP_FILES) \
|
||||
$(LIBGLSL_GENERATED_CXX_FILES) \
|
||||
$(LIBGLSL_FILES)
|
||||
libdricore@VERSION@_la_LDFLAGS = -version-number 1:0
|
||||
libdricore@VERSION@_la_LDFLAGS = \
|
||||
-version-number 1:0 \
|
||||
-Wl,-Bsymbolic \
|
||||
$()
|
||||
|
||||
libdricore@VERSION@_la_LIBADD = \
|
||||
../program/libdricore_program.la \
|
||||
$()
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue