Fails to build sys/i386/boot2 with gcc 4.9

Warner Losh imp at bsdimp.com
Sun Mar 29 04:37:27 UTC 2015


> On Mar 28, 2015, at 5:33 PM, Dimitry Andric <dim at FreeBSD.org> wrote:
> 
> 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

The 7680  byte limit is a hard limit.

Rewriting in assembler is possible, but just using the 4.2.1-compiled .s file
might be a good place to start.

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


More information about the freebsd-testing mailing list