svn commit: r314709 - head

Bryan Drewery bdrewery at FreeBSD.org
Mon Mar 6 19:13:52 UTC 2017


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


-- 
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-all/attachments/20170306/d4ca3b7f/attachment.sig>


More information about the svn-src-all mailing list