From: Michael Ellerman <patch-notifications@ellerman.id.au>
To: Nathan Chancellor <natechancellor@gmail.com>,
Benjamin Herrenschmidt <benh@kernel.crashing.org>,
Paul Mackerras <paulus@samba.org>
Cc: Nick Desaulniers <ndesaulniers@google.com>,
linux-kernel@vger.kernel.org, clang-built-linux@googlegroups.com,
Nathan Chancellor <natechancellor@gmail.com>,
linuxppc-dev@lists.ozlabs.org, Daniel Axtens <dja@axtens.net>
Subject: Re: [PATCH v5 1/3] powerpc: Don't add -mabi= flags when building with Clang
Date: Tue, 26 Nov 2019 12:13:21 +1100 (AEDT) [thread overview]
Message-ID: <47MQrd1PSrz9sPZ@ozlabs.org> (raw)
In-Reply-To: <20191119045712.39633-2-natechancellor@gmail.com>
On Tue, 2019-11-19 at 04:57:10 UTC, Nathan Chancellor wrote:
> When building pseries_defconfig, building vdso32 errors out:
>
> error: unknown target ABI 'elfv1'
>
> This happens because -m32 in clang changes the target to 32-bit,
> which does not allow the ABI to be changed, as the setABI virtual
> function is not overridden:
>
> https://github.com/llvm/llvm-project/blob/llvmorg-9.0.0/clang/include/clang/Basic/TargetInfo.h#L1073-L1078
>
> https://github.com/llvm/llvm-project/blob/llvmorg-9.0.0/clang/lib/Basic/Targets/PPC.h#L327-L365
>
> Commit 4dc831aa8813 ("powerpc: Fix compiling a BE kernel with a
> powerpc64le toolchain") added these flags to fix building big endian
> kernels with a little endian GCC.
>
> Clang doesn't need -mabi because the target triple controls the default
> value. -mlittle-endian and -mbig-endian manipulate the triple into
> either powerpc64-* or powerpc64le-*, which properly sets the default
> ABI:
>
> https://github.com/llvm/llvm-project/blob/llvmorg-9.0.0/clang/lib/Driver/Driver.cpp#L450-L463
>
> https://github.com/llvm/llvm-project/blob/llvmorg-9.0.0/llvm/lib/Support/Triple.cpp#L1432-L1516
>
> https://github.com/llvm/llvm-project/blob/llvmorg-9.0.0/clang/lib/Basic/Targets/PPC.h#L377-L383
>
> Adding a debug print out in the PPC64TargetInfo constructor after line
> 383 above shows this:
>
> $ echo | ./clang -E --target=powerpc64-linux -mbig-endian -o /dev/null -
> Default ABI: elfv1
>
> $ echo | ./clang -E --target=powerpc64-linux -mlittle-endian -o /dev/null -
> Default ABI: elfv2
>
> $ echo | ./clang -E --target=powerpc64le-linux -mbig-endian -o /dev/null -
> Default ABI: elfv1
>
> $ echo | ./clang -E --target=powerpc64le-linux -mlittle-endian -o /dev/null -
> Default ABI: elfv2
>
> Don't specify -mabi when building with clang to avoid the build error
> with -m32 and not change any code generation.
>
> -mcall-aixdesc is not an implemented flag in clang so it can be
> safely excluded as well, see commit 238abecde8ad ("powerpc: Don't
> use gcc specific options on clang").
>
> pseries_defconfig successfully builds after this patch and
> powernv_defconfig and ppc44x_defconfig don't regress.
>
> Link: https://github.com/ClangBuiltLinux/linux/issues/240
> Reviewed-by: Daniel Axtens <dja@axtens.net>
> Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>
Series applied to powerpc next, thanks.
https://git.kernel.org/powerpc/c/465bfd9c44dea6b55962b5788a23ac87a467c923
cheers
next prev parent reply other threads:[~2019-11-26 1:17 UTC|newest]
Thread overview: 57+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-09-11 18:20 [PATCH v3 0/3] LLVM/Clang fixes for pseries_defconfig Nathan Chancellor
2019-09-11 18:20 ` Nathan Chancellor
2019-09-11 18:20 ` [PATCH v3 1/3] powerpc: Don't add -mabi= flags when building with Clang Nathan Chancellor
2019-09-11 18:20 ` Nathan Chancellor
2019-09-11 18:20 ` [PATCH v3 2/3] powerpc: Avoid clang warnings around setjmp and longjmp Nathan Chancellor
2019-09-11 18:20 ` Nathan Chancellor
2019-09-11 20:55 ` Nick Desaulniers
2019-09-11 20:55 ` Nick Desaulniers
2019-09-11 18:20 ` [PATCH v3 3/3] powerpc/prom_init: Use -ffreestanding to avoid a reference to bcmp Nathan Chancellor
2019-09-11 18:20 ` Nathan Chancellor
2019-09-11 21:01 ` Nick Desaulniers
2019-09-11 21:01 ` Nick Desaulniers
2019-09-12 5:43 ` Nathan Chancellor
2019-09-12 5:43 ` Nathan Chancellor
2019-09-12 17:30 ` Nick Desaulniers
2019-09-12 17:30 ` Nick Desaulniers
2019-10-14 2:50 ` [PATCH v4 0/3] LLVM/Clang fixes for pseries_defconfig Nathan Chancellor
2019-10-14 2:50 ` Nathan Chancellor
2019-10-14 2:50 ` [PATCH v4 1/3] powerpc: Don't add -mabi= flags when building with Clang Nathan Chancellor
2019-10-14 2:50 ` Nathan Chancellor
2019-10-14 2:51 ` [PATCH v4 2/3] powerpc: Avoid clang warnings around setjmp and longjmp Nathan Chancellor
2019-10-14 2:51 ` Nathan Chancellor
2019-10-14 2:51 ` [PATCH v4 3/3] powerpc/prom_init: Use -ffreestanding to avoid a reference to bcmp Nathan Chancellor
2019-10-14 2:51 ` Nathan Chancellor
2019-10-14 9:35 ` Segher Boessenkool
2019-10-14 9:35 ` Segher Boessenkool
2019-10-14 15:56 ` Nick Desaulniers
2019-10-14 15:56 ` Nick Desaulniers
2019-10-14 19:11 ` Segher Boessenkool
2019-10-14 19:11 ` Segher Boessenkool
2019-10-18 19:00 ` Nathan Chancellor
2019-10-18 19:00 ` Nathan Chancellor
2019-10-18 20:02 ` Segher Boessenkool
2019-10-18 20:02 ` Segher Boessenkool
2019-10-22 5:15 ` Nathan Chancellor
2019-10-22 5:15 ` Nathan Chancellor
2019-10-22 8:57 ` Segher Boessenkool
2019-10-22 8:57 ` Segher Boessenkool
2019-10-30 4:12 ` Nathan Chancellor
2019-10-30 4:12 ` Nathan Chancellor
2019-10-14 16:03 ` [PATCH v4 0/3] LLVM/Clang fixes for pseries_defconfig Nick Desaulniers
2019-10-14 16:03 ` Nick Desaulniers
2019-11-19 4:57 ` [PATCH v5 0/3] LLVM/Clang fixes for a few defconfigs Nathan Chancellor
2019-11-19 4:57 ` Nathan Chancellor
2019-11-19 4:57 ` [PATCH v5 1/3] powerpc: Don't add -mabi= flags when building with Clang Nathan Chancellor
2019-11-19 4:57 ` Nathan Chancellor
2019-11-26 1:13 ` Michael Ellerman [this message]
2019-11-19 4:57 ` [PATCH v5 2/3] powerpc: Avoid clang warnings around setjmp and longjmp Nathan Chancellor
2019-11-19 4:57 ` Nathan Chancellor
2019-11-19 4:57 ` [PATCH v5 3/3] powerpc/prom_init: Use -ffreestanding to avoid a reference to bcmp Nathan Chancellor
2019-11-19 4:57 ` Nathan Chancellor
2019-11-25 20:15 ` [PATCH v5 0/3] LLVM/Clang fixes for a few defconfigs Nick Desaulniers
2019-11-25 20:15 ` Nick Desaulniers
2019-11-28 4:59 ` Michael Ellerman
2019-11-28 4:59 ` Michael Ellerman
2019-11-28 7:45 ` Nathan Chancellor
2019-11-28 7:45 ` Nathan Chancellor
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=47MQrd1PSrz9sPZ@ozlabs.org \
--to=patch-notifications@ellerman.id.au \
--cc=benh@kernel.crashing.org \
--cc=clang-built-linux@googlegroups.com \
--cc=dja@axtens.net \
--cc=linux-kernel@vger.kernel.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=natechancellor@gmail.com \
--cc=ndesaulniers@google.com \
--cc=paulus@samba.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.