summaryrefslogtreecommitdiff
path: root/kernel
diff options
context:
space:
mode:
authorMasahiro Yamada <masahiroy@kernel.org>2024-06-10 20:25:17 +0900
committerMasahiro Yamada <masahiroy@kernel.org>2024-07-16 01:08:36 +0900
commitc442db3f49f27e5a60a641b2ac9a3c6320796ed6 (patch)
tree665aa0090b4e1c77ce6e2c2d1b89111c8a5a333e /kernel
parentddf41329839f49dadf26973cd845ea160ac1784d (diff)
downloadlwn-c442db3f49f27e5a60a641b2ac9a3c6320796ed6.tar.gz
lwn-c442db3f49f27e5a60a641b2ac9a3c6320796ed6.zip
kbuild: remove PROVIDE() for kallsyms symbols
This reimplements commit 951bcae6c5a0 ("kallsyms: Avoid weak references for kallsyms symbols") because I am not a big fan of PROVIDE(). As an alternative solution, this commit prepends one more kallsyms step. KSYMS .tmp_vmlinux.kallsyms0.S # added AS .tmp_vmlinux.kallsyms0.o # added LD .tmp_vmlinux.btf BTF .btf.vmlinux.bin.o LD .tmp_vmlinux.kallsyms1 NM .tmp_vmlinux.kallsyms1.syms KSYMS .tmp_vmlinux.kallsyms1.S AS .tmp_vmlinux.kallsyms1.o LD .tmp_vmlinux.kallsyms2 NM .tmp_vmlinux.kallsyms2.syms KSYMS .tmp_vmlinux.kallsyms2.S AS .tmp_vmlinux.kallsyms2.o LD vmlinux Step 0 takes /dev/null as input, and generates .tmp_vmlinux.kallsyms0.o, which has a valid kallsyms format with the empty symbol list, and can be linked to vmlinux. Since it is really small, the added compile-time cost is negligible. Signed-off-by: Masahiro Yamada <masahiroy@kernel.org> Acked-by: Ard Biesheuvel <ardb@kernel.org> Reviewed-by: Nicolas Schier <nicolas@fjasle.eu>
Diffstat (limited to 'kernel')
-rw-r--r--kernel/kallsyms_internal.h5
1 files changed, 0 insertions, 5 deletions
diff --git a/kernel/kallsyms_internal.h b/kernel/kallsyms_internal.h
index 85480274fc8f..925f2ab22639 100644
--- a/kernel/kallsyms_internal.h
+++ b/kernel/kallsyms_internal.h
@@ -4,11 +4,6 @@
#include <linux/types.h>
-/*
- * These will be re-linked against their real values during the second link
- * stage. Preliminary values must be provided in the linker script using the
- * PROVIDE() directive so that the first link stage can complete successfully.
- */
extern const unsigned long kallsyms_addresses[];
extern const int kallsyms_offsets[];
extern const u8 kallsyms_names[];