Re: Building with external toolchain was broken 6 months ago with r255187

From: Warner Losh <imp_at_bsdimp.com>
Date: Thu, 20 Mar 2014 14:16:08 -0600
On Mar 20, 2014, at 12:24 PM, John-Mark Gurney <jmg_at_funkthat.com> wrote:

> Warner Losh wrote this message on Thu, Mar 20, 2014 at 11:30 -0600:
>> 
>> On Mar 20, 2014, at 8:25 AM, David Chisnall <theraven_at_FreeBSD.org> wrote:
>> 
>>> On 20 Mar 2014, at 14:08, John Baldwin <jhb_at_freebsd.org> wrote:
>>> 
>>>> No, the compiler should provide a working "wmmintrin.h" header in one of
>>>> its built-in paths if it supports the AES instructions.  This is akin to
>>>> saying that code that uses "stdio.h" should use -I/usr/src/include.
>>> 
>>> It does, however our build system then explicitly says to the compiler 'don't use your built-it paths because they may contain declarations that contradict the FreeBSD ones' by means of the sysroot argument.  When not using an external toolchain, we put the compiler's internal headers inside the sysroot.
>> 
>> Sounds like we?re building the sysroot wrong then.
> 
> I'm not familar w/ cross tools, are cross tools suppose to "just work",
> or do you still require building kernel-toolchain?  The wiki doesn't
> talk about buildkernel...  If it's still required to build
> kernel-toolchain before buildkernel, one option is to remove the
> exclusion of the _includes target from kernel-toolchain, though _includes
> doesn't appear to install the header...  It looks like it never
> goes into lib/clang to install them, though I'm not sure if it is suppose
> to or not..  If you use COMPILER_TYPE=gcc, it doesn't go into the proper
> gcc subdir to install them either…

I’m saying that whatever is building the sysroot is building it wrong. I haven’t looked
at the details enough to know where the fault lies. If the files aren’t there, that’s a bug
and adding hacks for clang is not the right way to fix the bug.

> In investigating this, it looks like we might have a make rule conflict
> in usr.sbin/bsdconfig...  It has a subdir includes, but bsd.subdir.mk
> also defines a rule includes (for building inclues) which results in
> this:
> make[4]: "/usr/src/share/mk/bsd.subdir.mk" line 85: warning: duplicate script for target "includes" ignored
> make[4]: "/usr/src/share/mk/bsd.subdir.mk" line 69: warning: using previous script for "includes" defined here

That’s likely an orthogonal issue…

Warner
Received on Thu Mar 20 2014 - 19:16:11 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:47 UTC