From 09a5399d095137d3d302dc885abbf88731a1918b Mon Sep 17 00:00:00 2001 From: Hemmo Nieminen Date: Fri, 7 Jul 2017 11:34:54 +0300 Subject: Fix how rpath directories are handled. Linking a library from a directory below the executable's directory caused an invalid path to be written in the executable's RPATH. --- mesonbuild/compilers/compilers.py | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) (limited to 'mesonbuild/compilers') diff --git a/mesonbuild/compilers/compilers.py b/mesonbuild/compilers/compilers.py index 9007cc5..116b0d9 100644 --- a/mesonbuild/compilers/compilers.py +++ b/mesonbuild/compilers/compilers.py @@ -763,14 +763,10 @@ class Compiler: # directory. This breaks reproducible builds. rel_rpaths = [] for p in rpath_paths: - # p can be an empty string for build_dir (relative path), but - # os.path.relpath() below won't like that. - if p == '': - p = build_dir if p == from_dir: relative = '' # relpath errors out in this case else: - relative = os.path.relpath(p, from_dir) + relative = os.path.relpath(os.path.join(build_dir, p), os.path.join(build_dir, from_dir)) rel_rpaths.append(relative) paths = ':'.join([os.path.join('$ORIGIN', p) for p in rel_rpaths]) if len(paths) < len(install_rpath): -- cgit v1.1