Squeezing out some 70 bytes out of the boot2 loader

Adrian Penisoara ady at freebsd.ady.ro
Sun Jan 20 13:07:09 PST 2008


Hello

  I am trying to hack in some symlink support into the [sys/boot/i386/]boot2
bootloader (for my project [1]) and I seem to fall short of about 69 bytes:

as  -o boot2.o boot2.s
ld -static -N --gc-sections -nostdlib -Ttext 0x2000 -o
boot2.out/build/obj/build/src/sys/boot/i386/boot2/../btx/lib/crt0.o
boot2.o sio.o
objcopy -S -O binary boot2.out boot2.bin
btxld -v -E 0x2000 -f bin -b
/build/obj/build/src/sys/boot/i386/boot2/../btx/btx/btx -l boot2.ldr  -o
boot2.ld -P 1 boot2.bin
kernel: ver=1.01 size=7b0 load=9000 entry=9010 map=16M pgctl=1:1
client: fmt=bin size=1581 text=0 data=0 bss=0 entry=0
output: fmt=bin size=1e45 text=114 data=1d31 org=0 entry=0
-69 bytes available
*** Error code 1

  What can I do to get room for about 70-100 bytes for these changes to make
it into the bootloader ?

[1] I'm trying to get support for /boot being mounted as a separate FS and
as such I would need to have a "self-pointing" symlink (e.g. "boot -> ." )
to easily mask the fact that the boot stuff is now right in the root of that
FS. Fortunately the FORTH loader does support symlinks and I do not get
problems with it. I know that I can use /boot.kernel as a workaround, but
that is not too elegant.

Thanks for your time,
Adrian Penisoara
ady (at) freebsd (dot) ady (dot) ro
ROFUG, EnterpriseBSD project


More information about the freebsd-hackers mailing list