On 3/6/17 11:32 AM, Ian Lepore wrote: > 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@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. >
There is also a lot of demand for building from Linux or OSX. That will require additional bootstrapping. Either way, we'll never get away from bootstrapping, and the cost of keeping current-2 support is pretty low. -- Regards, Bryan Drewery
signature.asc
Description: OpenPGP digital signature