Message ID | 20240415162041.2491523-7-ardb+git@google.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | kbuild: Avoid weak external linkage where possible | expand |
On Tue, Apr 16, 2024 at 1:20 AM Ard Biesheuvel <ardb+git@google.com> wrote: > > From: Ard Biesheuvel <ardb@kernel.org> > > 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> Applied to linux-kbuild. Thanks. > --- > kernel/ksysfs.c | 4 ++-- > lib/buildid.c | 4 ++-- > 2 files changed, 4 insertions(+), 4 deletions(-) > > diff --git a/kernel/ksysfs.c b/kernel/ksysfs.c > index 495b69a71a5d..07fb5987b42b 100644 > --- a/kernel/ksysfs.c > +++ b/kernel/ksysfs.c > @@ -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, > diff --git a/lib/buildid.c b/lib/buildid.c > index 898301b49eb6..7954dd92e36c 100644 > --- a/lib/buildid.c > +++ b/lib/buildid.c > @@ -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); > -- > 2.44.0.683.g7961c838ac-goog > >
diff --git a/kernel/ksysfs.c b/kernel/ksysfs.c index 495b69a71a5d..07fb5987b42b 100644 --- a/kernel/ksysfs.c +++ b/kernel/ksysfs.c @@ -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, diff --git a/lib/buildid.c b/lib/buildid.c index 898301b49eb6..7954dd92e36c 100644 --- a/lib/buildid.c +++ b/lib/buildid.c @@ -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);