X-Git-Url: http://git.etherboot.org/gpxe.git/blobdiff_plain/8d2d6ac1ae50dd49e35f2d9b24323e84367a2506..8fda72337f812abb426b09b065fc1d486abc0b5a:/src/arch/i386/scripts/i386.lds diff --git a/src/arch/i386/scripts/i386.lds b/src/arch/i386/scripts/i386.lds index 77e8c7e7..7c55c2f6 100644 --- a/src/arch/i386/scripts/i386.lds +++ b/src/arch/i386/scripts/i386.lds @@ -45,17 +45,25 @@ SECTIONS { * */ - .text16 0x0 : AT ( _text16_lma ) { + .text16.early 0x0 : AT ( _text16_early_lma ) { _text16 = .; *(.text16.null) . += 1; /* Prevent NULL being valid */ + *(.text16.early) + *(.text16.early.*) + _etext16_early = .; + } .text16.late ALIGN ( _max_align ) : AT ( _text16_late_lma ) { + _text16_late = .; *(.text16) *(.text16.*) _mtext16 = .; } .bss.text16 (NOLOAD) : AT ( _end_lma ) { _etext16 = .; } - _text16_filesz = ABSOLUTE ( _mtext16 - _text16 ); + _text16_early_filesz = ABSOLUTE ( _etext16_early - _text16 ); + _text16_early_memsz = ABSOLUTE ( _etext16_early - _text16 ); + _text16_late_filesz = ABSOLUTE ( _mtext16 - _text16_late ); + _text16_late_memsz = ABSOLUTE ( _etext16 - _text16_late ); _text16_memsz = ABSOLUTE ( _etext16 - _text16 ); /* @@ -168,10 +176,14 @@ SECTIONS { _prefix_lma = .; . += _prefix_filesz; + . = ALIGN ( _max_align ); + _text16_early_lma = .; + . += _text16_early_filesz; + . = ALIGN ( _max_align ); _payload_lma = .; - _text16_lma = .; - . += _text16_filesz; + _text16_late_lma = .; + . += _text16_late_filesz; . = ALIGN ( _max_align ); _data16_lma = .; @@ -194,8 +206,6 @@ SECTIONS { * Values calculated to save code from doing it * */ - _prefix_memsz_pgh = ( ( _prefix_memsz + 15 ) / 16 ); - _prefix_memsz_sect = ( ( _prefix_memsz + 511 ) / 512 ); _text16_memsz_pgh = ( ( _text16_memsz + 15 ) / 16 ); _data16_memsz_pgh = ( ( _data16_memsz + 15 ) / 16 ); }