gallium: install gallium-$version.so to libdir
Installing this private library into the default library
search path avoids needing to rely on -Wl,-rpath,
which is inconsistently implemented as either DT_RUNPATH
or DT_RPATH on different distributions; in particular,
on distributions that implement it as DT_RPATH,
it interferes with use of LD_LIBRARY_PATH and has semantics
that are difficult to reason about, and is incompatible with
Steam's container runtime (which has the known limitation that
it only implements DT_RUNPATH and not DT_RPATH).
To avoid third-party developers being tempted to link to the
unstable libgallium, give it a name that varies with each Mesa release,
so that there is no obvious way for third-party software to link to it.
This is similar to the way the proprietary Nvidia driver sets up its similar
implementation-detail libraries such as libnvidia-glcore.so.535.183.01.
Fixes: 50fc7cc2
("glx: directly link to gallium")
Acked-by: Daniel Stone <daniels@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30328>
This commit is contained in:

committed by
Marge Bot

parent
098e660a58
commit
9b7bb6cc9f
@@ -190,7 +190,6 @@ libegl = shared_library(
|
|||||||
link_args : [ld_args_bsymbolic, ld_args_gc_sections],
|
link_args : [ld_args_bsymbolic, ld_args_gc_sections],
|
||||||
dependencies : [deps_for_egl, dep_dl, dep_libdrm, dep_clock, dep_thread, idep_mesautil],
|
dependencies : [deps_for_egl, dep_dl, dep_libdrm, dep_clock, dep_thread, idep_mesautil],
|
||||||
install : true,
|
install : true,
|
||||||
install_rpath : dri_drivers_path,
|
|
||||||
version : egl_lib_version,
|
version : egl_lib_version,
|
||||||
soversion : egl_lib_soversion,
|
soversion : egl_lib_soversion,
|
||||||
name_prefix : host_machine.system() == 'windows' ? 'lib' : [], # always use lib, but avoid warnings on !windows
|
name_prefix : host_machine.system() == 'windows' ? 'lib' : [], # always use lib, but avoid warnings on !windows
|
||||||
|
@@ -7,7 +7,7 @@
|
|||||||
# configure.ac)
|
# configure.ac)
|
||||||
|
|
||||||
gallium_dri_c_args = []
|
gallium_dri_c_args = []
|
||||||
gallium_dri_ld_args = []
|
gallium_dri_ld_args = [cc.get_supported_link_arguments('-Wl,--default-symver')]
|
||||||
gallium_dri_link_depends = []
|
gallium_dri_link_depends = []
|
||||||
gallium_dri_drivers = []
|
gallium_dri_drivers = []
|
||||||
|
|
||||||
@@ -23,7 +23,7 @@ if with_ld_dynamic_list
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
libgallium_dri = shared_library(
|
libgallium_dri = shared_library(
|
||||||
'gallium',
|
'gallium-@0@'.format(meson.project_version()),
|
||||||
files('dri_target.c'),
|
files('dri_target.c'),
|
||||||
include_directories : [
|
include_directories : [
|
||||||
inc_include, inc_src, inc_mapi, inc_mesa, inc_gallium, inc_gallium_aux, inc_util, inc_gallium_drivers,
|
inc_include, inc_src, inc_mapi, inc_mesa, inc_gallium, inc_gallium_aux, inc_util, inc_gallium_drivers,
|
||||||
@@ -46,6 +46,5 @@ libgallium_dri = shared_library(
|
|||||||
driver_asahi, driver_crocus
|
driver_asahi, driver_crocus
|
||||||
],
|
],
|
||||||
install : true,
|
install : true,
|
||||||
install_dir : dri_drivers_path,
|
|
||||||
name_suffix : 'so',
|
name_suffix : 'so',
|
||||||
)
|
)
|
||||||
|
@@ -45,7 +45,6 @@ libgbm = shared_library(
|
|||||||
gnu_symbol_visibility : 'hidden',
|
gnu_symbol_visibility : 'hidden',
|
||||||
version : '1.0.0',
|
version : '1.0.0',
|
||||||
install : true,
|
install : true,
|
||||||
install_rpath : dri_drivers_path,
|
|
||||||
)
|
)
|
||||||
|
|
||||||
if with_tests
|
if with_tests
|
||||||
|
@@ -144,7 +144,6 @@ libgl = shared_library(
|
|||||||
version : gl_lib_version,
|
version : gl_lib_version,
|
||||||
darwin_versions : '4.0.0',
|
darwin_versions : '4.0.0',
|
||||||
install : true,
|
install : true,
|
||||||
install_rpath : dri_drivers_path,
|
|
||||||
)
|
)
|
||||||
|
|
||||||
if with_tests
|
if with_tests
|
||||||
|
Reference in New Issue
Block a user