commit:     74bdd9e7cc01112a7bdacc82730f6492113e37f6
Author:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
AuthorDate: Sat Sep  5 18:06:28 2020 +0000
Commit:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
CommitDate: Sat Sep  5 18:06:28 2020 +0000
URL:        https://gitweb.gentoo.org/proj/gcc-config.git/commit/?id=74bdd9e7

gcc-config: maintain ABI ordering for LDPATH

Before the change we ordered paths in reverse order
for both gcc versions and ABI lists:

    $ cat /etc/ld.so.conf.d/05gcc-x86_64-pc-linux-gnu.conf
    /usr/lib/gcc/x86_64-pc-linux-gnu/11.0.0/32
    /usr/lib/gcc/x86_64-pc-linux-gnu/11.0.0
    /usr/lib/gcc/x86_64-pc-linux-gnu/10.2.0/32
    /usr/lib/gcc/x86_64-pc-linux-gnu/10.2.0

After the change we preserved ABI ordering
and use reverse gcc version ordering:

    $ cat /etc/ld.so.conf.d/05gcc-x86_64-pc-linux-gnu.conf
    /usr/lib/gcc/x86_64-pc-linux-gnu/11.0.0
    /usr/lib/gcc/x86_64-pc-linux-gnu/11.0.0/32
    /usr/lib/gcc/x86_64-pc-linux-gnu/10.2.0
    /usr/lib/gcc/x86_64-pc-linux-gnu/10.2.0/32

In theory both should work. I practice some systems (like
riscv today) do not distinct between some ABIs. Let's
list valid ABI first to keep such systems running.

Signed-off-by: Sergei Trofimovich <slyfox <AT> gentoo.org>

 gcc-config | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gcc-config b/gcc-config
index dee6f98..615e43b 100755
--- a/gcc-config
+++ b/gcc-config
@@ -720,7 +720,7 @@ switch_profile() {
                local MY_LDPATH
                MY_LDPATH=$(${SED} -n \
                        -e '/^LDPATH=/{s|LDPATH=||;s|"||g;s|:|\n|g;p}' \
-                       $(version_sorted_paths "${GCC_ENV_D}"/${CHOST}-*) | tac
+                       $(version_sorted_paths "${GCC_ENV_D}"/${CHOST}-* | tac)
                )
 
                # Pass all by default

Reply via email to