]> git.ipfire.org Git - thirdparty/ipxe.git/commitdiff
[build] Allow BIOS linker script to be used with FreeBSD linker
authorMichael Brown <mcb30@ipxe.org>
Sat, 30 Jan 2021 11:48:47 +0000 (11:48 +0000)
committerMichael Brown <mcb30@ipxe.org>
Sat, 30 Jan 2021 18:37:01 +0000 (18:37 +0000)
Add a few more ABSOLUTE() expressions to convince the FreeBSD linker
that already-absolute symbols are, in fact, absolute.

Signed-off-by: Michael Brown <mcb30@ipxe.org>
src/arch/x86/scripts/pcbios.lds

index 62442138f925154e55c1353fe5fb6256dd9ed66d..de59adca9b6deeb90666d46772353b66f7b8b87e 100644 (file)
@@ -241,30 +241,30 @@ SECTIONS {
 
     .                  = ALIGN ( _max_align );
     _prefix_lma                = .;
-    .                  += _prefix_filesz;
+    .                  += ABSOLUTE ( _prefix_filesz );
 
     .                  = ALIGN ( _max_align );
     _text16_early_lma  = .;
-    .                  += _text16_early_filesz;
+    .                  += ABSOLUTE ( _text16_early_filesz );
 
     .                  = ALIGN ( _max_align );
     .                  = ALIGN ( _payload_align );
     _pprefix_lma       = .;
-    .                  += _pprefix_filesz;
+    .                  += ABSOLUTE ( _pprefix_filesz );
 
     .                  = ALIGN ( _max_align );
     _payload_lma       = .;
     _pprefix_skip      = ABSOLUTE ( _payload_lma ) - ABSOLUTE ( _pprefix_lma );
     _text16_late_lma   = .;
-    .                  += _text16_late_filesz;
+    .                  += ABSOLUTE ( _text16_late_filesz );
 
     .                  = ALIGN ( _max_align );
     _data16_lma                = .;
-    .                  += _data16_filesz;
+    .                  += ABSOLUTE ( _data16_filesz );
 
     .                  = ALIGN ( _max_align );
     _textdata_lma      = .;
-    .                  += _textdata_filesz;
+    .                  += ABSOLUTE ( _textdata_filesz );
 
     _filesz            = .; /* Do not include .bss.* or .zinfo in file size */
 
@@ -275,31 +275,31 @@ SECTIONS {
 
     .                  = ALIGN ( _max_align );
     _bss_prefix_lma    = .;
-    .                  +=  _prefix_padsz;
+    .                  += ABSOLUTE ( _prefix_padsz );
 
     .                  = ALIGN ( _max_align );
     _bss_text16_lma    = .;
-    .                  += _text16_padsz;
+    .                  += ABSOLUTE ( _text16_padsz );
 
     .                  = ALIGN ( _max_align );
     _bss_data16_lma    = .;
-    .                  += _data16_padsz;
+    .                  += ABSOLUTE ( _data16_padsz );
 
     .                  = ALIGN ( _max_align );
     _bss_textdata_lma  = .;
-    .                  += _textdata_padsz;
+    .                  += ABSOLUTE ( _textdata_padsz );
 
     .                  = ALIGN ( _max_align );
     _bss_pprefix_lma   = .;
-    .                  += _pprefix_padsz;
+    .                  += ABSOLUTE ( _pprefix_padsz );
 
     .                  = ALIGN ( _max_align );
     _bss_zinfo_lma     = .;
-    .                  += _zinfo_padsz;
+    .                  += ABSOLUTE ( _zinfo_padsz );
 
     .                  = ALIGN ( _max_align );
     _zinfo_lma         = .;
-    .                  += _zinfo_filesz;
+    .                  += ABSOLUTE ( _zinfo_filesz );
 
     .                  = ALIGN ( _max_align );
     _end_lma           = .;