]> glassweightruler.freedombox.rocks Git - Ventoy.git/blob - wimboot/wimboot-2.7.3/src/script.lds
added Spanish (Latinoamérica) translation (#1865)
[Ventoy.git] / wimboot / wimboot-2.7.3 / src / script.lds
1 SECTIONS {
2
3 /* Align sections to keep PE tools happy */
4 alignment = 16;
5
6 /* Virtual addresses start at 0x20000 */
7 . = 0x20000;
8 _start = .;
9
10 /* bzImage prefix */
11 _prefix_pos = 0;
12 .prefix : AT ( _prefix_pos ) {
13 _prefix = .;
14 *(.prefix)
15 *(.prefix.*)
16 . = ALIGN ( alignment );
17 _eprefix = .;
18 }
19 _prefix_len = ABSOLUTE ( _eprefix ) - ABSOLUTE ( _prefix );
20
21 /* Real-mode uninitialised data section */
22 .bss16 ( NOLOAD ) : {
23 _bss16 = .;
24 *(.stack16)
25 *(.stack16.*)
26 *(.bss16)
27 *(.bss16.*)
28 . = ALIGN ( alignment );
29 _ebss16 = .;
30 }
31 _bss16_len = ABSOLUTE ( _ebss16 ) - ABSOLUTE ( _bss16 );
32
33 /* Payload section */
34 _payload_pos = ( _prefix_pos + _prefix_len );
35 .payload : AT ( _payload_pos ) {
36 _payload = .;
37 /* Portions that must be accessible in 16-bit modes */
38 _text16 = .;
39 *(.text16)
40 *(.text16.*)
41 _etext16 = .;
42 _data16 = .;
43 *(.rodata16)
44 *(.rodata16.*)
45 *(.data16)
46 *(.data16.*)
47 _edata16 = .;
48 /* Portions that need not be accessible in 16-bit modes */
49 _text = .;
50 *(.text)
51 *(.text.*)
52 _etext = .;
53 _data = .;
54 *(.rodata)
55 *(.rodata.*)
56 *(.data)
57 *(.data.*)
58 . = ALIGN ( alignment );
59 _edata = .;
60 _epayload = .;
61 }
62 _text16_len = ABSOLUTE ( _etext16 ) - ABSOLUTE ( _text16 );
63 _data16_len = ABSOLUTE ( _edata16 ) - ABSOLUTE ( _data16 );
64 _text_len = ABSOLUTE ( _etext ) - ABSOLUTE ( _text );
65 _data_len = ABSOLUTE ( _edata ) - ABSOLUTE ( _data );
66 _payload_len = ABSOLUTE ( _epayload ) - ABSOLUTE ( _payload );
67
68 /* bootmgr.exe hardcodes the address 0x30000 for use as a
69 * buffer accessible by real-mode code. We can't fit our
70 * .text, .data, and .bss below this region, so explicitly
71 * place the .bss higher in memory.
72 */
73 _forbidden_start = 0x30000;
74 _forbidden_end = 0x40000;
75
76 /* Uninitialised data section */
77 .bss ( NOLOAD ) : {
78 _bss = .;
79 ASSERT ( ABSOLUTE ( . ) <= ABSOLUTE ( _forbidden_start ),
80 "Binary is too large" );
81 . = ABSOLUTE ( _forbidden_end );
82 *(.bss)
83 *(.bss.*)
84 *(COMMON)
85 *(.stack)
86 *(.stack.*)
87 . = ALIGN ( alignment );
88 _ebss = .;
89 }
90 _bss_len = ABSOLUTE ( _ebss ) - ABSOLUTE ( _bss );
91
92 /* Relocations section */
93 _reloc_pos = ( _payload_pos + _payload_len );
94 _reloc = .;
95
96 _end = .;
97
98 _text_total_len = ( _text_len + _text16_len );
99 _data_total_len = ( _data_len + _data16_len );
100 _bss_total_len = ( _bss_len + _bss16_len );
101
102 /* Symbols required by i386.x86_64 objects */
103 __i386__start = _start;
104 __i386__end = _end;
105
106 /DISCARD/ : {
107 *(.comment)
108 *(.comment.*)
109 *(.note)
110 *(.note.*)
111 *(.eh_frame)
112 *(.eh_frame.*)
113 *(.rel)
114 *(.rel.*)
115 }
116 }