From 10a560a411728f747c8394599ef95c9c8caa2086 Mon Sep 17 00:00:00 2001 From: Dylan Baker Date: Tue, 19 Dec 2017 15:42:01 -0800 Subject: compilers: fix unittest "16 prebuilt shared" on dragonfly bsd --- mesonbuild/compilers/compilers.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'mesonbuild/compilers/compilers.py') diff --git a/mesonbuild/compilers/compilers.py b/mesonbuild/compilers/compilers.py index b14074b..52dbb56 100644 --- a/mesonbuild/compilers/compilers.py +++ b/mesonbuild/compilers/compilers.py @@ -855,7 +855,10 @@ class Compiler: paths = padding else: paths = paths + ':' + padding - args = ['-Wl,-rpath,' + paths] + args = [] + if mesonlib.is_dragonflybsd(): + args.append('-Wl,-z,origin') + args.append('-Wl,-rpath,' + paths) if get_compiler_is_linuxlike(self): # Rpaths to use while linking must be absolute. These are not # written to the binary. Needed only with GNU ld: -- cgit v1.1 From 4620bdd8b4ca6a5619ff2e963f661a8784b89a05 Mon Sep 17 00:00:00 2001 From: Dylan Baker Date: Tue, 19 Dec 2017 15:52:21 -0800 Subject: tests: fix rpath_uses_ORIGIN on dragonflybsd Which always seems to prepend /usr/lib/gcc50 (or whatever version) to the rpath, and $ORIGIN after that. --- mesonbuild/compilers/compilers.py | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'mesonbuild/compilers/compilers.py') diff --git a/mesonbuild/compilers/compilers.py b/mesonbuild/compilers/compilers.py index 52dbb56..2602d14 100644 --- a/mesonbuild/compilers/compilers.py +++ b/mesonbuild/compilers/compilers.py @@ -857,6 +857,11 @@ class Compiler: paths = paths + ':' + padding args = [] if mesonlib.is_dragonflybsd(): + # This argument instructs the compiler to record the value of + # ORIGIN in the .dynamic section of the elf. On Linux this is done + # by default, but is not on dragonfly for some reason. Without this + # $ORIGIN in the runtime path will be undefined and any binaries + # linked against local libraries will fail to resolve them. args.append('-Wl,-z,origin') args.append('-Wl,-rpath,' + paths) if get_compiler_is_linuxlike(self): -- cgit v1.1