kernel-build: fix STRIP_KERNEL_EXPORTS for 64-bit kernels
authorRui Salvaterra <rsalvaterra@gmail.com>
Wed, 30 Dec 2020 20:04:42 +0000 (20:04 +0000)
committerHauke Mehrtens <hauke@hauke-m.de>
Fri, 1 Jan 2021 18:55:59 +0000 (19:55 +0100)
While parsing the nm output, we need to account for the fact that 64-bit kernels
have 64-bit wide addresses. While at it, replace the grep | sed combo with a
single awk invocation and a stronger regex.

Fixes: 2ef0acc5fcda557fa5aaad35d27cb8cf75be96d2 "kernel-build: fix
STRIP_KERNEL_EXPORTS for recent kernels"

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
include/kernel-build.mk

index 22f7c4c7c7e6b04a9012c389debd0c1f6636f293..6123c9d45676b50e0a79e9d08529be79df53422a 100644 (file)
@@ -105,7 +105,7 @@ define BuildKernel
                xargs $(TARGET_CROSS)nm | \
                awk '$$$$1 == "U" { print $$$$2 } ' | \
                sort -u > $(KERNEL_BUILD_DIR)/mod_symtab.txt
-       $(TARGET_CROSS)nm -n $(LINUX_DIR)/vmlinux.o | grep ' [rR] __ksymtab' | sed -e 's,........ [rR] __ksymtab_,,' > $(KERNEL_BUILD_DIR)/kernel_symtab.txt
+       $(TARGET_CROSS)nm -n $(LINUX_DIR)/vmlinux.o | awk '/^[0-9a-f]+ [rR] __ksymtab_/ {print substr($$$$3,11)}' > $(KERNEL_BUILD_DIR)/kernel_symtab.txt
        grep -Ff $(KERNEL_BUILD_DIR)/mod_symtab.txt $(KERNEL_BUILD_DIR)/kernel_symtab.txt > $(KERNEL_BUILD_DIR)/sym_include.txt
        grep -Fvf $(KERNEL_BUILD_DIR)/mod_symtab.txt $(KERNEL_BUILD_DIR)/kernel_symtab.txt > $(KERNEL_BUILD_DIR)/sym_exclude.txt
        ( \