diff options
Diffstat (limited to 'src/lib')
-rw-r--r-- | src/lib/program.ld | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/lib/program.ld b/src/lib/program.ld index 7027747bd5..8180d9f1dc 100644 --- a/src/lib/program.ld +++ b/src/lib/program.ld @@ -29,22 +29,26 @@ _cbmem_init_hooks = .; KEEP(*(.rodata.cbmem_init_hooks)); _ecbmem_init_hooks = .; + RECORD_SIZE(cbmem_init_hooks) #endif . = ALIGN(ARCH_POINTER_ALIGN_SIZE); _rsbe_init_begin = .; KEEP(*(.rsbe_init)); _ersbe_init_begin = .; + RECORD_SIZE(rsbe_init_begin) #if ENV_RAMSTAGE . = ALIGN(ARCH_POINTER_ALIGN_SIZE); _pci_drivers = .; KEEP(*(.rodata.pci_driver)); _epci_drivers = .; + RECORD_SIZE(pci_drivers) . = ALIGN(ARCH_POINTER_ALIGN_SIZE); _cpu_drivers = .; KEEP(*(.rodata.cpu_driver)); _ecpu_drivers = .; + RECORD_SIZE(cpu_drivers) #endif . = ALIGN(ARCH_POINTER_ALIGN_SIZE); @@ -52,6 +56,7 @@ *(.rodata.*); . = ALIGN(ARCH_POINTER_ALIGN_SIZE); _etext = .; + RECORD_SIZE(text) } : to_load #if ENV_RAMSTAGE && (CONFIG(COVERAGE) || CONFIG(ASAN_IN_RAMSTAGE)) @@ -82,6 +87,7 @@ _rmodule_params = .; KEEP(*(.module_parameters)); _ermodule_params = .; + RECORD_SIZE(rmodule_params) #endif *(.data); @@ -92,6 +98,7 @@ #if ENV_ROMSTAGE_OR_BEFORE PROVIDE(_preram_cbmem_console = .); PROVIDE(_epreram_cbmem_console = _preram_cbmem_console); + PROVIDE(_preram_cbmem_console_size = ABSOLUTE(0)); #elif ENV_RAMSTAGE . = ALIGN(ARCH_POINTER_ALIGN_SIZE); _bs_init_begin = .; @@ -99,10 +106,12 @@ LONG(0); LONG(0); _ebs_init_begin = .; + RECORD_SIZE(bs_init_begin) #endif . = ALIGN(ARCH_POINTER_ALIGN_SIZE); _edata = .; + RECORD_SIZE(data) } #endif @@ -116,6 +125,7 @@ *(.sbss.*) . = ALIGN(ARCH_POINTER_ALIGN_SIZE); _ebss = .; + RECORD_SIZE(bss) } #endif @@ -126,6 +136,7 @@ . += (ENV_RMODULE ? __heap_size : CONFIG_HEAP_SIZE); . = ALIGN(ARCH_POINTER_ALIGN_SIZE); _eheap = .; + RECORD_SIZE(heap) } #endif @@ -135,6 +146,7 @@ #endif _eprogram = .; +RECORD_SIZE(program) /* Discard the sections we don't need/want */ |