summaryrefslogtreecommitdiffstats
path: root/src/arch/i386/scripts/i386.lds
diff options
context:
space:
mode:
Diffstat (limited to 'src/arch/i386/scripts/i386.lds')
-rw-r--r--src/arch/i386/scripts/i386.lds14
1 files changed, 8 insertions, 6 deletions
diff --git a/src/arch/i386/scripts/i386.lds b/src/arch/i386/scripts/i386.lds
index 71bb9fdd..575cb881 100644
--- a/src/arch/i386/scripts/i386.lds
+++ b/src/arch/i386/scripts/i386.lds
@@ -34,7 +34,7 @@ SECTIONS {
*(.prefix)
*(.prefix.*)
_mprefix = .;
- } .prefix_bss (NOLOAD) : {
+ } .prefix_bss (NOLOAD) : AT ( _end_lma ) {
_eprefix = .;
}
_prefix_filesz = ABSOLUTE ( _mprefix - _prefix );
@@ -52,7 +52,7 @@ SECTIONS {
*(.text16)
*(.text16.*)
_mtext16 = .;
- } .text16_bss (NOLOAD) : {
+ } .text16_bss (NOLOAD) : AT ( _end_lma ) {
_etext16 = .;
}
_text16_filesz = ABSOLUTE ( _mtext16 - _text16 );
@@ -71,7 +71,7 @@ SECTIONS {
*(.data16)
*(.data16.*)
_mdata16 = .;
- } .data16_bss (NOLOAD) : {
+ } .data16_bss (NOLOAD) : AT ( _end_lma ) {
*(.bss16)
*(.bss16.*)
*(.stack16)
@@ -98,7 +98,7 @@ SECTIONS {
*(.data.*)
*(SORT(.tbl.*)) /* Various tables. See include/tables.h */
_mtextdata = .;
- } .textdata_bss (NOLOAD) : {
+ } .textdata_bss (NOLOAD) : AT ( _end_lma ) {
*(.bss)
*(.bss.*)
*(COMMON)
@@ -119,7 +119,7 @@ SECTIONS {
*(.zinfo)
*(.zinfo.*)
_mzinfo = .;
- } .zinfo_bss (NOLOAD) : {
+ } .zinfo_bss (NOLOAD) : AT ( _end_lma ) {
_ezinfo = .;
}
_zinfo_filesz = ABSOLUTE ( _mzinfo - _zinfo );
@@ -130,7 +130,7 @@ SECTIONS {
*
*/
- .weak 0x0 : {
+ .weak 0x0 : AT ( _end_lma ) {
_weak = .;
*(.weak)
_eweak = .;
@@ -181,6 +181,8 @@ SECTIONS {
. += _zinfo_filesz;
. = ALIGN ( _max_align );
+ _end_lma = .;
+
/*
* Values calculated to save code from doing it
*