| .. | .. |
|---|
| 18 | 18 | *(.data..vm0.pgd) \ |
|---|
| 19 | 19 | *(.data..vm0.pte) |
|---|
| 20 | 20 | |
|---|
| 21 | +#define CC_USING_PATCHABLE_FUNCTION_ENTRY |
|---|
| 22 | +#define RO_EXCEPTION_TABLE_ALIGN 8 |
|---|
| 23 | + |
|---|
| 21 | 24 | #include <asm-generic/vmlinux.lds.h> |
|---|
| 22 | 25 | |
|---|
| 23 | 26 | /* needed for the processor specific cache alignment size */ |
|---|
| .. | .. |
|---|
| 35 | 38 | OUTPUT_ARCH(hppa:hppa2.0w) |
|---|
| 36 | 39 | #endif |
|---|
| 37 | 40 | |
|---|
| 41 | +#define EXIT_TEXT_SECTIONS() .exit.text : { EXIT_TEXT } |
|---|
| 42 | +#if !defined(CONFIG_64BIT) || defined(CONFIG_MLONGCALLS) |
|---|
| 43 | +#define MLONGCALL_KEEP(x) |
|---|
| 44 | +#define MLONGCALL_DISCARD(x) x |
|---|
| 45 | +#else |
|---|
| 46 | +#define MLONGCALL_KEEP(x) x |
|---|
| 47 | +#define MLONGCALL_DISCARD(x) |
|---|
| 48 | +#endif |
|---|
| 49 | + |
|---|
| 38 | 50 | ENTRY(parisc_kernel_start) |
|---|
| 39 | 51 | #ifndef CONFIG_64BIT |
|---|
| 40 | 52 | jiffies = jiffies_64 + 4; |
|---|
| .. | .. |
|---|
| 47 | 59 | |
|---|
| 48 | 60 | __init_begin = .; |
|---|
| 49 | 61 | HEAD_TEXT_SECTION |
|---|
| 50 | | - INIT_TEXT_SECTION(8) |
|---|
| 62 | + MLONGCALL_DISCARD(INIT_TEXT_SECTION(8)) |
|---|
| 51 | 63 | |
|---|
| 52 | 64 | . = ALIGN(PAGE_SIZE); |
|---|
| 53 | 65 | INIT_DATA_SECTION(PAGE_SIZE) |
|---|
| 54 | | - /* we have to discard exit text and such at runtime, not link time */ |
|---|
| 55 | | - .exit.text : |
|---|
| 56 | | - { |
|---|
| 57 | | - EXIT_TEXT |
|---|
| 58 | | - } |
|---|
| 66 | + MLONGCALL_DISCARD(EXIT_TEXT_SECTIONS()) |
|---|
| 59 | 67 | .exit.data : |
|---|
| 60 | 68 | { |
|---|
| 61 | 69 | EXIT_DATA |
|---|
| 62 | 70 | } |
|---|
| 63 | 71 | PERCPU_SECTION(8) |
|---|
| 72 | + . = ALIGN(4); |
|---|
| 73 | + .altinstructions : { |
|---|
| 74 | + __alt_instructions = .; |
|---|
| 75 | + *(.altinstructions) |
|---|
| 76 | + __alt_instructions_end = .; |
|---|
| 77 | + } |
|---|
| 64 | 78 | . = ALIGN(HUGEPAGE_SIZE); |
|---|
| 65 | 79 | __init_end = .; |
|---|
| 66 | 80 | /* freed after init ends here */ |
|---|
| 67 | 81 | |
|---|
| 68 | 82 | _text = .; /* Text and read-only data */ |
|---|
| 69 | 83 | _stext = .; |
|---|
| 84 | + MLONGCALL_KEEP(INIT_TEXT_SECTION(8)) |
|---|
| 70 | 85 | .text ALIGN(PAGE_SIZE) : { |
|---|
| 71 | 86 | TEXT_TEXT |
|---|
| 87 | + LOCK_TEXT |
|---|
| 72 | 88 | SCHED_TEXT |
|---|
| 73 | 89 | CPUIDLE_TEXT |
|---|
| 74 | | - LOCK_TEXT |
|---|
| 75 | 90 | KPROBES_TEXT |
|---|
| 76 | 91 | IRQENTRY_TEXT |
|---|
| 77 | 92 | SOFTIRQENTRY_TEXT |
|---|
| .. | .. |
|---|
| 86 | 101 | *(.lock.text) /* out-of-line lock text */ |
|---|
| 87 | 102 | *(.gnu.warning) |
|---|
| 88 | 103 | } |
|---|
| 104 | + MLONGCALL_KEEP(EXIT_TEXT_SECTIONS()) |
|---|
| 89 | 105 | . = ALIGN(PAGE_SIZE); |
|---|
| 90 | 106 | _etext = .; |
|---|
| 91 | 107 | /* End of text section */ |
|---|
| .. | .. |
|---|
| 94 | 110 | _sdata = .; |
|---|
| 95 | 111 | |
|---|
| 96 | 112 | /* Architecturally we need to keep __gp below 0x1000000 and thus |
|---|
| 97 | | - * in front of RO_DATA_SECTION() which stores lots of tracepoint |
|---|
| 113 | + * in front of RO_DATA() which stores lots of tracepoint |
|---|
| 98 | 114 | * and ftrace symbols. */ |
|---|
| 99 | 115 | #ifdef CONFIG_64BIT |
|---|
| 100 | 116 | . = ALIGN(16); |
|---|
| .. | .. |
|---|
| 112 | 128 | } |
|---|
| 113 | 129 | #endif |
|---|
| 114 | 130 | |
|---|
| 115 | | - RO_DATA_SECTION(8) |
|---|
| 116 | | - |
|---|
| 117 | | - /* RO because of BUILDTIME_EXTABLE_SORT */ |
|---|
| 118 | | - EXCEPTION_TABLE(8) |
|---|
| 119 | | - NOTES |
|---|
| 131 | + RO_DATA(8) |
|---|
| 120 | 132 | |
|---|
| 121 | 133 | /* unwind info */ |
|---|
| 122 | 134 | .PARISC.unwind : { |
|---|
| .. | .. |
|---|
| 134 | 146 | data_start = .; |
|---|
| 135 | 147 | |
|---|
| 136 | 148 | /* Data */ |
|---|
| 137 | | - RW_DATA_SECTION(L1_CACHE_BYTES, PAGE_SIZE, PAGE_SIZE) |
|---|
| 149 | + RW_DATA(L1_CACHE_BYTES, PAGE_SIZE, PAGE_SIZE) |
|---|
| 138 | 150 | |
|---|
| 139 | 151 | /* PA-RISC locks requires 16-byte alignment */ |
|---|
| 140 | 152 | . = ALIGN(16); |
|---|
| .. | .. |
|---|
| 152 | 164 | _end = . ; |
|---|
| 153 | 165 | |
|---|
| 154 | 166 | STABS_DEBUG |
|---|
| 167 | + ELF_DETAILS |
|---|
| 155 | 168 | .note 0 : { *(.note) } |
|---|
| 156 | 169 | |
|---|
| 157 | 170 | /* Sections to be discarded */ |
|---|