svn commit: r314709 - head

Ian Lepore ian at freebsd.org
Mon Mar 6 19:32:18 UTC 2017


On Mon, 2017-03-06 at 11:15 -0800, Rodney W. Grimes wrote:
> [ Charset ISO-8859-1 unsupported, converting... ]
> > 
> > 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 at 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).
> I dont know that the support of CUrrent -2 building -current with
> a bootstraping include issue is ever going to be workable.  You
> could try to build a proper include tree someplace to use, this
> can be done with
> (cd; usr/src/include; make install DESTDIR=/my/new/tree)  This
> well not touch your /usr/include, but give you a proper include tree,
> now the work is to get buildworld to use that include tree.
> 
> If buildworld has degnerated to using stuff out of /usr/include
> that also needs to be fixed ASAP.
> 
> > 
> > 
> > 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.
> Happens often, hence why I had that regression test.   But
> bootstrapping
> on Current-2 has never been supported and probably never well be
> supported.

I'm aware that we officially only support building from current-1, but
we've worked hard to do much better than that for many years.

The only time I can think of it breaking in the last 10-12 years was
late in the 10-current cycle we reached a point where I could no longer
build 10-current on an 8-stable system.  That was a special case due to
the cutover from gcc to clang and all the related changes.  (Even with
that, I had it "almost working" but decided not to finish it and commit
all the changes involved because they would have just gotten in the way
of other modernization going on in the build system).

The reality is, a lot of people rely on building current from current-2 
systems for a variety of reasons, and it's worth putting some effort
into supporting that.

-- Ian



More information about the svn-src-head mailing list