On 3/6/17 11:17 AM, Bryan Drewery wrote: > On 3/6/17 11:15 AM, 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@freebsd >>>>>>> .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. >> > > buildworld using /usr/include is an intended feature to support > cross-building and running tools in the build that interface with the > current kernel and not the kernel being built.
I go over the various phases of the build and the bootstrapping involved at http://www.bsdcan.org/2016/schedule/events/716.en.html > >>> >>> 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. >> >> >>> -- Ian >> > > -- Regards, Bryan Drewery
signature.asc
Description: OpenPGP digital signature