summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/m68k/mvme147s/startup/linkcmds
blob: 24b487fef3431222693f699305ce2c7d9b28e603 (plain) (blame)
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
77
78
79
80
81
82
83
84
85
86
87
88
/*
 *  This file contains directives for the GNU linker which are specific
 *  to the Motorola MVME147 boards.
 *
 *  COPYRIGHT (c) 1989-1998.
 *  On-Line Applications Research Corporation (OAR).
 *  Copyright assigned to U.S. Government, 1994.
 *
 *  The license and distribution terms for this file may be
 *  found in the file LICENSE in this distribution or at
 *  http://www.OARcorp.com/rtems/license.html.
 *
 *  MVME147 port for TNI - Telecom Bretagne
 *  by Dominique LE CAMPION (Dominique.LECAMPION@enst-bretagne.fr)
 *  May 1996
 *
 *  $Id$
 */

StackSize = DEFINED(StackSize) ? StackSize : 0x1000;

MEMORY
	{
	ram : org = 0x7000, l = 0x3d8fff
	}

SECTIONS
{
        .text 0x7000 :
	{
	    text_start = . ;
	    _text_start = . ;
            *(.text)
	    . = ALIGN (16);

            *(.gnu.linkonce.t.*)
            *(.descriptors)
            /* .gnu.warning sections are handled specially by elf32.em.  */
            *(.gnu.warning)

	    *(.eh_fram)
	    . = ALIGN (16);

	    /*
	     * C++ constructors
	     */
	    __CTOR_LIST__ = .;
	    LONG((__CTOR_END__ - __CTOR_LIST__) / 4 - 2)
	    *(.ctors)
	    LONG(0)
	    __CTOR_END__ = .;
	    __DTOR_LIST__ = .;
	    LONG((__DTOR_END__ - __DTOR_LIST__) / 4 - 2)
	    *(.dtors)
	    LONG(0)
	    __DTOR_END__ = .;

            _rodata_start = . ;
            *(.rodata)
            *(.gnu.linkonce.r*)
            _erodata = ALIGN( 0x10 ) ;

	    etext = ALIGN( 0x10 ) ;
	    _etext = .;
        }
        .data ADDR( .text ) + SIZEOF( .text ):
	{
	    data_start = . ;
            _data_start = .;
            *(.data)
            *(.gnu.linkonce.d*)
            *(.gcc_except_table)
	    edata = ALIGN( 0x10 ) ;
            _edata = .;
        }
        .bss ADDR( .data ) + SIZEOF( .data ):
        {
	    bss_start = . ;
	    _bss_start = . ;
	    *(.bss)
	    *(COMMON)
	    . += StackSize; /* XXX -- Old gld can't handle this */
	    . = ALIGN (16);
	    stack_init = .;
	    end = . ;
	    _end = . ;
	}
}