From: Richard Purdie <richard.purdie@linuxfoundation.org>
|
Subject: [PATCH 04/12] ltmain.sh: Fix sysroot paths being encoded into RPATHs
|
|
There is a bug where RPATHs could end up containing sysroot values when
|
cross compiling which is obviously incorrect. Strip out sysroot components
|
from libdir when building RPATH values to avoid this.
|
|
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
|
|
Upstream-Status: Submitted [https://lists.gnu.org/archive/html/libtool-patches/2021-10/msg00009.html]
|
|
diff --git a/build-aux/ltmain.in b/build-aux/ltmain.in
|
--- a/build-aux/ltmain.in
|
+++ b/build-aux/ltmain.in
|
@@ -7569,9 +7569,11 @@ EOF
|
test relink = "$opt_mode" || rpath=$compile_rpath$rpath
|
for libdir in $rpath; do
|
if test -n "$hardcode_libdir_flag_spec"; then
|
+ func_replace_sysroot "$libdir"
|
+ libdir=$func_replace_sysroot_result
|
+ func_stripname '=' '' "$libdir"
|
+ libdir=$func_stripname_result
|
if test -n "$hardcode_libdir_separator"; then
|
- func_replace_sysroot "$libdir"
|
- libdir=$func_replace_sysroot_result
|
if test -z "$hardcode_libdirs"; then
|
hardcode_libdirs=$libdir
|
else
|
@@ -8301,6 +8303,10 @@ EOF
|
hardcode_libdirs=
|
for libdir in $compile_rpath $finalize_rpath; do
|
if test -n "$hardcode_libdir_flag_spec"; then
|
+ func_replace_sysroot "$libdir"
|
+ libdir=$func_replace_sysroot_result
|
+ func_stripname '=' '' "$libdir"
|
+ libdir=$func_stripname_result
|
if test -n "$hardcode_libdir_separator"; then
|
if test -z "$hardcode_libdirs"; then
|
hardcode_libdirs=$libdir
|
@@ -8352,6 +8358,10 @@ EOF
|
hardcode_libdirs=
|
for libdir in $finalize_rpath; do
|
if test -n "$hardcode_libdir_flag_spec"; then
|
+ func_replace_sysroot "$libdir"
|
+ libdir=$func_replace_sysroot_result
|
+ func_stripname '=' '' "$libdir"
|
+ libdir=$func_stripname_result
|
if test -n "$hardcode_libdir_separator"; then
|
if test -z "$hardcode_libdirs"; then
|
hardcode_libdirs=$libdir
|