bug#73620: libtool-2.5.3 broken on CentOS and Alma Linux
"Sergey Poznyakoff" <[email protected]> Wed, 09 Oct 2024 21:21:53 +0200
| Newsgroups | gmane.comp.gnu.libtool.bugs |
|---|---|
| Organization | GNU.org.ua |
| Message-ID | <[email protected]> |
Hello, Thanks a lot for CCing me. Ileana is absolutely right: the reason for this behavior is that some paths are excluded from compile_rpath in func_mode_link. The original idea was to prevent paths from outside of the source tree from appearing before ones lying beneath it. However, simply omitting such paths was not right, they should be reordered instead. The attached patch fixes this. With it, both bug_71489.at in libtool, and all tests in gettext pass. Regards, Sergey
0001-Don-t-omit-directories-from-the-constructed-rpath.patch
(text/x-diff, 1.9 KB)
From 1b5a235b47f61ba1adb331db7f084630ac110f5b Mon Sep 17 00:00:00 2001 From: Sergey Poznyakoff <[email protected]> Date: Wed, 9 Oct 2024 21:34:01 +0300 Subject: [PATCH] Don't omit directories from the constructed rpath. This fixes bug introduced by 0e1b333324. * build-aux/ltmain.in: Don't omit paths that are not under $progdir from the compiled_rpath. Append them to the end of it. --- build-aux/ltmain.in | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/build-aux/ltmain.in b/build-aux/ltmain.in index 68aca605..2c486fa7 100644 --- a/build-aux/ltmain.in +++ b/build-aux/ltmain.in @@ -4632,6 +4632,7 @@ func_mode_link () finalize_command=$nonopt compile_rpath= + compile_rpath_tail= finalize_rpath= compile_shlibpath= finalize_shlibpath= @@ -6273,10 +6274,11 @@ func_mode_link () case " $sys_lib_dlsearch_path " in *" $absdir "*) ;; *) - case "$compile_rpath " in + case "$compile_rpath$compile_rpath_tail " in *" $absdir "*) ;; *) case $absdir in "$progdir/"*) func_append compile_rpath " $absdir" ;; + *) func_append compile_rpath_tail " $absdir" ;; esac esac ;; @@ -6349,10 +6351,11 @@ func_mode_link () case " $sys_lib_dlsearch_path " in *" $absdir "*) ;; *) - case "$compile_rpath " in + case "$compile_rpath$compile_rpath_tail " in *" $absdir "*) ;; *) case $absdir in "$progdir/"*) func_append compile_rpath " $absdir" ;; + *) func_append compile_rpath_tail " $absdir" ;; esac esac ;; @@ -6716,6 +6719,8 @@ func_mode_link () done # for deplib in $libs func_append temp_rpath "$temp_rpath_tail" + func_append compile_rpath "$compile_rpath_tail" + if test link = "$pass"; then if test prog = "$linkmode"; then compile_deplibs="$new_inherited_linker_flags $compile_deplibs" -- 2.35.1