File: or1k-test.ld

package info (click to toggle)
gdb-doc 16.3-1
  • links: PTS, VCS
  • area: non-free
  • in suites: forky, sid, trixie
  • size: 244,264 kB
  • sloc: ansic: 2,134,731; asm: 375,582; exp: 206,875; cpp: 73,639; makefile: 70,232; sh: 26,038; python: 13,697; yacc: 11,341; ada: 7,358; xml: 6,098; perl: 5,077; pascal: 3,389; tcl: 2,986; f90: 2,764; lisp: 1,984; cs: 879; lex: 738; sed: 228; awk: 181; objc: 137; fortran: 57
file content (76 lines) | stat: -rw-r--r-- 2,136 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
/* Test linker script for OpenRISC.

   Copyright (C) 2017-2024 Free Software Foundation, Inc.

   This program is free software; you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
   the Free Software Foundation; either version 3 of the License, or
   (at your option) any later version.

   This program is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.

   You should have received a copy of the GNU General Public License
   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */

MEMORY
{
    /* The exception vectors actually start at 0x100, but if you specify
       that address here, the "--output-target binary" step will start from
       address 0 with the contents meant for address 0x100.  */
    exception_vectors : ORIGIN =  0 , LENGTH =  8K
    rom               : ORIGIN =  8K, LENGTH = 40K
    ram               : ORIGIN = 40K, LENGTH =  2M - 40K
}

SECTIONS
{
    .exception_vectors :
    {
	KEEP(*(.exception_vectors))
    } > exception_vectors

    .text :
    {
	*(.text)
	*(.text.*)
	*(.rodata)
	*(.rodata.*)
    } > rom

    .data :
    {
	*(.data)
	*(.data.*)
    } > ram

    .bss :
    {
	*(.bss)
	*(.bss.*)

	/* WARNING about section size alignment:
	   The start-up assembly code can only clear BSS section sizes
	   which are aligned to 4 bytes.  However, the size of the BSS
	   section may not be aligned, therefore up to 3 bytes more could
	   be zeroed on start-up.  This is normally not an issue, as the
	   start of the next section is usually aligned too, so those extra
	   bytes should be just padding.  I did try the following trick to
	   align the BSS section size, to no avail:

	   . = ALIGN(., 4);
	*/
    } > ram

    _bss_begin = ADDR(.bss);
    _bss_end   = _bss_begin + SIZEOF(.bss);

    .stack ALIGN(16) (NOLOAD):
    {
      *(.stack)
    } > ram
}

ENTRY(_start)  /* Otherwise, --gc-sections would throw everything away. */