diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2019-08-27 15:49:09 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2019-08-27 15:49:09 +0200 |
commit | c148d4c35419607354fd1cecd1aaa776e7b71569 (patch) | |
tree | eeb9a94814a3fc56114454044e41b3ea4955556d | |
parent | be34c36f7b9ab7d2fd0d3a7bc2a0f5f62ff4fe67 (diff) |
Force use of RPATH instead of RUNPATH on Linux
RUNPATH messes up our use of dlopen().
-rw-r--r-- | build2/buildfile | 13 | ||||
-rw-r--r-- | libbuild2/buildfile | 10 |
2 files changed, 19 insertions, 4 deletions
diff --git a/build2/buildfile b/build2/buildfile index a1b299d..196c485 100644 --- a/build2/buildfile +++ b/build2/buildfile @@ -56,13 +56,20 @@ if ($cxx.target == $build.host) -DBUILD2_NATIVE_CXX=\"$regex.replace($recall($cxx.path), '\\', '\\\\')\" } -if ($cxx.target.class != "windows") +if ($cxx.target.class != 'windows') { - # Make sure backtrace includes function names. - # if ($cxx.target.class == 'linux') + { + # Make sure backtrace includes function names. + # cxx.loptions += -rdynamic + # Make sure we use RPATH and not RUNPATH since the latter messes up + # dlopen(). + # + cxx.loptions += -Wl,--disable-new-dtags + } + cxx.libs += -lpthread } else diff --git a/libbuild2/buildfile b/libbuild2/buildfile index 881b6e8..b536eba 100644 --- a/libbuild2/buildfile +++ b/libbuild2/buildfile @@ -94,8 +94,16 @@ if! $cross obja{context}: cxx.poptions += -DLIBBUILD2_STATIC_BUILD objs{context}: cxx.poptions += -DLIBBUILD2_SHARED_BUILD -if ($cxx.target.class != "windows") +if ($cxx.target.class != 'windows') { + if ($cxx.target.class == 'linux') + { + # Make sure we use RPATH and not RUNPATH since the latter messes up + # dlopen(). + # + cxx.loptions += -Wl,--disable-new-dtags + } + cxx.libs += -lpthread if ($cxx.target.class != "bsd") |