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