diff options
author | Marti Bolivar <mbolivar@leaflabs.com> | 2011-09-06 17:18:28 -0400 |
---|---|---|
committer | Marti Bolivar <mbolivar@leaflabs.com> | 2011-09-07 23:34:23 -0400 |
commit | b232da196a4b97a45da92212afdd8e2364b833c2 (patch) | |
tree | 61caaeb867544b6dd684961049e128b9b9b2c4f2 /support/ld/common_header.inc | |
parent | db9ac39e9dd87ba57f2b32ce211f9b35779b9e80 (diff) | |
download | librambutan-b232da196a4b97a45da92212afdd8e2364b833c2.tar.gz librambutan-b232da196a4b97a45da92212afdd8e2364b833c2.zip |
[support/ld] Factor out header from common_rom.inc, common_ram.inc.
The linker scripts share an initial section. Factor this out into a
new file common_header.inc, and have the main linker scripts include
this file. Apart from eliminating a redundancy, this will make it
easier to add new linker scripts in the future.
Diffstat (limited to 'support/ld/common_header.inc')
-rw-r--r-- | support/ld/common_header.inc | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/support/ld/common_header.inc b/support/ld/common_header.inc new file mode 100644 index 0000000..ad1eca2 --- /dev/null +++ b/support/ld/common_header.inc @@ -0,0 +1,39 @@ +/* "Preamble" for linker scripts (such as common_rom.inc) */ + +OUTPUT_FORMAT ("elf32-littlearm", "elf32-bigarm", "elf32-littlearm") +ENTRY(_start) +SEARCH_DIR(.) + +/* + * Link against libgcc, libc, and libm + */ +GROUP(libgcc.a libc.a libm.a) + +/* These force the linker to search for particular symbols from + * the start of the link process and thus ensure the user's + * overrides are picked up + */ +INCLUDE names.inc + +/* STM32 vector table. See stm32_vector_table.S */ +EXTERN(__cs3_stm32_vector_table) + +/* libcs3 C start function. See cs3.h */ +EXTERN(__cs3_start_c) + +/* main entry point */ +EXTERN(main) + +/* Initial stack pointer value. */ +EXTERN(__cs3_stack) +PROVIDE(__cs3_stack = __cs3_region_start_ram + __cs3_region_size_ram); + +/* Reset vector and chip reset entry point. See start.S */ +EXTERN(_start) +PROVIDE(__cs3_reset = _start); + +/* Beginning of the heap */ +PROVIDE(__cs3_heap_start = _end); + +/* End of the heap */ +PROVIDE(__cs3_heap_end = __cs3_region_start_ram + __cs3_region_size_ram); |