> On Mar 28, 2015, at 5:33 PM, Dimitry Andric <d...@freebsd.org> wrote: > > On 29 Mar 2015, at 00:05, Craig Rodrigues <rodr...@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
signature.asc
Description: Message signed with OpenPGP using GPGMail