On 25 Oct 2021 15:33, Richard Purdie wrote: > 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.
add a bit more detail to the commit message, add the changelog, and fix the typo in the subject line ("RATHS"). > --- 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 this is a non-trivial amount of boiler plate that you're pasting in here. can we introduce a func to make this more readable ? something like this untested code. # func_is_in_list <ELEMENT> <LIST> [separator] # blah blah blah func_is_in_list () { case "${3:- }$2${3:- }" in *"${3:- }$1${3:- }"*) return 0;; esac return 1 } then you could write: func_normal_abspath "$libdir" if ! func_is_in_list "$func_normal_abspath_result" "$sys_lib_dlsearch_path"; then eval flag=\"$hardcode_libdir_flag_spec\" func_append dep_rpath " $flag" fi and there's 2 other places where $sys_lib_dlsearch_path is checked that could be converted over to this helper. -mike
signature.asc
Description: PGP signature