1 /* SPDX-License-Identifier: GPL-2.0 */ !! 1 /* ld script to make UltraLinux kernel */ 2 << 3 #define EMITS_PT_NOTE << 4 #define RO_EXCEPTION_TABLE_ALIGN 16 << 5 2 6 #include <asm-generic/vmlinux.lds.h> 3 #include <asm-generic/vmlinux.lds.h> 7 #include <asm/thread_info.h> !! 4 8 #include <asm/cache.h> !! 5 OUTPUT_FORMAT("elf64-sparc", "elf64-sparc", "elf64-sparc") 9 #include <asm/page.h> !! 6 OUTPUT_ARCH(sparc:v9a) 10 #include <asm/setup.h> !! 7 ENTRY(_start) 11 !! 8 12 OUTPUT_FORMAT("elf64-alpha") << 13 OUTPUT_ARCH(alpha) << 14 ENTRY(__start) << 15 PHDRS { text PT_LOAD; note PT_NOTE; } << 16 jiffies = jiffies_64; 9 jiffies = jiffies_64; 17 SECTIONS 10 SECTIONS 18 { 11 { 19 #ifdef CONFIG_ALPHA_LEGACY_START_ADDRESS !! 12 swapper_pmd_dir = 0x0000000000402000; 20 . = 0xfffffc0000310000; !! 13 empty_pg_dir = 0x0000000000403000; 21 #else !! 14 . = 0x4000; 22 . = 0xfffffc0001010000; !! 15 .text 0x0000000000404000 : 23 #endif !! 16 { 24 !! 17 *(.text) 25 _text = .; /* Text and read-only !! 18 *(.gnu.warning) 26 .text : { !! 19 } =0 27 HEAD_TEXT !! 20 _etext = .; 28 TEXT_TEXT !! 21 PROVIDE (etext = .); 29 SCHED_TEXT !! 22 30 LOCK_TEXT !! 23 RODATA 31 *(.fixup) !! 24 32 *(.gnu.warning) !! 25 .data : 33 } :text !! 26 { 34 swapper_pg_dir = SWAPPER_PGD; !! 27 *(.data) 35 _etext = .; /* End of text section !! 28 CONSTRUCTORS 36 !! 29 } 37 RO_DATA(4096) !! 30 .data1 : { *(.data1) } 38 !! 31 . = ALIGN(64); 39 /* Will be freed after init */ !! 32 .data.cacheline_aligned : { *(.data.cacheline_aligned) } 40 __init_begin = ALIGN(PAGE_SIZE); !! 33 _edata = .; 41 INIT_TEXT_SECTION(PAGE_SIZE) !! 34 PROVIDE (edata = .); 42 INIT_DATA_SECTION(16) !! 35 .fixup : { *(.fixup) } 43 PERCPU_SECTION(L1_CACHE_BYTES) !! 36 44 /* Align to THREAD_SIZE rather than PA !! 37 . = ALIGN(16); 45 needed for the THREAD_SIZE aligned !! 38 __start___ex_table = .; 46 . = ALIGN(THREAD_SIZE); !! 39 __ex_table : { *(__ex_table) } 47 __init_end = .; !! 40 __stop___ex_table = .; 48 /* Freed after init ends here */ !! 41 49 !! 42 . = ALIGN(8192); 50 _sdata = .; /* Start of rw data se !! 43 __init_begin = .; 51 _data = .; !! 44 .init.text : { 52 RW_DATA(L1_CACHE_BYTES, PAGE_SIZE, THR !! 45 _sinittext = .; 53 !! 46 *(.init.text) 54 .got : { !! 47 _einittext = .; 55 *(.got) !! 48 } 56 } !! 49 .init.data : { *(.init.data) } 57 .sdata : { !! 50 . = ALIGN(16); 58 *(.sdata) !! 51 __setup_start = .; 59 } !! 52 .init.setup : { *(.init.setup) } 60 _edata = .; /* End of data section !! 53 __setup_end = .; 61 !! 54 __start___param = .; 62 BSS_SECTION(0, 0, 0) !! 55 __param : { *(__param) } 63 _end = .; !! 56 __stop___param = .; 64 !! 57 __initcall_start = .; 65 .mdebug 0 : { !! 58 .initcall.init : { 66 *(.mdebug) !! 59 *(.initcall1.init) 67 } !! 60 *(.initcall2.init) 68 .note 0 : { !! 61 *(.initcall3.init) 69 *(.note) !! 62 *(.initcall4.init) 70 } !! 63 *(.initcall5.init) 71 !! 64 *(.initcall6.init) 72 STABS_DEBUG !! 65 *(.initcall7.init) 73 DWARF_DEBUG !! 66 } 74 ELF_DETAILS !! 67 __initcall_end = .; 75 !! 68 __con_initcall_start = .; 76 DISCARDS !! 69 .con_initcall.init : { *(.con_initcall.init) } >> 70 __con_initcall_end = .; >> 71 SECURITY_INIT >> 72 . = ALIGN(8192); >> 73 __initramfs_start = .; >> 74 .init.ramfs : { *(.init.ramfs) } >> 75 __initramfs_end = .; >> 76 . = ALIGN(32); >> 77 __per_cpu_start = .; >> 78 .data.percpu : { *(.data.percpu) } >> 79 __per_cpu_end = .; >> 80 . = ALIGN(8192); >> 81 __init_end = .; >> 82 __bss_start = .; >> 83 .sbss : { *(.sbss) *(.scommon) } >> 84 .bss : >> 85 { >> 86 *(.dynbss) >> 87 *(.bss) >> 88 *(COMMON) >> 89 } >> 90 _end = . ; >> 91 PROVIDE (end = .); >> 92 /* Stabs debugging sections. */ >> 93 .stab 0 : { *(.stab) } >> 94 .stabstr 0 : { *(.stabstr) } >> 95 .stab.excl 0 : { *(.stab.excl) } >> 96 .stab.exclstr 0 : { *(.stab.exclstr) } >> 97 .stab.index 0 : { *(.stab.index) } >> 98 .stab.indexstr 0 : { *(.stab.indexstr) } >> 99 .comment 0 : { *(.comment) } >> 100 .debug 0 : { *(.debug) } >> 101 .debug_srcinfo 0 : { *(.debug_srcinfo) } >> 102 .debug_aranges 0 : { *(.debug_aranges) } >> 103 .debug_pubnames 0 : { *(.debug_pubnames) } >> 104 .debug_sfnames 0 : { *(.debug_sfnames) } >> 105 .line 0 : { *(.line) } >> 106 /DISCARD/ : { *(.exit.text) *(.exit.data) *(.exitcall.exit) } 77 } 107 }
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.