History

asmlinkage, module: Make ksymtab and kcrctab symbols and __this_module __visible

Make the ksymtab symbols for EXPORT_SYMBOL visible. This prevents the LTO compiler from adding a .NUMBER prefix, which avoids various problems in later export processing.

Andi Kleen committed 13 years ago

Commit e0f244c1 parent eb3057d2 files · +3 −3Browse files

Unified · Split

2 files
  1. include/linux/export.h +2 −2
  2. scripts/mod/modpost.c +1 −1
include/linux/export.h+2−2
@@ -43,7 +43,7 @@ extern struct module __this_module; · 42 unmodified lines
4343 /* Mark the CRC weak since genksyms apparently decides not to
4444 * generate a checksums for some symbols */
4545 #define __CRC_SYMBOL(sym, sec) \
46− extern void *__crc_##sym __attribute__((weak)); \
46+ extern __visible void *__crc_##sym __attribute__((weak)); \
4747 static const unsigned long __kcrctab_##sym \
4848 __used \
4949 __attribute__((section("___kcrctab" sec "+" #sym), unused)) \
@@ -59,7 +59,7 @@ extern struct module __this_module; · 9 unmodified lines
5959 static const char __kstrtab_##sym[] \
6060 __attribute__((section("__ksymtab_strings"), aligned(1))) \
6161 = VMLINUX_SYMBOL_STR(sym); \
62− static const struct kernel_symbol __ksymtab_##sym \
62+ __visible const struct kernel_symbol __ksymtab_##sym \
6363 __used \
6464 __attribute__((section("___ksymtab" sec "+" #sym), unused)) \
6565 = { (unsigned long)&sym, __kstrtab_##sym }
scripts/mod/modpost.c+1−1
@@ -1861,7 +1861,7 @@ static void add_header(struct buffer *b, struct module *mod) · 1860 unmodified lines
18611861 buf_printf(b, "\n");
18621862 buf_printf(b, "MODULE_INFO(vermagic, VERMAGIC_STRING);\n");
18631863 buf_printf(b, "\n");
1864− buf_printf(b, "struct module __this_module\n");
1864+ buf_printf(b, "__visible struct module __this_module\n");
18651865 buf_printf(b, "__attribute__((section(\".gnu.linkonce.this_module\"))) = {\n");
18661866 buf_printf(b, "\t.name = KBUILD_MODNAME,\n");
18671867 if (mod->has_init)

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t