1From d71c715554a054c534954b0aa357ca699ed68430 Mon Sep 17 00:00:00 2001
2From: Ross Burton <ross.burton@intel.com>
3Date: Mon, 6 Mar 2017 23:33:27 -0800
4Subject: [PATCH] sync with OE libtool changes
5
6Apply these patches from our libtool patches as not only are redundant RPATHs a
7waste of space but they can cause incorrect linking when native packages are
8restored from sstate.
9
10fix-rpath.patch:
11We don't want to add RPATHS which match default linker
12search paths, they're a waste of space. This patch
13filters libtools list and removes the ones we don't need.
14
15norm-rpath.patch:
16Libtool may be passed link paths of the form "/usr/lib/../lib", which
17fool its detection code into thinking it should be included as an
18RPATH in the generated binary.  Normalize before comparision.
19
20Upstream-Status: Inappropriate
21
22Signed-off-by: Ross Burton <ross.burton@intel.com>
23Signed-off-by: Khem Raj <raj.khem@gmail.com>
24---
25 ltmain.sh | 34 ++++++++++++++++++++++++++++------
26 1 file changed, 28 insertions(+), 6 deletions(-)
27
28diff --git a/ltmain.sh b/ltmain.sh
29index 11ee684cccf..3b19ac15328 100644
30--- a/ltmain.sh
31+++ b/ltmain.sh
32@@ -8053,8 +8053,16 @@ EOF
33 		  esac
34 		fi
35 	      else
36-		eval flag=\"$hardcode_libdir_flag_spec\"
37-		func_append dep_rpath " $flag"
38+                # We only want to hardcode in an rpath if it isn't in the
39+                # default dlsearch path.
40+                func_normal_abspath "$libdir"
41+                libdir_norm=$func_normal_abspath_result
42+	        case " $sys_lib_dlsearch_path " in
43+	        *" $libdir_norm "*) ;;
44+	        *) eval flag=\"$hardcode_libdir_flag_spec\"
45+                   func_append dep_rpath " $flag"
46+                   ;;
47+	        esac
48 	      fi
49 	    elif test -n "$runpath_var"; then
50 	      case "$perm_rpath " in
51@@ -8790,8 +8798,16 @@ EOF
52 	      esac
53 	    fi
54 	  else
55-	    eval flag=\"$hardcode_libdir_flag_spec\"
56-	    func_append rpath " $flag"
57+            # We only want to hardcode in an rpath if it isn't in the
58+            # default dlsearch path.
59+            func_normal_abspath "$libdir"
60+            libdir_norm=$func_normal_abspath_result
61+	    case " $sys_lib_dlsearch_path " in
62+	    *" $libdir_norm "*) ;;
63+	    *) eval flag=\"$hardcode_libdir_flag_spec\"
64+               rpath+=" $flag"
65+               ;;
66+	    esac
67 	  fi
68 	elif test -n "$runpath_var"; then
69 	  case "$perm_rpath " in
70@@ -8841,8 +8857,14 @@ EOF
71 	      esac
72 	    fi
73 	  else
74-	    eval flag=\"$hardcode_libdir_flag_spec\"
75-	    func_append rpath " $flag"
76+            # We only want to hardcode in an rpath if it isn't in the
77+            # default dlsearch path.
78+	    case " $sys_lib_dlsearch_path " in
79+	    *" $libdir "*) ;;
80+	    *) eval flag=\"$hardcode_libdir_flag_spec\"
81+               func_append rpath " $flag"
82+               ;;
83+	    esac
84 	  fi
85 	elif test -n "$runpath_var"; then
86 	  case "$finalize_perm_rpath " in
87