source: rtems/c/src/lib/libbsp/i386/i386ex/startup/linkcmds @ 60b791ad

4.104.114.84.95
Last change on this file since 60b791ad was 60b791ad, checked in by Joel Sherrill <joel.sherrill@…>, on Feb 17, 1998 at 11:46:28 PM

updated copyright to 1998

  • Property mode set to 100644
File size: 2.5 KB
Line 
1/*
2 *  This file contains directives for the GNU linker which are specific
3 *  to the Intel 386ex evaluation board.
4 *
5 *  COPYRIGHT (c) 1989-1998.
6 *  On-Line Applications Research Corporation (OAR).
7 *  Copyright assigned to U.S. Government, 1994.
8 *
9 *  The license and distribution terms for this file may be
10 *  found in the file LICENSE in this distribution or at
11 *  http://www.OARcorp.com/rtems/license.html.
12 *
13 *  $Id$
14 */
15
16
17        ENTRY(reset) ;
18SECTIONS
19{
20        _rom_ints = 0x3fb0000;
21        .ints 0x0100 :
22        AT ( _rom_ints )          /* was 0x3fb3300 */
23        {
24        _sints = .;
25        *(.ints);
26        _eints = ALIGN (0x010);
27        }       
28        _cs4_ints_segment   = 0x0010 ;   
29        _cs4_ints_offset    = 0x0000 ;       
30        _cs6_t_ints_segment = 0xF000 ; /* was 0xF000 */
31        _cs6_t_ints_offset  = 0x0000 ; /* was 0x3300 */
32        _cs6_t_ints_size    = _eints - _sints ;
33
34        _rom_gdt = _rom_ints + _cs6_t_ints_size;
35        .gdt  0x1000  :
36        AT ( _rom_gdt )
37        {
38        _sgdt = .;
39        *(.gdt);
40        _egdt = ALIGN (0x10);
41        }
42        _cs4_gdt_segment   = 0x0100 ; /* evaluates to  0x1000 */
43        _cs4_gdt_offset    = 0x0000 ;
44        _cs6_t_gdt_segment = 0xF000;
45        _cs6_t_gdt_offset  = _cs6_t_ints_size;  /* was 0x0 */
46        _cs6_t_gdt_size    = _egdt - _sgdt;
47
48        _rom_idt = _rom_gdt + _cs6_t_gdt_size + _cs6_t_ints_size ;
49        .idt 0x1200 :
50        AT ( _rom_idt )
51        {
52        _sidt = .;
53        *(.idt);
54        _eidt = ALIGN (0x10);
55        }
56        _cs4_idt_segment        = 0x0120;
57        _cs4_idt_offset         = 0x0000 ;
58        _cs6_t_idt_segment      = 0xF000 ;
59        _cs6_t_idt_offset       = _cs6_t_ints_size + _cs6_t_gdt_size ; /* was 0x1000 */
60        _cs6_t_idt_size         = _eidt - _sidt;
61
62        _rom_data_start = _rom_idt + _cs6_t_idt_size ;
63        .data :
64        AT ( _rom_data_start )       /* was 0x3fd0000 */
65        {
66        _sdata = .;
67        *(.data);
68        _edata = ALIGN( 0x10 ) ;
69        }
70        _data_start       = ADDR(.data) ;
71        _data_size        = _edata - _sdata ;
72        _edata            = _data_start + _data_size ;
73
74        .bss :
75        {
76        _bss_start = .;
77        *(.bss);
78        *(COMMON);
79        _ebss = ALIGN(0x10);
80        end = _ebss;
81        _end = end;
82        __end = end;
83        }
84        _bss_size = _ebss - _bss_start ;
85
86       
87        .text ( 0x3f80000 ):
88        {
89        _text_start = . ;
90        *(.text ) ;
91        . = ALIGN (16);
92
93        *(.eh_fram)
94        . = ALIGN (16);
95
96        /*
97         * C++ constructors
98         */
99        __CTOR_LIST__ = .;
100        LONG((__CTOR_END__ - __CTOR_LIST__) / 4 - 2)
101        *(.ctors)
102        LONG(0)
103        __CTOR_END__ = .;
104        __DTOR_LIST__ = .;
105        LONG((__DTOR_END__ - __DTOR_LIST__) / 4 - 2)
106        *(.dtors)
107        LONG(0)
108        __DTOR_END__ = .;
109        _etext = ALIGN( 0x10 );
110        }
111
112        .initial  0x3ff1000:
113        {
114        *(.initial);
115        }
116
117        .reset    0x3fffff0:
118        {
119        *(.reset);
120        }
121}
122
123
124
Note: See TracBrowser for help on using the repository browser.