Author: oxygene Date: 2009-12-01 10:35:19 +0100 (Tue, 01 Dec 2009) New Revision: 4971
Modified: trunk/src/arch/i386/init/ldscript_fallback_cbfs.lb Log: Not all boards cope with automatically sized bootblocks, leading to 4GB images due to the "helpful" 4GB rollover behaviour of ld(1).
Back out r4961, something like this should go in eventually, but more completely tested and working.
Signed-off-by: Patrick Georgi patrick.georgi@coresystems.de Acked-by: Stefan Reinauer stepan@coresystems.de
Modified: trunk/src/arch/i386/init/ldscript_fallback_cbfs.lb =================================================================== --- trunk/src/arch/i386/init/ldscript_fallback_cbfs.lb 2009-12-01 08:15:38 UTC (rev 4970) +++ trunk/src/arch/i386/init/ldscript_fallback_cbfs.lb 2009-12-01 09:35:19 UTC (rev 4971) @@ -40,10 +40,8 @@ _x = .; . = (_x < (CONFIG_ROMBASE - 0x10000 + CONFIG_ROM_IMAGE_SIZE)) ? (CONFIG_ROMBASE - 0x10000 + CONFIG_ROM_IMAGE_SIZE) : _x;
- __my_rom_start = .; - /* This section might be better named .setup */ - .rom _myrom : { + .rom . : { _rom = .; *(.rom.text); *(.rom.data); @@ -56,7 +54,6 @@ }
_lrom = LOADADDR(.rom); - _elrom = LOADADDR(.rom) + SIZEOF(.rom);
/DISCARD/ : { @@ -65,13 +62,4 @@ *(.comment.*) *(.note.*) } - - __my_rom_end = .; - - __my_rom_size = (( ( __my_rom_end - __my_rom_start ) / 256) + 2 ) * 256; - /* Next line gives same output for me as above one but causes - * ld to complain about non constant offset so - __my_rom_size = (( (SIZEOF(.rom) + SIZEOF(.data) + SIZEOF(.text)) / 256 ) + 2 ) * 256; - */ - _myrom = _rom + (0x10000 - __my_rom_size); }