diff options
Diffstat (limited to 'mkinitcpio')
-rwxr-xr-x | mkinitcpio | 20 |
1 files changed, 19 insertions, 1 deletions
@@ -14,6 +14,7 @@ shopt -s extglob # Settings KERNELVERSION=$(uname -r) +CARCH=$(uname -m) FUNCTIONS=functions CONFIG=mkinitcpio.conf HOOKDIR=hooks @@ -21,7 +22,7 @@ INSTDIR=install PRESETDIR=mkinitcpio.d COMPRESSION=gzip -declare TMPDIR BASEDIR MODULE_FILE GENIMG PRESET COMPRESSION_OPTIONS BUILDROOT +declare TMPDIR BASEDIR MODULE_FILE GENIMG PRESET COMPRESSION_OPTIONS BUILDROOT LD_SO declare NC= BOLD= BLUE= GREEN= RED= YELLOW= declare -i QUIET=1 SHOW_AUTOMODS=0 SAVELIST=0 COLOR=1 declare -a SKIPHOOKS ADDED_MODULES @@ -285,6 +286,23 @@ trap '[[ $FUNCNAME = parse_hook ]] && (( ++builderrors ))' ERR #parse 'global' hook, as defined in ${CONFIG} parse_hook +# resolve the linker and add it +case $CARCH in + i686) LD_SO=("$BASEDIR"/lib/ld-linux.so.?*) ;; + x86_64) LD_SO=("$BASEDIR"/lib/ld-linux-${CARCH//_/-}.so.?*) ;; + *) die "unknown architecture: $CARCH" ;; +esac + +if (( ${#LD_SO[*]} != 1 )); then # uh oh... + die "failed to resolve the location of /lib/ld.so. Please report this bug." +fi + +resolved=$(readlink -e "$LD_SO") +_add_dir "${resolved%/*}" 755 +_add_symlink "${LD_SO#$BASEDIR}" "${resolved#$BASEDIR}" +_add_file "${resolved#$BASEDIR}" "${resolved#$BASEDIR}" 755 +unset resolved + for hook in ${HOOKS}; do in_array "$hook" "${SKIPHOOKS[@]}" && continue unset MODULES BINARIES FILES SCRIPT |