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
|