vmlinux: Avoid weak reference to notes section
authorArd Biesheuvel <ardb@kernel.org>
Mon, 15 Apr 2024 16:20:44 +0000 (18:20 +0200)
committerMasahiro Yamada <masahiroy@kernel.org>
Thu, 2 May 2024 10:48:26 +0000 (19:48 +0900)
Weak references are references that are permitted to remain unsatisfied
in the final link. This means they cannot be implemented using place
relative relocations, resulting in GOT entries when using position
independent code generation.

The notes section should always exist, so the weak annotations can be
omitted.

Acked-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
kernel/ksysfs.c
lib/buildid.c

index 495b69a71a5d7d21b44cbf4b9a08ec4bd8388625..07fb5987b42bdfeb52a66a87954de0c7f0bc0c40 100644 (file)
@@ -228,8 +228,8 @@ KERNEL_ATTR_RW(rcu_normal);
 /*
  * Make /sys/kernel/notes give the raw contents of our kernel .notes section.
  */
-extern const void __start_notes __weak;
-extern const void __stop_notes __weak;
+extern const void __start_notes;
+extern const void __stop_notes;
 #define        notes_size (&__stop_notes - &__start_notes)
 
 static ssize_t notes_read(struct file *filp, struct kobject *kobj,
index 898301b49eb644ccddbb1fd71df22d66b2622198..7954dd92e36c0137775562c28caebfb1b5b88d10 100644 (file)
@@ -182,8 +182,8 @@ unsigned char vmlinux_build_id[BUILD_ID_SIZE_MAX] __ro_after_init;
  */
 void __init init_vmlinux_build_id(void)
 {
-       extern const void __start_notes __weak;
-       extern const void __stop_notes __weak;
+       extern const void __start_notes;
+       extern const void __stop_notes;
        unsigned int size = &__stop_notes - &__start_notes;
 
        build_id_parse_buf(&__start_notes, vmlinux_build_id, size);