Date: Mon, 06 Mar 2017 12:33:20 -0700 From: Ian Lepore <ian@freebsd.org> To: Bryan Drewery <bdrewery@FreeBSD.org>, rgrimes@freebsd.org Cc: Warner Losh <imp@bsdimp.com>, src-committers <src-committers@freebsd.org>, "svn-src-all@freebsd.org" <svn-src-all@freebsd.org>, "svn-src-head@freebsd.org" <svn-src-head@freebsd.org> Subject: Re: svn commit: r314709 - head Message-ID: <1488828800.18764.44.camel@freebsd.org> In-Reply-To: <d871157c-7ded-4158-2984-92cb8c5dec0b@FreeBSD.org> References: <201703061832.v26IWFw1089542@pdx.rh.CN85.dnsmgr.net> <1488826707.18764.34.camel@freebsd.org> <d871157c-7ded-4158-2984-92cb8c5dec0b@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, 2017-03-06 at 11:13 -0800, Bryan Drewery wrote: > On 3/6/17 10:58 AM, Ian Lepore wrote: > > > > On Mon, 2017-03-06 at 10:32 -0800, Rodney W. Grimes wrote: > > > > > > [ Charset ISO-8859-1 unsupported, converting... ] > > > > > > > > > > > > On Sun, 2017-03-05 at 19:12 -0800, Bryan Drewery wrote: > > > > > > > > > > > > > > > On 3/5/17 3:41 PM, Warner Losh wrote: > > > > > > > > > > > > > > > > > > > > > > > > On Sun, Mar 5, 2017 at 2:16 PM, Bryan Drewery <bdrewery@fre > > > > > > ebsd > > > > > > .org > > > > > > > > > > > > > > > > > > > > > wrote: > > > > > > > > > > > > > > Author: bdrewery > > > > > > > Date: Sun Mar??5 21:16:50 2017 > > > > > > > New Revision: 314709 > > > > > > > URL: https://svnweb.freebsd.org/changeset/base/314709 > > > > > > > > > > > > > > Log: > > > > > > > ? Fix bootstrapping mtree after r313404 for older > > > > > > > systems. > > > > > > > > > > > > > > ? r313404 made libnetbsd require sha384.h from > > > > > > > libmd.??Libmd > > > > > > > added it in > > > > > > > ? r292782.??Update BOOTSTRAPPING to account for this. > > > > > > > > > > > > > > ? Reported by:??bde > > > > > > > ? Reviewed by:??ngie > > > > > > > > > > > > > > Modified: > > > > > > > ? head/Makefile.inc1 > > > > > > > > > > > > > > Modified: head/Makefile.inc1 > > > > > > > ========================================================= > > > > > > > ==== > > > > > > > ==== > > > > > > > ============= > > > > > > > --- head/Makefile.inc1??Sun Mar??5 19:56:20 > > > > > > > 2017????????(r314708) > > > > > > > +++ head/Makefile.inc1??Sun Mar??5 21:16:50 > > > > > > > 2017????????(r314709) > > > > > > > @@ -1618,10 +1618,12 @@ ${_bt}-usr.bin/m4: ${_bt}- > > > > > > > lib/libopenbsd > > > > > > > ?${_bt}-usr.bin/lex: ${_bt}-usr.bin/m4 > > > > > > > ?.endif > > > > > > > > > > > > > > -.if ${BOOTSTRAPPING} < 1000026 > > > > > > > -_nmtree=???????lib/libnetbsd \ > > > > > > I've been trying to document the bootstrapping stuff inline > > > > > > like > > > > > > > > > > > > # r313404 made libnetbsd require libmd > > > > > Definitely.??I forgot about that.??I think my change is > > > > > incomplete > > > > > and > > > > > need to chase down a 2nd failure report.??I'll add the > > > > > comment > > > > > once > > > > > that > > > > > is figured out. > > > > > > > > > I tracked this down to the fact that the prototype > > > > > > > > ? char * MD5FileChunk(const char *, char *, off_t, off_t); > > > > > > > > does not exist in /usr/include/sys/md5.h on older systems. ?I > > > > don't > > > > see > > > > any straightforward way to declare that a header file from the > > > > /usr/include hierarchy is a bootstrap item that needs a newer > > > > version > > > > from the source tree being compiled. ?It looks like such a > > > > header > > > > would > > > > have to go into the obj/.../tmp/legacy/usr/include to get used > > > > in > > > > the > > > > boostrap compile, I just don't see how you get a file installed > > > > there > > > > early enough in bootstrap. > > > One way around this is to use the old concept of /usr/include > > > symlinks > > > into the src tree, not sure if you can still do that or not, but > > > something like > > > (cd /usr/src/include; make install SHARED=symlinks) > > > > > > A bootstrapping regresssion test I use to run was to rm -r > > > /usr/include/* > > > before a buildworld run, that would find these issues so they > > > could > > > be fixed before they become forgotten. > > > > > Making my live 10-stable system's /usr/include have symlinks into a > > 11- > > or 12- source tree is just not an option in any way. The first > > question would be "which source tree" because I have like a dozen > > of > > them, not a single one of them rooted at /usr/src (which is an > > empty > > dir). > > > > This can't be the first time in 30+ years that system header files > > had > > to participate in the process of bootstrapping early build tools, > > but I > > don't see any machinery in Makefile.inc1 for dealing with it. > > > > -- Ian > > > We use some special hacks in some places. Such as most of the > elftoolchain build. It just symlinks the minimal headers it needs > into > its .OBJDIR and uses -I${.OBJDIR} to pick them up. This is done > rather > than the legacy method so that we don't pollute all of the > bootstrapping > with these headers; we really want the system headers for all of > bootstrapping where possible since we are building *current native > system tools*. > > libmd is already violating this by including some source directories > directly, but they should be harmless since they are really just > prototypes for the libmd that is being built. > > > > > CFLAGS+= -I${.CURDIR} -I${SRCTOP}/sys/crypto/sha2 > > CFLAGS+= -I${SRCTOP}/sys/crypto/skein > In the case of the current bootstrap failure, it's probably more than > just this 1 function that is causing problems, but what I'm > suggesting is at > https://people.freebsd.org/~bdrewery/patches/libmd-sys-md5.h.patch > > I've got a build underway with that patch and it's far beyond the point where it was dying (which was almost-immediately before the patch). -- Ian
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1488828800.18764.44.camel>