commit: 7d7d95509fcecd86476e705bc52fa147452139c3 Author: Thomas Deutschmann <whissi <AT> gentoo <DOT> org> AuthorDate: Fri Dec 13 20:56:40 2019 +0000 Commit: Thomas Deutschmann <whissi <AT> gentoo <DOT> org> CommitDate: Sat Dec 14 00:05:33 2019 +0000 URL: https://gitweb.gentoo.org/proj/genkernel.git/commit/?id=7d7d9550
gen_funcs.sh: get_chost_libdir(): Use libc.a to determine CHOST libdir libc.a is required for almost every package in initramfs whereas libnss_files.so isn't available in musl for example. Signed-off-by: Thomas Deutschmann <whissi <AT> gentoo.org> gen_funcs.sh | 7 +++++-- gen_initramfs.sh | 6 +++--- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/gen_funcs.sh b/gen_funcs.sh index f5dd0cd..32d367e 100755 --- a/gen_funcs.sh +++ b/gen_funcs.sh @@ -860,10 +860,13 @@ debug_breakpoint() { get_chost_libdir() { local cc=$(tc-getCC) - local test_file=$(${cc} -print-file-name=libnss_files.so 2>/dev/null) + local test_file=$(${cc} -print-file-name=libc.a 2>/dev/null) if [ -z "${test_file}" ] then - gen_die "$(get_useful_function_stack "${FUNCNAME}")Unable to determine CHOST's libdir: '${cc} -print-file-name=libnss_files.so' returned nothing!" + gen_die "$(get_useful_function_stack "${FUNCNAME}")Unable to determine CHOST's libdir: '${cc} -print-file-name=libc.a' returned nothing!" + elif [[ "${test_file}" == "libc.a" ]] + then + gen_die "$(get_useful_function_stack "${FUNCNAME}")Unable to determine CHOST's libdir: '${cc} -print-file-name=libc.a' returned no path!" fi local test_file_realpath=$(realpath "${test_file}" 2>/dev/null) diff --git a/gen_initramfs.sh b/gen_initramfs.sh index 6150cba..ab7b151 100755 --- a/gen_initramfs.sh +++ b/gen_initramfs.sh @@ -461,7 +461,7 @@ append_busybox() { # allow for DNS resolution local libdir=$(get_chost_libdir) mkdir -p "${TDIR}"/lib || gen_die "Failed to create '${TDIR}/lib'!" - copy_system_binaries "${TDIR}"/lib "${libdir}"/libnss_dns.so.2 + copy_system_binaries "${TDIR}"/lib "${libdir}"/libnss_dns.so log_future_cpio_content find . -print0 | "${CPIO_COMMAND}" ${CPIO_ARGS} --append -F "${CPIO_ARCHIVE}" \ @@ -955,7 +955,7 @@ append_linker() { mkdir -p "${TDIR}"/sbin || gen_die "Failed to create '${TDIR}/sbin'!" local libdir=$(get_chost_libdir) - copy_system_binaries "${TDIR}/sbin" "${libdir}/../sbin/ldconfig" + copy_system_binaries "${TDIR}/sbin" "${libdir}/../../sbin/ldconfig" else # Only copy /etc/ld.so.conf.d -- /etc/ld.so.conf was already # added to CPIO via append_base_layout() and because we only @@ -1323,7 +1323,7 @@ append_dropbear() { local libdir=$(get_chost_libdir) mkdir -p "${TDIR}"/lib || gen_die "Failed to create '${TDIR}/lib'!" - copy_system_binaries "${TDIR}"/lib "${libdir}"/libnss_files.so.2 + copy_system_binaries "${TDIR}"/lib "${libdir}"/libnss_files.so cd "${TDIR}" || gen_die "Failed to chdir to '${TDIR}'!"