[llvmlinux] clang fails on linux-next since commit 8bf705d13039
mark.rutland at arm.com
Mon Jul 30 08:21:16 UTC 2018
On Sun, Jul 29, 2018 at 08:12:00PM +0200, Sedat Dilek wrote:
> [ TO Mark Rutland ]
> I was able to build a Linux v4.18-rc6 with tip.git#locking/core  on
> top of it here on Debian/buster AMD64.
> The patch of interest is ...
> df79ed2c0643 locking/atomics: Simplify cmpxchg() instrumentation
> ...and some more locking/atomics[/x86] may be interesting.
> I had also to apply an asm-goto fix to reduce the number of warnings
> when building with clang-7 (version
> 7.0.0-svn337957-1~exp1+0~20180725200907.1908~1.gbpcccb1b (trunk)).
Just to be clear, clang 7.0.0 has not been released yet, and this is a
trunk build of clang, right?
Do any released versions of clang (e.g. 6.0.1) build a working kernel?
> CONFIG_DRM_AMDGPU=m is BROKEN and a known issue .
> I had to hack my fakeroot-sysv binary to workaround a fatal build-stop
> by commenting the part "nested operation not yet supported" when using
> bindeb-pkg make-target.
Does upstream build at all with clang, or are you always having to apply
a number of modifications?
Which config are you using?
> The kernel does ***not boot*** on bare metal.
Ok. Does the prior commit boot?
> More details see  and  for the clang-side.
It's not clear to me how these relate to the patch in question. AFAICT,
those are build-time errors, but you say that the kernel doesn't boot
(which implies it built).
Are [4,5] relevant to this commit, or to the (unrelated) issue ?
My patch removes the switch, so this doesn't look like the same issue.
> - Sedat -
>  https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git/log/?h=locking/core
>  https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git/commit/?h=locking/core&id=df79ed2c064363cdc7d2d896923c1885d4e30520
>  https://lists.freedesktop.org/archives/amd-gfx/2018-July/024634.html
>  https://github.com/ClangBuiltLinux/linux/issues/3
>  https://bugs.llvm.org/show_bug.cgi?id=33587
> From 5c3485197eab808768271d72e188ad11b6fcecd4 Mon Sep 17 00:00:00 2001
> From: Sedat Dilek <sedat.dilek at credativ.de>
> Date: Fri, 8 Jun 2018 18:23:26 +0200
> Subject: [PATCH] x86: Warn clang does not support asm-goto
> Signed-off-by: Sedat Dilek <sedat.dilek at credativ.de>
> arch/x86/Makefile | 2 +-
> arch/x86/include/asm/cpufeature.h | 9 +--------
> 2 files changed, 2 insertions(+), 9 deletions(-)
> diff --git a/arch/x86/Makefile b/arch/x86/Makefile
> index a08e82856563..6042f6f5a1be 100644
> --- a/arch/x86/Makefile
> +++ b/arch/x86/Makefile
> @@ -181,7 +181,7 @@ ifdef CONFIG_FUNCTION_GRAPH_TRACER
> ifndef CC_HAVE_ASM_GOTO
> - $(error Compiler lacks asm-goto support.)
> + $(warning Compiler lacks asm-goto support.)
> diff --git a/arch/x86/include/asm/cpufeature.h b/arch/x86/include/asm/cpufeature.h
> index aced6c9290d6..79177f0efdf1 100644
> --- a/arch/x86/include/asm/cpufeature.h
> +++ b/arch/x86/include/asm/cpufeature.h
> @@ -140,16 +140,9 @@ extern void clear_cpu_cap(struct cpuinfo_x86 *c, unsigned int bit);
> #define setup_force_cpu_bug(bit) setup_force_cpu_cap(bit)
> +/* Clang does not support asm-goto (see LLVM bug #9295). */
> #if defined(__clang__) && !defined(CC_HAVE_ASM_GOTO)
> - * Workaround for the sake of BPF compilation which utilizes kernel
> - * headers, but clang does not support ASM GOTO and fails the build.
> - */
> -#ifndef __BPF_TRACING__
> -#warning "Compiler lacks ASM_GOTO support. Add -D __BPF_TRACING__ to your compiler arguments"
> #define static_cpu_has(bit) boot_cpu_has(bit)
More information about the LLVMLinux