[TESTING]: one more boot2 shrinking patch
Roman Divacky
rdivacky at freebsd.org
Tue Mar 8 20:52:16 UTC 2011
On Tue, Mar 08, 2011 at 09:19:31PM +0100, Fabian Keil wrote:
> Roman Divacky <rdivacky at freebsd.org> wrote:
>
> > this diet patch
> >
> > http://lev.vlakno.cz/~rdivacky/boot2-final-diet.patch
> >
> > includes these changes:
> >
> > o bunch of variables are turned into uint8_t
> >
> > o initial setting of namep[] in lookup() is removed
> > as it's only overwritten a few lines down
> >
> > o kname is explicitly initialized in main() as BSS
> > in boot2 is not zeroed
>
> Are you saying the previous:
>
> static const char *kname = NULL;
>
> didn't work, or is this the explanation why the
> initialization hasn't simply been removed?
gcc nor clang emits any code to initialize static type foo = 0;
because it's expected that BSS is zeroed, which is not the case
in boot2 so we have to initialize that explicitly
> > o the "fmt" dance in load() is removed
> >
> > o buf in printf() is made static to save space
> >
> >
> > Please test/review this patch. John Baldwin already looked and I booted
> > it so it should be quite safe. I plan to commit this in a few days unless
> > problems are found..
>
> Works for me with gcc from base on amd64.
>
>
> I noticed an unrelated warning about an unused variable, though.
>
> /usr/src/sys/boot/i386/boot2/boot2.c: In function 'load':
> /usr/src/sys/boot/i386/boot2/boot2.c:310: warning: unused variable 'x'
>
> It seems to be left over from:
> http://www.freebsd.org/cgi/cvsweb.cgi/src/sys/boot/i386/boot2/boot2.c.diff?r1=1.91;r2=1.92;f=h
>
> The attached (only compile-tested) patch removes it.
oh, I'll commit that with the rest
thanks for the testing!
More information about the freebsd-current
mailing list