40 lines
1.4 KiB
Diff
40 lines
1.4 KiB
Diff
From e6a5f02038954ede223cc75901386acf43ec4264 Mon Sep 17 00:00:00 2001
|
|
From: Alexander Tsoy <alexander@tsoy.me>
|
|
Date: Mon, 9 Mar 2020 02:47:07 +0300
|
|
Subject: [PATCH] Remove redundant gcc paths in ldconfig_paths()
|
|
|
|
Bug: https://bugs.gentoo.org/705728
|
|
---
|
|
dracut-functions.sh | 15 ++++++++++++++-
|
|
1 file changed, 14 insertions(+), 1 deletion(-)
|
|
|
|
diff --git a/dracut-functions.sh b/dracut-functions.sh
|
|
index 5206bd21..a119fb15 100755
|
|
--- a/dracut-functions.sh
|
|
+++ b/dracut-functions.sh
|
|
@@ -81,7 +81,20 @@ find_binary() {
|
|
}
|
|
|
|
ldconfig_paths() {
|
|
- $DRACUT_LDCONFIG ${dracutsysrootdir:+-r ${dracutsysrootdir} -f /etc/ld.so.conf} -pN 2> /dev/null | grep -E -v '/(lib|lib64|usr/lib|usr/lib64)/[^/]*$' | sed -n 's,.* => \(.*\)/.*,\1,p' | sort | uniq
|
|
+ local gccpath
|
|
+
|
|
+ if type -P gcc-config &>/dev/null; then
|
|
+ gccpath=$(gcc-config -c)
|
|
+ gccpath=/usr/lib/gcc/${gccpath%-*}/${gccpath##*-}
|
|
+ fi
|
|
+
|
|
+ while read -r line; do
|
|
+ if [[ ${line} != /usr/lib/gcc/* || -z ${gccpath} ]]; then
|
|
+ echo ${line}
|
|
+ elif [[ ${line} == ${gccpath} ]]; then
|
|
+ echo ${line}
|
|
+ fi
|
|
+ done < <($DRACUT_LDCONFIG ${dracutsysrootdir:+-r ${dracutsysrootdir} -f /etc/ld.so.conf} -pN 2>/dev/null | grep -E -v '/(lib|lib64|usr/lib|usr/lib64)/[^/]*$' | sed -n 's,.* => \(.*\)/.*,\1,p' | sort | uniq)
|
|
}
|
|
|
|
# Version comparision function. Assumes Linux style version scheme.
|
|
--
|
|
2.32.0
|
|
|