Harald Hoyer 460d2c
From de3cb0e3214c3fbab3a94e705445b4d1c2bf0dff Mon Sep 17 00:00:00 2001
Harald Hoyer 460d2c
From: Kairui Song <kasong@redhat.com>
Harald Hoyer 460d2c
Date: Tue, 9 Jun 2020 03:03:18 +0800
Harald Hoyer 460d2c
Subject: [PATCH] dracut.sh: Move the library workaround after squash
Harald Hoyer 460d2c
Harald Hoyer 460d2c
Ensure the workaround is also valid when dracut-squash module is used
Harald Hoyer 460d2c
Harald Hoyer 460d2c
Signed-off-by: Kairui Song <kasong@redhat.com>
Harald Hoyer 460d2c
---
Harald Hoyer 460d2c
 dracut.sh | 20 +++++++++++---------
Harald Hoyer 460d2c
 1 file changed, 11 insertions(+), 9 deletions(-)
Harald Hoyer 460d2c
Harald Hoyer 460d2c
diff --git a/dracut.sh b/dracut.sh
Harald Hoyer 460d2c
index 81c6d654..9ee722c9 100755
Harald Hoyer 460d2c
--- a/dracut.sh
Harald Hoyer 460d2c
+++ b/dracut.sh
Harald Hoyer 460d2c
@@ -1661,15 +1661,6 @@ if [[ $kernel_only != yes ]]; then
Harald Hoyer 460d2c
     # Now we are done with lazy resolving, always install dependencies
Harald Hoyer 460d2c
     unset DRACUT_RESOLVE_LAZY
Harald Hoyer 460d2c
     export DRACUT_RESOLVE_DEPS=1
Harald Hoyer 460d2c
-
Harald Hoyer 460d2c
-    # libpthread workaround: pthread_cancel wants to dlopen libgcc_s.so
Harald Hoyer 460d2c
-    for _dir in $libdirs; do
Harald Hoyer 460d2c
-        for _f in "$dracutsysrootdir$_dir/libpthread.so"*; do
Harald Hoyer 460d2c
-            [[ -e "$_f" ]] || continue
Harald Hoyer 460d2c
-            inst_libdir_file "libgcc_s.so*"
Harald Hoyer 460d2c
-            break 2
Harald Hoyer 460d2c
-        done
Harald Hoyer 460d2c
-    done
Harald Hoyer 460d2c
 fi
Harald Hoyer 460d2c
 
Harald Hoyer 460d2c
 for ((i=0; i < ${#include_src[@]}; i++)); do
Harald Hoyer 460d2c
@@ -1941,6 +1932,17 @@ if dracut_module_included "squash"; then
Harald Hoyer 460d2c
     done
Harald Hoyer 460d2c
 fi
Harald Hoyer 460d2c
 
Harald Hoyer 460d2c
+if [[ $kernel_only != yes ]]; then
Harald Hoyer 460d2c
+    # libpthread workaround: pthread_cancel wants to dlopen libgcc_s.so
Harald Hoyer 460d2c
+    for _dir in $libdirs; do
Harald Hoyer 460d2c
+        for _f in "$dracutsysrootdir$_dir/libpthread.so"*; do
Harald Hoyer 460d2c
+            [[ -e "$_f" ]] || continue
Harald Hoyer 460d2c
+            inst_libdir_file "libgcc_s.so*"
Harald Hoyer 460d2c
+            break 2
Harald Hoyer 460d2c
+        done
Harald Hoyer 460d2c
+    done
Harald Hoyer 460d2c
+fi
Harald Hoyer 460d2c
+
Harald Hoyer 460d2c
 if [[ $do_strip = yes ]] && ! [[ $DRACUT_FIPS_MODE ]]; then
Harald Hoyer 460d2c
     dinfo "*** Stripping files ***"
Harald Hoyer 460d2c
     find "$initdir" -type f \
Harald Hoyer 460d2c