diff options
-rwxr-xr-x | extra/scripts/install_kernel_headers.sh | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/extra/scripts/install_kernel_headers.sh b/extra/scripts/install_kernel_headers.sh index b529a4d72..7e86eb850 100755 --- a/extra/scripts/install_kernel_headers.sh +++ b/extra/scripts/install_kernel_headers.sh @@ -45,17 +45,21 @@ if test "`(cd "$KERNEL_HEADERS"; env pwd)`" != "`(cd "$2"; env pwd)`"; then # and for all we know, good reasons. # We must work correctly in these cases. This includes "do not replace # target symlink with real directory" rule. So, no rm -rf here please. - mkdir -p "$2/asm" 2>/dev/null - mkdir -p "$2/asm-generic" 2>/dev/null - mkdir -p "$2/linux" 2>/dev/null + mkdir -p "$2/asm" 2>/dev/null + mkdir -p "$2/linux" 2>/dev/null # Exists, but is not a dir? That's bad, bail out - die_if_not_dir "$2/asm" "$2/asm-generic" "$2/linux" + die_if_not_dir "$2/asm" "$2/linux" # cp -HL creates regular destination files even if sources are symlinks. # This is intended. # (NB: you need busybox 1.11.x for this. earlier ones are slightly buggy) - cp -RHL "$KERNEL_HEADERS/asm"/* "$2/asm" || exit 1 - cp -RHL "$KERNEL_HEADERS/asm-generic"/* "$2/asm-generic" || exit 1 - cp -RHL "$KERNEL_HEADERS/linux"/* "$2/linux" || exit 1 + cp -RHL "$KERNEL_HEADERS/asm"/* "$2/asm" || exit 1 + cp -RHL "$KERNEL_HEADERS/linux"/* "$2/linux" || exit 1 + # Linux 2.4 doesn't have it + if test -d "$KERNEL_HEADERS/asm-generic"; then + mkdir -p "$2/asm-generic" 2>/dev/null + die_if_not_dir "$2/asm-generic" + cp -RHL "$KERNEL_HEADERS/asm-generic"/* "$2/asm-generic" || exit 1 + fi if ! test -f "$2/linux/version.h"; then echo "Warning: '$KERNEL_HEADERS/linux/version.h' is not found" echo "in kernel headers directory specified in .config." |