This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/82641] Unable to enable crc32 for a certain function with target attribute on ARM (aarch32)
- From: "arnd at linaro dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Tue, 30 Jan 2018 11:13:43 +0000
- Subject: [Bug target/82641] Unable to enable crc32 for a certain function with target attribute on ARM (aarch32)
- Auto-submitted: auto-generated
- References: <bug-82641-4@http.gcc.gnu.org/bugzilla/>
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82641
Arnd Bergmann <arnd at linaro dot org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |arnd at linaro dot org
--- Comment #14 from Arnd Bergmann <arnd at linaro dot org> ---
It looks like r255468 broke compilation of a couple of files in the Linux
kernel,
which use a top-level statement like
linux/arch/arm/kvm/hyp/banked-sr.c:
__asm__(".arch_extension virt");
linux/arch/arm/kernel/xscale-cp0.c
asm(" .arch armv5te\n");
to allow compilation for a target other than the one specified by with -march=
to the compiler.
I tried using
#if GCC_VERSION >= 800000
#pragma GCC target("arch=armv5te")
#else
asm(" .arch armv5te\n");
#endif
but that results in a build failure:
/git/arm-soc/arch/arm/kernel/xscale-cp0.c:21: warning: "__ARM_ARCH" redefined
<built-in>: note: this is the location of the previous definition
/git/arm-soc/arch/arm/kernel/xscale-cp0.c:21: warning: "__ARM_FEATURE_COPROC"
redefined
and presumably would lead to the while file being built for armv5te, possibly
generating instructions that may be invalid for armv4 or armv4t outside of the
inline assembly that is known to be safe.