1 /* SPDX-License-Identifier: GPL-2.0 */ 1 /* SPDX-License-Identifier: GPL-2.0 */ 2 2 3 #define EMITS_PT_NOTE 3 #define EMITS_PT_NOTE 4 #define RO_EXCEPTION_TABLE_ALIGN 16 4 #define RO_EXCEPTION_TABLE_ALIGN 16 5 5 6 #include <asm-generic/vmlinux.lds.h> 6 #include <asm-generic/vmlinux.lds.h> 7 #include <asm/thread_info.h> 7 #include <asm/thread_info.h> 8 #include <asm/cache.h> 8 #include <asm/cache.h> 9 #include <asm/page.h> 9 #include <asm/page.h> 10 #include <asm/setup.h> 10 #include <asm/setup.h> 11 11 12 OUTPUT_FORMAT("elf64-alpha") 12 OUTPUT_FORMAT("elf64-alpha") 13 OUTPUT_ARCH(alpha) 13 OUTPUT_ARCH(alpha) 14 ENTRY(__start) 14 ENTRY(__start) 15 PHDRS { text PT_LOAD; note PT_NOTE; } 15 PHDRS { text PT_LOAD; note PT_NOTE; } 16 jiffies = jiffies_64; 16 jiffies = jiffies_64; 17 SECTIONS 17 SECTIONS 18 { 18 { 19 #ifdef CONFIG_ALPHA_LEGACY_START_ADDRESS 19 #ifdef CONFIG_ALPHA_LEGACY_START_ADDRESS 20 . = 0xfffffc0000310000; 20 . = 0xfffffc0000310000; 21 #else 21 #else 22 . = 0xfffffc0001010000; 22 . = 0xfffffc0001010000; 23 #endif 23 #endif 24 24 25 _text = .; /* Text and read-only 25 _text = .; /* Text and read-only data */ 26 .text : { 26 .text : { 27 HEAD_TEXT 27 HEAD_TEXT 28 TEXT_TEXT 28 TEXT_TEXT 29 SCHED_TEXT 29 SCHED_TEXT 30 LOCK_TEXT 30 LOCK_TEXT 31 *(.fixup) 31 *(.fixup) 32 *(.gnu.warning) 32 *(.gnu.warning) 33 } :text 33 } :text 34 swapper_pg_dir = SWAPPER_PGD; 34 swapper_pg_dir = SWAPPER_PGD; 35 _etext = .; /* End of text section 35 _etext = .; /* End of text section */ 36 36 37 RO_DATA(4096) 37 RO_DATA(4096) 38 38 39 /* Will be freed after init */ 39 /* Will be freed after init */ 40 __init_begin = ALIGN(PAGE_SIZE); 40 __init_begin = ALIGN(PAGE_SIZE); 41 INIT_TEXT_SECTION(PAGE_SIZE) 41 INIT_TEXT_SECTION(PAGE_SIZE) 42 INIT_DATA_SECTION(16) 42 INIT_DATA_SECTION(16) 43 PERCPU_SECTION(L1_CACHE_BYTES) 43 PERCPU_SECTION(L1_CACHE_BYTES) 44 /* Align to THREAD_SIZE rather than PA 44 /* Align to THREAD_SIZE rather than PAGE_SIZE here so any padding page 45 needed for the THREAD_SIZE aligned 45 needed for the THREAD_SIZE aligned init_task gets freed after init */ 46 . = ALIGN(THREAD_SIZE); 46 . = ALIGN(THREAD_SIZE); 47 __init_end = .; 47 __init_end = .; 48 /* Freed after init ends here */ 48 /* Freed after init ends here */ 49 49 50 _sdata = .; /* Start of rw data se 50 _sdata = .; /* Start of rw data section */ 51 _data = .; 51 _data = .; 52 RW_DATA(L1_CACHE_BYTES, PAGE_SIZE, THR 52 RW_DATA(L1_CACHE_BYTES, PAGE_SIZE, THREAD_SIZE) 53 53 54 .got : { 54 .got : { 55 *(.got) 55 *(.got) 56 } 56 } 57 .sdata : { 57 .sdata : { 58 *(.sdata) 58 *(.sdata) 59 } 59 } 60 _edata = .; /* End of data section 60 _edata = .; /* End of data section */ 61 61 62 BSS_SECTION(0, 0, 0) 62 BSS_SECTION(0, 0, 0) 63 _end = .; 63 _end = .; 64 64 65 .mdebug 0 : { 65 .mdebug 0 : { 66 *(.mdebug) 66 *(.mdebug) 67 } 67 } 68 .note 0 : { 68 .note 0 : { 69 *(.note) 69 *(.note) 70 } 70 } 71 71 72 STABS_DEBUG 72 STABS_DEBUG 73 DWARF_DEBUG 73 DWARF_DEBUG 74 ELF_DETAILS 74 ELF_DETAILS 75 75 76 DISCARDS 76 DISCARDS 77 } 77 }
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.