Commit | Line | Data |
---|---|---|
405d967d TH |
1 | /* |
2 | * Common module linker script, always used when linking a module. | |
3 | * Archs are free to supply their own linker scripts. ld will | |
4 | * combine them automatically. | |
5 | */ | |
28aad1c2 ST |
6 | #ifdef CONFIG_CFI_CLANG |
7 | # include <asm/page.h> | |
8 | # define ALIGN_CFI ALIGN(PAGE_SIZE) | |
9 | # define SANITIZER_DISCARDS *(.eh_frame) | |
10 | #else | |
11 | # define ALIGN_CFI | |
12 | # define SANITIZER_DISCARDS | |
13 | #endif | |
14 | ||
405d967d | 15 | SECTIONS { |
e390f9a9 JP |
16 | /DISCARD/ : { |
17 | *(.discard) | |
18 | *(.discard.*) | |
28aad1c2 | 19 | SANITIZER_DISCARDS |
e390f9a9 | 20 | } |
f02e8a65 | 21 | |
5d8591bc RV |
22 | __ksymtab 0 : { *(SORT(___ksymtab+*)) } |
23 | __ksymtab_gpl 0 : { *(SORT(___ksymtab_gpl+*)) } | |
5d8591bc RV |
24 | __kcrctab 0 : { *(SORT(___kcrctab+*)) } |
25 | __kcrctab_gpl 0 : { *(SORT(___kcrctab_gpl+*)) } | |
9ddf8252 | 26 | |
4c5afb74 | 27 | .ctors 0 : ALIGN(8) { *(SORT(.ctors.*)) *(.ctors) } |
5bd933fe | 28 | .init_array 0 : ALIGN(8) { *(SORT(.init_array.*)) *(.init_array) } |
ab426321 | 29 | |
87c482bd HD |
30 | .altinstructions 0 : ALIGN(8) { KEEP(*(.altinstructions)) } |
31 | __bug_table 0 : ALIGN(8) { KEEP(*(__bug_table)) } | |
ab426321 | 32 | __jump_table 0 : ALIGN(8) { KEEP(*(__jump_table)) } |
dd277622 ST |
33 | |
34 | __patchable_function_entries : { *(__patchable_function_entries) } | |
35 | ||
6a3193cd | 36 | #ifdef CONFIG_LTO_CLANG |
dd277622 ST |
37 | /* |
38 | * With CONFIG_LTO_CLANG, LLD always enables -fdata-sections and | |
39 | * -ffunction-sections, which increases the size of the final module. | |
40 | * Merge the split sections in the final binary. | |
41 | */ | |
42 | .bss : { | |
43 | *(.bss .bss.[0-9a-zA-Z_]*) | |
44 | *(.bss..L*) | |
45 | } | |
46 | ||
47 | .data : { | |
48 | *(.data .data.[0-9a-zA-Z_]*) | |
49 | *(.data..L*) | |
50 | } | |
51 | ||
52 | .rodata : { | |
53 | *(.rodata .rodata.[0-9a-zA-Z_]*) | |
54 | *(.rodata..L*) | |
55 | } | |
56 | ||
28aad1c2 ST |
57 | /* |
58 | * With CONFIG_CFI_CLANG, we assume __cfi_check is at the beginning | |
59 | * of the .text section, and is aligned to PAGE_SIZE. | |
60 | */ | |
61 | .text : ALIGN_CFI { | |
62 | *(.text.__cfi_check) | |
63 | *(.text .text.[0-9a-zA-Z_]* .text..L.cfi*) | |
64 | } | |
6a3193cd | 65 | #endif |
405d967d | 66 | } |
596b0474 MY |
67 | |
68 | /* bring in arch-specific sections */ | |
69 | #include <asm/module.lds.h> |