[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v2 04/12] ltmain.in: Don't encode RATHS which match default linke
From: |
Sam James |
Subject: |
[PATCH v2 04/12] ltmain.in: Don't encode RATHS which match default linker paths |
Date: |
Sat, 16 Apr 2022 18:58:17 +0100 |
From: Richard Purdie <richard.purdie@linuxfoundation.org>
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 bc0a3950..a4175d99 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.35.1
- [PATCH v2 00/12] Rebased version of Yocto patches, Sam James, 2022/04/16
- [PATCH v2 02/12] ltmain.in: Handle trailing slashes on install commands correctly, Sam James, 2022/04/16
- [PATCH v2 04/12] ltmain.in: Don't encode RATHS which match default linker paths,
Sam James <=
- [PATCH v2 03/12] libtool.m4: For reproducibility stop encoding hostname in libtool script, Sam James, 2022/04/16
- [PATCH v2 05/12] libtool.m4: Rename the --with-sysroot option to avoid conflict with gcc/binutils, Sam James, 2022/04/16
- [PATCH v2 07/12] libtool: Check for static libs for internal compiler libraries, Sam James, 2022/04/16
- [PATCH v2 11/12] Makefile.am: make sure autoheader run before automake, Sam James, 2022/04/16
- [PATCH v2 06/12] Makefile.am: make sure autoheader run before autoconf, Sam James, 2022/04/16
- [PATCH v2 12/12] libtool: Fix support for NIOS2 processor, Sam James, 2022/04/16
- [PATCH v2 08/12] ltmain.in: Add missing sysroot to library path, Sam James, 2022/04/16
- [PATCH v2 10/12] ltmain.in: Handle prefix-map compiler options correctly, Sam James, 2022/04/16
- [PATCH v2 09/12] libtool.m4: Handle "/" as a sysroot correctly, Sam James, 2022/04/16