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}'!"
 

Reply via email to