/**************************************************************************** * boards/arm/qemu/qemu-armv7a/scripts/dramboot_armv7a.ld * * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. The * ASF licenses this file to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance with the * License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the * License for the specific language governing permissions and limitations * under the License. * ****************************************************************************/ OUTPUT_ARCH(arm) ENTRY(__start) PHDRS { text PT_LOAD ; } SECTIONS { . = 0x40101000; /* where the global variable out-of-bounds detection information located */ #ifdef CONFIG_MM_KASAN_GLOBAL .kasan.unused : { *(.data..LASANLOC*) } > ROM .kasan.global : { KEEP (*(.data..LASAN0)) KEEP (*(.data.rel.local..LASAN0)) } > ROM #endif .text : { _stext = .; /* Text section */ *(.vectors) *(.text) *(.text.cold) *(.text.unlikely) *(.fixup) *(.gnu.warning) } :text . = ALIGN(4096); .init_section : { _sinit = ABSOLUTE(.); KEEP(*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP(*(.init_array .ctors)) _einit = ABSOLUTE(.); } :text . = ALIGN(4096); _etext = .; /* End_1 of .text */ _sztext = _etext - _stext; .rodata : { _srodata = .; /* Read-only data */ *(.rodata) *(.rodata.*) *(.data.rel.ro) *(.data.rel.ro.*) } :text . = ALIGN(4096); _erodata = .; /* End of read-only data */ _szrodata = _erodata - _srodata; _eronly = .; /* End of read-only data */ .data : { /* Data */ _sdata = .; *(.data.page_aligned) *(.data) . = ALIGN(8); __start_impls = .; *(.impls) KEEP(*(.impls)) . = ALIGN(4); __stop_impls = .; *(.data.rel) *(.data.rel.*) CONSTRUCTORS } :text _edata = .; /* End+1 of .data */ .bss : { /* BSS */ _sbss = .; *(.bss) . = ALIGN(1 << 3); } :text . = ALIGN(4096); _ebss = .; _szbss = _ebss - _sbss; .initstack : { /* INIT STACK */ _s_initstack = .; *(.initstack) . = ALIGN(16); } :text . = ALIGN(4096); _e_initstack = . ; _szdata = _e_initstack - _sdata; /* Sections to be discarded */ /DISCARD/ : { *(.exit.text) *(.exit.data) *(.exitcall.exit) *(.eh_frame) } /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } }