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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
From: Richard Purdie <richard.purdie@linuxfoundation.org>
Subject: [PATCH 05/12] ltmain.in: Don't encode RATHS which match default linker paths
 
We don't want to add RPATHS which match default linker search paths, they're
a waste of space. This patch filters libtools list of paths to encoode and
removes the ones we don't need.
 
Libtool may be passed link paths of the form "/usr/lib/../lib" so normalize
the paths before comparision.
 
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
 
Upstream-Status: Submitted [https://lists.gnu.org/archive/html/libtool-patches/2021-10/msg00013.html]
 
diff -u b/build-aux/ltmain.in b/build-aux/ltmain.in
--- b/build-aux/ltmain.in
+++ b/build-aux/ltmain.in    2012-08-22 11:01:34.191345989 -0700
@@ -7286,8 +7286,16 @@
           esac
         fi
           else
-        eval flag=\"$hardcode_libdir_flag_spec\"
-        func_append dep_rpath " $flag"
+                # We only want to hardcode in an rpath if it isn't in the
+                # default dlsearch path.
+                func_normal_abspath "$libdir"
+                libdir_norm=$func_normal_abspath_result
+            case " $sys_lib_dlsearch_path " in
+            *" $libdir_norm "*) ;;
+            *) eval flag=\"$hardcode_libdir_flag_spec\"
+                   func_append dep_rpath " $flag"
+                   ;;
+            esac
           fi
         elif test -n "$runpath_var"; then
           case "$perm_rpath " in
@@ -8019,8 +8027,16 @@
           esac
         fi
       else
-        eval flag=\"$hardcode_libdir_flag_spec\"
-        func_append rpath " $flag"
+            # We only want to hardcode in an rpath if it isn't in the
+            # default dlsearch path.
+            func_normal_abspath "$libdir"
+            libdir_norm=$func_normal_abspath_result
+        case " $sys_lib_dlsearch_path " in
+        *" $libdir_norm "*) ;;
+        *) eval flag=\"$hardcode_libdir_flag_spec\"
+               rpath+=" $flag"
+               ;;
+        esac
       fi
     elif test -n "$runpath_var"; then
       case "$perm_rpath " in
@@ -8070,8 +8086,14 @@
           esac
         fi
       else
-        eval flag=\"$hardcode_libdir_flag_spec\"
-        func_append rpath " $flag"
+            # We only want to hardcode in an rpath if it isn't in the
+            # default dlsearch path.
+        case " $sys_lib_dlsearch_path " in
+        *" $libdir "*) ;;
+        *) eval flag=\"$hardcode_libdir_flag_spec\"
+               func_append rpath " $flag"
+               ;;
+        esac    
       fi
     elif test -n "$runpath_var"; then
       case "$finalize_perm_rpath " in