diff options
-rw-r--r-- | core/syslinux.ld | 44 | ||||
-rw-r--r-- | dos/dosexe.ld | 6 |
2 files changed, 25 insertions, 25 deletions
diff --git a/core/syslinux.ld b/core/syslinux.ld index c1c884c5..40a01394 100644 --- a/core/syslinux.ld +++ b/core/syslinux.ld @@ -36,7 +36,7 @@ SECTIONS *(.earlybss) __earlybss_end = .; } - __earlybss_len = __earlybss_end - __earlybss_start; + __earlybss_len = ABSOLUTE(__earlybss_end) - ABSOLUTE(__earlybss_start); __earlybss_dwords = (__earlybss_len + 3) >> 2; . = ALIGN(4); @@ -45,7 +45,7 @@ SECTIONS *(.bss16) __bss16_end = .; } - __bss16_len = __bss16_end - __bss16_start; + __bss16_len = ABSOLUTE(__bss16_end) - ABSOLUTE(__bss16_start); __bss16_dwords = (__bss16_len + 3) >> 2; . = ALIGN(4); @@ -54,7 +54,7 @@ SECTIONS *(.config) __config_end = .; } - __config_len = __config_end - __config_start; + __config_len = ABSOLUTE(__config_end) - ABSOLUTE(__config_start); __config_dwords = (__config_len + 3) >> 2; /* Generated and/or copied code */ @@ -65,7 +65,7 @@ SECTIONS *(.replacestub) __replacestub_end = .; } - __replacestub_len = __replacestub_end - __replacestub_start; + __replacestub_len = ABSOLUTE(__replacestub_end) - ABSOLUTE(__replacestub_start); __replacestub_dwords = (__replacestub_len + 3) >> 2; . = ALIGN(16); @@ -75,7 +75,7 @@ SECTIONS *(.gentextnr) __gentextnr_end = .; } - __gentextnr_len = __gentextnr_end - __gentextnr_start; + __gentextnr_len = ABSOLUTE(__gentextnr_end) - ABSOLUTE(__gentextnr_start); __gentextnr_dwords = (__gentextnr_len + 3) >> 2; . = STACK_BASE; @@ -84,7 +84,7 @@ SECTIONS . += STACK_LEN; __stack16_end = .; } - __stack16_len = __stack16_end - __stack16_start; + __stack16_len = ABSOLUTE(__stack16_end) - ABSOLUTE(__stack16_start); __stack16_dwords = (__stack16_len + 3) >> 2; /* Initialized sections */ @@ -96,7 +96,7 @@ SECTIONS *(.init) __init_end = .; } - __init_len = __init_end - __init_start; + __init_len = ABSOLUTE(__init_end) - ABSOLUTE(__init_start); __init_dwords = (__init_len + 3) >> 2; .text16 : { @@ -105,7 +105,7 @@ SECTIONS *(.text16) __text16_end = .; } - __text16_len = __text16_end - __text16_start; + __text16_len = ABSOLUTE(__text16_end) - ABSOLUTE(__text16_start); __text16_dwords = (__text16_len + 3) >> 2; /* @@ -119,7 +119,7 @@ SECTIONS *(.textnr) __textnr_end = .; } - __textnr_len = __textnr_end - __textnr_start; + __textnr_len = ABSOLUTE(__textnr_end) - ABSOLUTE(__textnr_start); __textnr_dwords = (__textnr_len + 3) >> 2; . = ALIGN(16); @@ -131,7 +131,7 @@ SECTIONS *(.bcopyxx.text) __bcopyxx_text_end = .; } - __bcopyxx_text_len = __bcopyxx_text_end - __bcopyxx_text_start; + __bcopyxx_text_len = ABSOLUTE(__bcopyxx_text_end) - ABSOLUTE(__bcopyxx_text_start); __bcopyxx_text_dwords = (__bcopyxx_text_len + 3) >> 2; .bcopyxx.data : { @@ -139,11 +139,11 @@ SECTIONS *(.bcopyxx.text) __bcopyxx_data_end = .; } - __bcopyxx_data_len = __bcopyxx_data_end - __bcopyxx_data_start; + __bcopyxx_data_len = ABSOLUTE(__bcopyxx_data_end) - ABSOLUTE(__bcopyxx_data_start); __bcopyxx_data_dwords = (__bcopyxx_data_len + 3) >> 2; __bcopyxx_end = .; - __bcopyxx_len = __bcopyxx_end - __bcopyxx_start; + __bcopyxx_len = ABSOLUTE(__bcopyxx_end) - ABSOLUTE(__bcopyxx_start); __bcopyxx_dwords = (__bcopyxx_len + 3) >> 2; . = ALIGN(4); @@ -152,7 +152,7 @@ SECTIONS *(.data16) __data16_end = .; } - __data16_len = __data16_end - __data16_start; + __data16_len = ABSOLUTE(__data16_end) - ABSOLUTE(__data16_start); __data16_dwords = (__data16_len + 3) >> 2; . = ALIGN(4); @@ -176,7 +176,7 @@ SECTIONS *(.adv) __adv_end = .; } - __adv_len = __adv_end - __adv_start; + __adv_len = ABSOLUTE(__adv_end) - ABSOLUTE(__adv_start); __adv_dwords = (__adv_len + 3) >> 2; /* Late uninitialized sections */ @@ -187,7 +187,7 @@ SECTIONS *(.uibss) __uibss_end = .; } - __uibss_len = __uibss_end - __uibss_start; + __uibss_len = ABSOLUTE(__uibss_end) - ABSOLUTE(__uibss_start); __uibss_dwords = (__uibss_len + 3) >> 2; _end16 = .; @@ -220,7 +220,7 @@ SECTIONS *(.auxseg) __auxseg_end = .; } - __auxseg_len = __auxseg_end - __auxseg_start; + __auxseg_len = ABSOLUTE(__auxseg_end) - ABSOLUTE(__auxseg_start); __auxseg_dwords = (__auxseg_len + 3) >> 2; aux_seg = __auxseg_start >> 4; @@ -232,12 +232,12 @@ SECTIONS *(.lowmem) __lowmem_end = .; } - __lowmem_len = __lowmem_end - __lowmem_start; + __lowmem_len = ABSOLUTE(__lowmem_end) - ABSOLUTE(__lowmem_start); __lowmem_dwords = (__lowmem_len + 3) >> 2; __high_clear_end = .; - __high_clear_len = __high_clear_end - __high_clear_start; + __high_clear_len = ABSOLUTE(__high_clear_end) - ABSOLUTE(__high_clear_start); __high_clear_dwords = (__high_clear_len + 3) >> 2; /* Start of the lowmem heap */ @@ -325,7 +325,7 @@ SECTIONS } __pm_code_end = .; - __pm_code_len = __pm_code_end - __pm_code_start; + __pm_code_len = ABSOLUTE(__pm_code_end) - ABSOLUTE(__pm_code_start); __pm_code_dwords = (__pm_code_len + 3) >> 2; . = ALIGN(128); @@ -339,7 +339,7 @@ SECTIONS *(COMMON) __bss_end = .; } - __bss_len = __bss_end - __bss_start; + __bss_len = ABSOLUTE(__bss_end) - ABSOLUTE(__bss_start); __bss_dwords = (__bss_len + 3) >> 2; /* Very large objects which don't need to be zeroed */ @@ -352,7 +352,7 @@ SECTIONS *(.hugebss.*) __hugebss_end = .; } - __hugebss_len = __hugebss_end - __hugebss_start; + __hugebss_len = ABSOLUTE(__hugebss_end) - ABSOLUTE(__hugebss_start); __hugebss_dwords = (__hugebss_len + 3) >> 2; @@ -364,7 +364,7 @@ SECTIONS *(.stack) __stack_end = .; } - __stack_len = __stack_end - __stack_start; + __stack_len = ABSOLUTE(__stack_end) - ABSOLUTE(__stack_start); __stack_dwords = (__stack_len + 3) >> 2; _end = .; diff --git a/dos/dosexe.ld b/dos/dosexe.ld index 833368aa..76bfc758 100644 --- a/dos/dosexe.ld +++ b/dos/dosexe.ld @@ -27,12 +27,12 @@ SECTIONS __payload_lma = .; . = 0x100000000 - syslinux_ldlinux_size; - __payload_start = .; .payload : AT (__payload_lma) { + __payload_start = .; *(.payload) + __payload_end = .; } - __payload_end = .; - __payload_len = __payload_end - __payload_start; + __payload_len = ABSOLUTE(__payload_end) - ABSOLUTE(__payload_start); __payload_dwords = __payload_len >> 2; __text_lma = __payload_lma + syslinux_ldlinux_size; |