FYI
With gcc 3.4 linuxbios_rom.rom spare 1400 bytes.
With gcc 3.2.2 in RH9 ./nrv2b e linuxbios_ram.bin linuxbios_ram.nrv2b input/output = 76396/29877 = 2.557 cp linuxbios_ram.nrv2b linuxbios_ram.rom echo "INCLUDE ldoptions" > ldscript.ld ; for file in /home/yhlu/xx/xx/freebios2/src/arch/i386/init/ldscript.lb /home/yhlu/xx/xx/freebios2/src//cpu/x86/16bit/entry16.lds /home/yhlu/xx/xx/freebios2/src//cpu/x86/32bit/entry32.lds /home/yhlu/xx/xx/freebios2/src//cpu/x86/16bit/reset16.lds /home/yhlu/xx/xx/freebios2/src//arch/i386/lib/id.lds /home/yhlu/xx/xx/freebios2/src//arch/i386/lib/failover.lds ; do echo "INCLUDE $file" >> ldscript.ld ; done /usr/bin/gcc -nostdlib -nostartfiles -static -o linuxbios -T ldscript.ld crt0.o nm -n linuxbios | sort > linuxbios.map objcopy -O binary linuxbios linuxbios.strip /usr/bin/gcc -o buildrom /home/yhlu/xx/xx/freebios2/util/buildrom/buildrom.c ./buildrom linuxbios.strip linuxbios.rom ../../../payloads/tg3--eepro100--e1000--filo_hda2.zelf 0x10000 0x20000 linuxbios image is 66272 bytes; only 65536 allowed Linuxbios input file larger than allowed size!
With gcc 3.4 ./nrv2b e linuxbios_ram.bin linuxbios_ram.nrv2b input/output = 74572/28488 = 2.618 cp linuxbios_ram.nrv2b linuxbios_ram.rom gcc -nostdlib -nostartfiles -static -o linuxbios -T ldscript.ld crt0.o nm -n linuxbios | sort > linuxbios.map objcopy -O binary linuxbios linuxbios.strip ./buildrom linuxbios.strip linuxbios.rom ../../../payloads/tg3--eepro100--e1000--filo_hda2.zelf 0x10000 0x20000