diff options
Diffstat (limited to 'meta/recipes-devtools/binutils/binutils/0014-libtool-remove-rpath.patch')
-rw-r--r-- | meta/recipes-devtools/binutils/binutils/0014-libtool-remove-rpath.patch | 100 |
1 files changed, 100 insertions, 0 deletions
diff --git a/meta/recipes-devtools/binutils/binutils/0014-libtool-remove-rpath.patch b/meta/recipes-devtools/binutils/binutils/0014-libtool-remove-rpath.patch new file mode 100644 index 0000000000..d56948f15d --- /dev/null +++ b/meta/recipes-devtools/binutils/binutils/0014-libtool-remove-rpath.patch | |||
@@ -0,0 +1,100 @@ | |||
1 | Apply these patches from our libtool patches as not only are redundant RPATHs a | ||
2 | waste of space but they can cause incorrect linking when native packages are | ||
3 | restored from sstate. | ||
4 | |||
5 | fix-rpath.patch: | ||
6 | We don't want to add RPATHS which match default linker | ||
7 | search paths, they're a waste of space. This patch | ||
8 | filters libtools list and removes the ones we don't need. | ||
9 | |||
10 | norm-rpath.patch: | ||
11 | Libtool may be passed link paths of the form "/usr/lib/../lib", which | ||
12 | fool its detection code into thinking it should be included as an | ||
13 | RPATH in the generated binary. Normalize before comparision. | ||
14 | |||
15 | Upstream-Status: Inappropriate | ||
16 | Signed-off-by: Ross Burton <ross.burton@intel.com> | ||
17 | |||
18 | diff --git a/ltmain.sh b/ltmain.sh | ||
19 | index 683317c..860a16a 100644 | ||
20 | --- a/ltmain.sh | ||
21 | +++ b/ltmain.sh | ||
22 | @@ -8053,8 +8053,14 @@ EOF | ||
23 | esac | ||
24 | fi | ||
25 | else | ||
26 | - eval flag=\"$hardcode_libdir_flag_spec\" | ||
27 | - func_append dep_rpath " $flag" | ||
28 | + # We only want to hardcode in an rpath if it isn't in the | ||
29 | + # default dlsearch path. | ||
30 | + case " $sys_lib_dlsearch_path " in | ||
31 | + *" $libdir "*) ;; | ||
32 | + *) eval flag=\"$hardcode_libdir_flag_spec\" | ||
33 | + func_append dep_rpath " $flag" | ||
34 | + ;; | ||
35 | + esac | ||
36 | fi | ||
37 | elif test -n "$runpath_var"; then | ||
38 | case "$perm_rpath " in | ||
39 | @@ -8790,8 +8796,14 @@ EOF | ||
40 | esac | ||
41 | fi | ||
42 | else | ||
43 | - eval flag=\"$hardcode_libdir_flag_spec\" | ||
44 | - func_append rpath " $flag" | ||
45 | + # We only want to hardcode in an rpath if it isn't in the | ||
46 | + # default dlsearch path. | ||
47 | + case " $sys_lib_dlsearch_path " in | ||
48 | + *" $libdir "*) ;; | ||
49 | + *) eval flag=\"$hardcode_libdir_flag_spec\" | ||
50 | + rpath+=" $flag" | ||
51 | + ;; | ||
52 | + esac | ||
53 | fi | ||
54 | elif test -n "$runpath_var"; then | ||
55 | case "$perm_rpath " in | ||
56 | @@ -8841,8 +8853,14 @@ EOF | ||
57 | esac | ||
58 | fi | ||
59 | else | ||
60 | - eval flag=\"$hardcode_libdir_flag_spec\" | ||
61 | - func_append rpath " $flag" | ||
62 | + # We only want to hardcode in an rpath if it isn't in the | ||
63 | + # default dlsearch path. | ||
64 | + case " $sys_lib_dlsearch_path " in | ||
65 | + *" $libdir "*) ;; | ||
66 | + *) eval flag=\"$hardcode_libdir_flag_spec\" | ||
67 | + func_append rpath " $flag" | ||
68 | + ;; | ||
69 | + esac | ||
70 | fi | ||
71 | elif test -n "$runpath_var"; then | ||
72 | case "$finalize_perm_rpath " in | ||
73 | diff --git a/ltmain.sh b/ltmain.sh | ||
74 | index 683317c..860a16a 100644 | ||
75 | --- a/ltmain.sh | ||
76 | +++ b/ltmain.sh | ||
77 | @@ -8055,8 +8055,10 @@ EOF | ||
78 | else | ||
79 | # We only want to hardcode in an rpath if it isn't in the | ||
80 | # default dlsearch path. | ||
81 | + func_normal_abspath "$libdir" | ||
82 | + libdir_norm=$func_normal_abspath_result | ||
83 | case " $sys_lib_dlsearch_path " in | ||
84 | - *" $libdir "*) ;; | ||
85 | + *" $libdir_norm "*) ;; | ||
86 | *) eval flag=\"$hardcode_libdir_flag_spec\" | ||
87 | func_append dep_rpath " $flag" | ||
88 | ;; | ||
89 | @@ -8798,8 +8800,10 @@ EOF | ||
90 | else | ||
91 | # We only want to hardcode in an rpath if it isn't in the | ||
92 | # default dlsearch path. | ||
93 | + func_normal_abspath "$libdir" | ||
94 | + libdir_norm=$func_normal_abspath_result | ||
95 | case " $sys_lib_dlsearch_path " in | ||
96 | - *" $libdir "*) ;; | ||
97 | + *" $libdir_norm "*) ;; | ||
98 | *) eval flag=\"$hardcode_libdir_flag_spec\" | ||
99 | rpath+=" $flag" | ||
100 | ;; | ||