CCVER=gcc46: Adjust Makefile so boot2 remains < 7.5kb
authorJohn Marino <draco@marino.st>
Sat, 4 Feb 2012 17:27:41 +0000 (18:27 +0100)
committerJohn Marino <draco@marino.st>
Sat, 4 Feb 2012 19:44:47 +0000 (20:44 +0100)
commit64005844ae3d5bad9607c2bdcbdf3ec627bc70bc
tree18459ca6cb1444b9c91a1516cde48a9c5554569b
parentb6a97bf5855743979f9e4f93cdce9831b839c045
CCVER=gcc46: Adjust Makefile so boot2 remains < 7.5kb

A big sticking point with getting gcc46 to successfully buildworld was
getting boot2 to come in at 7680 bytes or less.  Unmodified it was
weighing in 784 bytes too much.  Every applying several byte-reducing
changes to it from FreeBSD only knocked off about 380 bytes.

Comparing the assembly dumps between versions built by the base
compiler and gcc46 didn't reveal that much, but using the readelf
utility on both did.  GCC 4.6 was embedding the .eh_frame section
to the object file generated from boot2.c which was adding over 1900
bytes to it.

After adding three command line switches to the makefile, the
exception handler section is prohibited from building.  There are
4968 bytes still available, down from 4988 bytes seen with the base
compiler.  The updates from FreeBSD can be applied later to free up
more memory but for now it's not required.
sys/boot/pc32/boot2/Makefile