[PATCH] kernel-build: fix STRIP_KERNEL_EXPORTS for 64-bit kernels
Hauke Mehrtens
hauke at hauke-m.de
Thu Dec 31 14:07:27 EST 2020
On 12/30/20 9:04 PM, Rui Salvaterra wrote:
> 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 at gmail.com>
> ---
> include/kernel-build.mk | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/include/kernel-build.mk b/include/kernel-build.mk
> index 22f7c4c7c7..6123c9d456 100644
> --- a/include/kernel-build.mk
> +++ b/include/kernel-build.mk
> @@ -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
> ( \
>
Hi,
On the ipq40xx target the results of both commands are different. The
original command removed the __ksymtab_ prefix, you do not remove it.
Original result:
----------------------------
hauke at hauke-t480:~/openwrt/openwrt$
./staging_dir/toolchain-arm_cortex-a7+neon-vfpv4_gcc-8.4.0_musl_eabi/bin/arm-openwrt-linux-nm
-n
build_dir/target-arm_cortex-a7+neon-vfpv4_musl_eabi/linux-ipq40xx_generic/linux-5.4.85/vmlinux.o
| grep ' [rR] __ksymtab' | sed -e 's,........ [rR] __ksymtab_,,' |sort
|head -5
__ablkcipher_walk_complete
ablkcipher_walk_done
ablkcipher_walk_phys
abort
abort_creds
----------------------------
Result with your change:
----------------------------
hauke at hauke-t480:~/openwrt/openwrt$
./staging_dir/toolchain-arm_cortex-a7+neon-vfpv4_gcc-8.4.0_musl_eabi/bin/arm-openwrt-linux-nm
-n
build_dir/target-arm_cortex-a7+neon-vfpv4_musl_eabi/linux-ipq40xx_generic/linux-5.4.85/vmlinux.o
| awk '/^[0-9a-f]+ [rR] __ksymtab_/ {print substr($$$$3,11)}' |sort |head -5
__ksymtab___ablkcipher_walk_complete
__ksymtab_ablkcipher_walk_done
__ksymtab_ablkcipher_walk_phys
__ksymtab_abort
__ksymtab_abort_creds
----------------------------
I build the kernel with this configuration:
hauke at hauke-t480:~/openwrt/openwrt$ ./scripts/diffconfig.sh
CONFIG_TARGET_ipq40xx=y
CONFIG_TARGET_ipq40xx_generic=y
CONFIG_TARGET_ipq40xx_generic_DEVICE_avm_fritzbox-7530=y
hauke at hauke-t480:~/openwrt/openwrt$
Hauke
-------------- next part --------------
A non-text attachment was scrubbed...
Name: OpenPGP_signature
Type: application/pgp-signature
Size: 488 bytes
Desc: OpenPGP digital signature
URL: <http://lists.openwrt.org/pipermail/openwrt-devel/attachments/20201231/192886be/attachment.sig>
More information about the openwrt-devel
mailing list