diff options
| author | Dmitry Torokhov <dmitry.torokhov@gmail.com> | 2025-04-04 23:04:35 -0700 |
|---|---|---|
| committer | Dmitry Torokhov <dmitry.torokhov@gmail.com> | 2025-04-04 23:04:35 -0700 |
| commit | 946661e3bef8efa11ba8079d4ebafe6fc3b0aaad (patch) | |
| tree | a90605abb7bb65503a2d3f93a79e19a01aaa5e89 /include/linux/export.h | |
| parent | fd10709e28d2fa9015667aee56d92099fc97aa0d (diff) | |
| parent | 4d395cb071a343196ca524d3694790f06978fe91 (diff) | |
| download | lwn-946661e3bef8efa11ba8079d4ebafe6fc3b0aaad.tar.gz lwn-946661e3bef8efa11ba8079d4ebafe6fc3b0aaad.zip | |
Merge branch 'next' into for-linus
Prepare input updates for 6.15 merge window.
Diffstat (limited to 'include/linux/export.h')
| -rw-r--r-- | include/linux/export.h | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/include/linux/export.h b/include/linux/export.h index 2633df4d31e6..a8c23d945634 100644 --- a/include/linux/export.h +++ b/include/linux/export.h @@ -52,9 +52,24 @@ #else +#ifdef CONFIG_GENDWARFKSYMS +/* + * With CONFIG_GENDWARFKSYMS, ensure the compiler emits debugging + * information for all exported symbols, including those defined in + * different TUs, by adding a __gendwarfksyms_ptr_<symbol> pointer + * that's discarded during the final link. + */ +#define __GENDWARFKSYMS_EXPORT(sym) \ + static typeof(sym) *__gendwarfksyms_ptr_##sym __used \ + __section(".discard.gendwarfksyms") = &sym; +#else +#define __GENDWARFKSYMS_EXPORT(sym) +#endif + #define __EXPORT_SYMBOL(sym, license, ns) \ extern typeof(sym) sym; \ __ADDRESSABLE(sym) \ + __GENDWARFKSYMS_EXPORT(sym) \ asm(__stringify(___EXPORT_SYMBOL(sym, license, ns))) #endif |
