From 1d50dfe6025126c38b1d23815360bd48e9e8c24c Mon Sep 17 00:00:00 2001 From: Colin Guthrie Date: Sat, 2 Nov 2013 11:26:30 +0000 Subject: [PATCH] dracut-functions.sh: Avoid loading unnecessary 32-bit libraries for 64-bit initrds Due to the 'inst_libdir_file "libnss_files*"' in the udev-rules module this caues the /usr/lib/libnss_files-2.18.so* to be included. This is a 32-bit library and pulls in a 32-bit version of glibc also even on a 64-bit system. This is due to the fact that ldconfig -pN will print [/usr]/lib paths from the cache as well as [/usr]/lib64. As we handle these paths specifically we should ignore these results from the cache. Also there was a missing space when appending the ldconfig paths onto our list meaning the last builtin and first ldconfig path were unusable. --- dracut-functions.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/dracut-functions.sh b/dracut-functions.sh index 38095ba..2872516 100755 --- a/dracut-functions.sh +++ b/dracut-functions.sh @@ -65,6 +65,7 @@ ldconfig_paths() printf "%s\n" ${d%/*}; done ); do + [[ "$i" = "/lib" || "$i" = "/usr/lib" || "$i" = "/lib64" || "$i" = "/usr/lib64" ]] && continue a["$i"]=1; done; printf "%s\n" ${!a[@]} @@ -81,7 +82,7 @@ if ! [[ $libdirs ]] ; then [[ -d /usr/lib ]] && libdirs+=" /usr/lib" fi - libdirs+="$(ldconfig_paths)" + libdirs+=" $(ldconfig_paths)" export libdirs fi