https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84129
Bug ID: 84129 Summary: GCC on AArch32 no longer compiles files which change architectures using in-line assembly. Product: gcc Version: 8.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: tnfchris at gcc dot gnu.org CC: arnd at linaro dot org Target Milestone: --- Target: arm*-*-* Commit r255468 broke compilation on Arm when in-line assembly is used to switch architectures: asm(" .arch armv5te\n"); void cpu_has_iwmmxt(void) { int lo; int hi; __asm__ __volatile__ ( "mcrr p0, 0, %2, %3, c0\n" : "=r" (lo), "=r" (hi) : "r" (0), "r" (0x100)); } used to work and now doesn't. This breaks the Linux kernel compilation. Using the new approach instead of in-line assembly #pragma GCC target("arch=armv5te") results in a cpp warning being emitted when the architecture is changed.