svn commit: r314709 - head

Bryan Drewery bdrewery at FreeBSD.org
Mon Mar 6 19:35:14 UTC 2017


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 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.
> 


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

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 496 bytes
Desc: OpenPGP digital signature
URL: <http://lists.freebsd.org/pipermail/svn-src-head/attachments/20170306/0b2ba15b/attachment.sig>


More information about the svn-src-head mailing list