From: Richard Purdie 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 Upstream-Status: Submitted [https://lists.gnu.org/archive/html/libtool-patches/2021-10/msg00013.html] diff --git a/build-aux/ltmain.in b/build-aux/ltmain.in index 40cb94a..2fa055e 100644 --- a/build-aux/ltmain.in +++ b/build-aux/ltmain.in @@ -7700,8 +7700,16 @@ EOF 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 @@ -8434,8 +8442,16 @@ EOF 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 @@ -8489,8 +8505,14 @@ EOF 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 -- 2.25.1