[ARC] Enable .cfi_* pseudo-ops.
[deliverable/binutils-gdb.git] / ld / scripttempl / elf32cr16c.sc
CommitLineData
0949843d 1# Linker Script for National Semiconductor's CR16C-ELF32.
985743c7 2#
6f2750fe 3# Copyright (C) 2014-2016 Free Software Foundation, Inc.
985743c7
NC
4#
5# Copying and distribution of this file, with or without modification,
6# are permitted in any medium without royalty provided the copyright
7# notice and this notice are preserved.
0949843d
NC
8
9test -z "$ENTRY" && ENTRY=_start
10cat <<EOF
11
12/* Example Linker Script for linking NS CR16C or CR16CPlus
13 elf32 files, which were compiled with either the near data
985743c7
NC
14 model or the default data model.
15
6f2750fe 16 Copyright (C) 2014-2016 Free Software Foundation, Inc.
985743c7
NC
17
18 Copying and distribution of this script, with or without modification,
19 are permitted in any medium without royalty provided the copyright
20 notice and this notice are preserved. */
21
0949843d 22
ec2d9b29 23${RELOCATING+ENTRY(${ENTRY})}
0949843d
NC
24
25MEMORY
26{
27 near_rom : ORIGIN = 0x4, LENGTH = 512K - 4
28 near_ram : ORIGIN = 512K, LENGTH = 512K - 64K
29 rom : ORIGIN = 1M, LENGTH = 3M
30 ram : ORIGIN = 4M, LENGTH = 10M
31}
32
33SECTIONS
34{
35/* The heap is located in near memory, to suit both the near and
36 default data models. The heap and stack are aligned to the bus
37 width, as a speed optimization for accessing data located
38 there. The alignment to 4 bytes is compatible for both the CR16C
39 bus width (2 bytes) and CR16CPlus bus width (4 bytes). */
40
7ba29e2a
NC
41 .text : { __TEXT_START = .; *(.text) __TEXT_END = .; } > rom
42 .rdata : { __RDATA_START = .; *(.rdata_4) *(.rdata_2) *(.rdata_1) __RDATA_END = .; } > near_rom
43 .ctor ALIGN(4) : { __CTOR_LIST = .; *(.ctors) __CTOR_END = .; } > near_rom
44 .dtor ALIGN(4) : { __DTOR_LIST = .; *(.dtors) __DTOR_END = .; } > near_rom
45 .data : { __DATA_START = .; *(.data_4) *(.data_2) *(.data_1) *(.data) __DATA_END = .; } > ram AT > rom
46 .bss (NOLOAD) : { __BSS_START = .; *(.bss_4) *(.bss_2) *(.bss_1) *(.bss) *(COMMON) __BSS_END = .; } > ram
47 .nrdata : { __NRDATA_START = .; *(.nrdat_4) *(.nrdat_2) *(.nrdat_1) __NRDATA_END = .; } > near_rom
48 .ndata : { __NDATA_START = .; *(.ndata_4) *(.ndata_2) *(.ndata_1) __NDATA_END = .; } > near_ram AT > rom
49 .nbss (NOLOAD) : { __NBSS_START = .; *(.nbss_4) *(.nbss_2) *(.nbss_1) *(.ncommon) __NBSS_END = .; } > near_ram
50 .heap (NOLOAD) : { . = ALIGN(4); __HEAP_START = .; . += 0x2000; __HEAP_MAX = .; } > near_ram
51 .stack (NOLOAD) : { . = ALIGN(4); . += 0x6000; __STACK_START = .; } > ram
52 .istack (NOLOAD) : { . = ALIGN(2); . += 0x100; __ISTACK_START = .; } > ram
0949843d
NC
53}
54
55__DATA_IMAGE_START = LOADADDR(.data);
56__NDATA_IMAGE_START = LOADADDR(.ndata);
57
58EOF
This page took 0.649083 seconds and 4 git commands to generate.