Fails to build sys/i386/boot2 with gcc 4.9

Dimitry Andric dim at FreeBSD.org
Sat Mar 28 23:34:08 UTC 2015


On 29 Mar 2015, at 00:05, Craig Rodrigues <rodrigc at FreeBSD.org> wrote:
> 
> To work around the problems build rescue, this time I used a build host
> running FreeBSD-CURRENT at svn revision r280353
> 
> I took this patch for libc++ and applied it to my tree:
> 
> http://reviews.llvm.org/D8461

I've only got one minor remark left on that fix, which is that it
doesn't work for gcc 4.7.  Once we either say that version of gcc is
just buggy and can't be helped, or have some other way of fixing the
original problem, I'll import it.



> I used this script to build with gcc 4.9:
> 
> https://github.com/freebsd/freebsd-ci/blob/master/scripts/build/cross-build.sh
> 
> Buildling sys/i386/boot2 failed:
...
> output: fmt=bin size=21ef text=200 data=1fef org=0 entry=0
> -1007 bytes available
> *** Error code 1

Oof, this is going to be hard to fix.  For some reason, boot2 is one of
those programs that keeps getting worse (i.e. larger) with *each* new
compiler version, be it gcc or clang!

The last few times when we imported a new clang version, we had to jump
through several hoops, and attempted to shrink the code again with
various cleanups.  Even then, we don't have a lot of headroom.

If it is now also becoming a problem with gcc 4.9, we should really
start looking for a more permanent solution, e.g.:
* Getting rid of the 7680 byte limit (seems to be impossible?)
* Rewrite most of (or all of) boot2 in assembly

-Dimitry

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 194 bytes
Desc: Message signed with OpenPGP using GPGMail
URL: <http://lists.freebsd.org/pipermail/freebsd-testing/attachments/20150329/085f7ab0/attachment.sig>


More information about the freebsd-testing mailing list