commit: 6b5eb0fe52a49b1aa050f4b9f2e46b03f5c2940c
Author: Richard Yao <ryao <AT> gentoo <DOT> org>
AuthorDate: Wed Aug 17 14:46:35 2016 +0000
Commit: Richard Yao <ryao <AT> gentoo <DOT> org>
CommitDate: Wed Aug 17 15:39:24 2016 +0000
URL: https://gitweb.gentoo.org/proj/genkernel.git/commit/?id=6b5eb0fe
Include libgcc_s.so.1 with ZFS support
The resumable send/recv work added an indirect dependency on
libgcc_s.so.1, which libpthread opens via dlopen for _Unwind_Resume().
If we do not include it, we will see:
libgcc_s.so.1 must be installed for pthread_cancel to work
Lets include it for now. We make an effort to include only 1 version.
This might not work on all architectures, but for lack of ability to
test, it will need to do for now. It also will use gcc-config if it is
avaliable.
This also enables functions in zdb that previously did not work due to
the same issue.
Original-patch-by: Jason Zaman <perfinion <AT> gentoo.org>
Signed-off-by: Richard Yao <ryao <AT> gentoo.org>
gen_initramfs.sh | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/gen_initramfs.sh b/gen_initramfs.sh
index 1fd5d2a..ea4a771 100755
--- a/gen_initramfs.sh
+++ b/gen_initramfs.sh
@@ -491,7 +491,14 @@ append_zfs(){
done
# Copy binaries
- copy_binaries "${TEMP}/initramfs-zfs-temp"
/sbin/{mount.zfs,zdb,zfs,zpool}
+ # Include libgcc_s.so.1 to workaround zfsonlinux/zfs#4749
+ if type gcc-config 2>&1 1>/dev/null; then
+ copy_binaries "${TEMP}/initramfs-zfs-temp"
/sbin/{mount.zfs,zdb,zfs,zpool} \
+ "/usr/lib/gcc/$(s=$(gcc-config -c); echo
${s%-*}/${s##*-})/libgcc_s.so.1"
+ else
+ copy_binaries "${TEMP}/initramfs-zfs-temp"
/sbin/{mount.zfs,zdb,zfs,zpool} \
+ /usr/lib/gcc/*/*/libgcc_s.so.1
+ fi
cd "${TEMP}/initramfs-zfs-temp/"
log_future_cpio_content