1/*
2 * Copyright (C) 2016 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 *      http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17
18SECTIONS
19{
20	/* things that live in the main app image */
21	.text : {
22		KEEP (*(.vectors) ) ;
23		*(.text) *(.text.*) ;
24		*(.rodata) *(.rodata.*) ;
25		. = ALIGN(8);
26		__internal_app_start = ABSOLUTE(.);
27		KEEP (*(.internal_app_init) ) ;
28		__internal_app_end = ABSOLUTE(.);
29		. = ALIGN(4);
30		__text_end = ABSOLUTE(.);
31	} > code = 0xff
32
33	.stack : {
34		. = ALIGN(4);
35		__stack_bottom = ABSOLUTE(.);
36		KEEP ( *(.stack) );
37		KEEP ( *(.stack.*) );
38		. = ALIGN(4);
39		__stack_top = ABSOLUTE(.);
40	 } > ram
41
42	.data : {
43		. = ALIGN(4);
44		__data_start = ABSOLUTE(.);
45		*(.data);
46		*(.data.*);
47		. = ALIGN(4);
48		__data_end = ABSOLUTE(.);
49	 } > ram AT > code
50
51	.bss : {
52		. = ALIGN(4);
53		__bss_start = ABSOLUTE(.);
54		*(.bss) *(.bss.*) *(COMMON);
55		. = ALIGN(4);
56		__bss_end = ABSOLUTE(.);
57	} > ram
58
59	.neverinit : {
60		. = ALIGN(4);
61		*(.neverinit) *(.neverinit.*) ;
62		. = ALIGN(4);
63		__heap_start = ABSOLUTE(.);
64	} > ram
65}
66
67BL = ORIGIN(bl);
68__app_start = __data_data + __data_end - __data_start;
69__heap_end = ORIGIN(ram) + LENGTH(ram);
70ENTRY(__VECTORS)
71
72
73