hc
2023-05-26 a23f51ed7a39e452c1037343a84d7db1ca2c5bd7
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
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