Re: linux-next: Tree for Jun 21

From: Chris Metcalf
Date: Wed Jun 22 2016 - 16:43:37 EST


On 6/21/2016 5:14 PM, Arnd Bergmann wrote:
On Tuesday, June 21, 2016 8:50:48 PM CEST Peter Zijlstra wrote:
So what's your build process for the cross tools, by the way? I'm assuming
you're not doing a total bootstrap cross-tool build since you'd need minimal
kernel headers (linux/errno.h or whatever) in that case. I assume you're using
the host headers to build the cross tool?

So I'm a little confused how the other kernel headers are working out for you,
e.g. <arch/icache.h> is referenced when building the tilegx libgcc.
I've no idea; I use this thing:

git://git.infradead.org/users/segher/buildall.git

Although I've got some local modifications, none are to the actual
toolchain building part (although I suppose I should send segher a
patch).

I have binutils-gdb.git and gcc.bit checkouts and point the buildall
config to that (both are on latest stable branches binutils-2_26-branch
and gcc-6-branch resp.). And I point the kernel path to my current
hacked up tree.

I don't really rebuild the entire toolchains often, mostly only when I
really need a new GCC or its getting really old (like I used 5.3.0 for a
long while).
I think the kernel headers are only needed for building glibc, which
buildall.git doesn't use: it only does the initial stage of creating
a cross-toolchain.

It turns out there were a few places where we were #include'ing Linux
headers in the gcc build (asm/unistd.h, arch/icache.h, arch/spr_def.h).
I patched gcc to provide inline copies of what was needed (pretty simple
stuff and won't ever change) and asked our lead compiler guy to upstream
it back up to gcc, so using buildall.git should get easier for tilepro/tilegx.

--
Chris Metcalf, Mellanox Technologies
http://www.mellanox.com