Re: [PATCH] compiler-gcc: get back Clang build

From: Joe Perches
Date: Wed Aug 22 2018 - 16:50:43 EST


On Wed, 2018-08-22 at 11:31 -0700, Nick Desaulniers wrote:
> On Tue, Aug 21, 2018 at 9:32 PM Dominique Martinet
> <asmadeus@xxxxxxxxxxxxx> wrote:
> >
> > Joe Perches wrote on Tue, Aug 21, 2018:
> > > On Wed, 2018-08-22 at 06:16 +0200, Dominique Martinet wrote:
> > > > I think that could work, but at the point making a separate
> > > > compiler-common.h and not including compiler-gcc.h for clang sounds
> > > > better to me... More importantly here, either solution sound complex
> > > > enough to require more than a few days and proper testing for all archs
> > > > etc when compared to the partial revert we have here.
> > >
> > > The immediate need for a partial revert seems unnecessary as
> > > clang hasn't really worked for a couple releases now.
> >
> > Sorry for repeating myself, clang is used by bcc for compiling BPF
> > programs (e.g. bpf_module_create_c_from_string() or any similar function
> > will use the clang libs to compile the bpf program with linux headers),
> > and this has always been working because it's not using our makefiles.
> >
> > This broke today in master and I only joined this thread after looking
> > at why the build started failing today and noticing this patch, it
> > definitely hasn't been broken for two releases, or I wouldn't be here
> > with this timing :)
> >
> >
> > > The separate compiler file changes are much more sensible,
> > > even if it takes a few days.
> >
> > A few days are fine, but I think some form of fix in 4.19-rc1 would be
> > good.
> >
> > I'll stop taking your time now, but I think you are/were underestimating
> > how many people use clang with the linux kernel headers indirectly.
> > BPF is a well-used tool :)
>
> Hi Dominique,
> I'm currently testing a fix in
> https://github.com/ClangBuiltLinux/linux/commit/1f89ae7622c26b8131f42f3a362d6ef41b88a595,
> can you please share with me your steps to test/verify that the patch
> fixes the issue for eBPF? I'll go talk to a co-worker who know more
> about eBPF, but I've not yet done anything with it.

A mild suggestion about the patch would be to break it up into
2 patches to improve how people read and review them.

1 include/linux/compiler-*
2 everything else

Yes, some kernel configs might not build properly between 1 and 2
but that likely doesn't matter as those configs probably don't
build before 1 either.

Perhaps the test in arch/arm/kernel/asm-offsets.c for incompatible
gcc compiler versions from 4.8.0 to 4.8.2 should be moved to
compiler-gcc.h.

> Also, does anyone know who I should talk to about ICC testing?

No clue