Merge pull request #24178 from mrc0mmand/libgcc_s

test: install libgcc_s.so.1 explicitly if available
This commit is contained in:
Frantisek Sumsal
2022-08-03 07:22:19 +00:00
committed by GitHub
2 changed files with 9 additions and 11 deletions

View File

@@ -20,11 +20,6 @@ test_append_files() {
install_dmevent
generate_module_dependencies
inst_binary tpm2_pcrextend
# On Ubuntu, cryptsetup does not link against libgcc_s.so.1
if get_bool "$LOOKS_LIKE_DEBIAN"; then
inst_library "/lib/$(dpkg-architecture -qDEB_HOST_MULTIARCH)/libgcc_s.so.1"
fi
}
TEST_70_TPM_DEVICE="tpm-tis"

View File

@@ -967,12 +967,6 @@ install_multipath() {
# Install the library itself and create necessary symlinks
inst_library "$file"
done < <(find /lib*/multipath -type f)
if get_bool "$LOOKS_LIKE_ARCH"; then
# On Arch the multipath libraries are not linked against libgcc_s.so.1,
# but it's still required at runtime
inst_library "/lib64/libgcc_s.so.1"
fi
}
install_lvm() {
@@ -1227,6 +1221,14 @@ install_missing_libraries() {
LD_LIBRARY_PATH="${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}$(get_ldpath "$i")" inst_libs "$i"
done
# Install libgcc_s.so if available, since it's dlopen()ed by libpthread
# and might cause unexpected failures during pthread_exit()/pthread_cancel()
# if not present
# See: https://github.com/systemd/systemd/pull/23858
while read -r libgcc_s; do
[[ -e "$libgcc_s" ]] && inst_library "$libgcc_s"
done < <(ldconfig -p | awk '/\/libgcc_s.so.1$/ { print $4 }')
local lib path
# A number of dependencies is now optional via dlopen, so the install
# script will not pick them up, since it looks at linkage.
@@ -2427,6 +2429,7 @@ inst_library() {
inst_simple "$reallib" "$reallib"
inst_dir "${dest%/*}"
[[ -d "${dest%/*}" ]] && dest="$(readlink -f "${dest%/*}")/${dest##*/}"
ddebug "Creating symlink $reallib -> $dest"
ln -sfn -- "$(convert_abs_rel "${dest}" "${reallib}")" "${initdir}/${dest}"
else
inst_simple "$src" "$dest"