[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 05/12] ltmain.in: Don't encode RATHS which match default linker p
From: |
Richard Purdie |
Subject: |
[PATCH 05/12] ltmain.in: Don't encode RATHS which match default linker paths |
Date: |
Mon, 25 Oct 2021 15:33:30 +0100 |
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>
---
build-aux/ltmain.in | 34 ++++++++++++++++++++++++++++------
1 file changed, 28 insertions(+), 6 deletions(-)
diff --git a/build-aux/ltmain.in b/build-aux/ltmain.in
index 96238350..6fb58ed2 100644
--- a/build-aux/ltmain.in
+++ b/build-aux/ltmain.in
@@ -7672,8 +7672,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
@@ -8406,8 +8414,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
@@ -8461,8 +8477,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
- [PATCH 00/12] Yocto Project libtool patch queue, Richard Purdie, 2021/10/25
- [PATCH 04/12] ltmain.sh: Fix sysroot paths being encoded into RPATHs, Richard Purdie, 2021/10/25
- [PATCH 01/12] ltmain.in: Handle trailing slashes on install commands correctly, Richard Purdie, 2021/10/25
- [PATCH 12/12] libtool.m4: For reproducibility stop encoding hostname in libtool script, Richard Purdie, 2021/10/25
- [PATCH 05/12] ltmain.in: Don't encode RATHS which match default linker paths,
Richard Purdie <=
- [PATCH 02/12] libtool.m4: Rename the --with-sysroot option to avoid conflict with gcc/binutils, Richard Purdie, 2021/10/25
- [PATCH 09/12] Makefile.am: make sure autoheader run before autoconf, Richard Purdie, 2021/10/25
- [PATCH 08/12] libtool: Check for static libs for internal compiler libraries, Richard Purdie, 2021/10/25
- [PATCH 03/12] ltmain.in: Add missing sysroot to library path, Richard Purdie, 2021/10/25
- [PATCH 06/12] libtool.m4: Handle "/" as a sysroot correctly, Richard Purdie, 2021/10/25
- [PATCH 11/12] ltmain.in: Handle prefix-map compiler options correctly, Richard Purdie, 2021/10/25
- [PATCH 10/12] Makefile.am: make sure autoheader run before automake, Richard Purdie, 2021/10/25
- [PATCH 07/12] libtool: Fix support for NIOS2 processor, Richard Purdie, 2021/10/25