[PATCH v3 0/4] pass -march= only to compiler

Nick Desaulniers
2022-05-16T21:10:03Z

When both -march= and -Wa,-march= are specified for assembler or
assembler-with-cpp sources, GCC and Clang will prefer the -Wa,-march=
value but Clang will warn that -march= is unused.

warning: argument unused during compilation: '-march=armv6k'
[-Wunused-command-line-argument]

This is the top group of warnings we observe when using clang to
assemble the kernel via `ARCH=arm make LLVM=1`.

Arnd sent a v2 of my previous patch
https://lore.kernel.org/linux-arm-kernel/20210928154143.2106903-14-arnd@kernel.org/
I added yet a few more instances I found since then.

Fixing this will allow us to enable
-Werror=unused-command-line-argument for clang builds.

Nick Desaulniers (4):
ARM: remove lazy evaluation in Makefile
ARM: use .arch directives instead of assembler command line flags
ARM: only use -mtp=cp15 for the compiler
ARM: pass -march= only to compiler

arch/arm/Makefile | 76 ++++++++++++++++-------------
arch/arm/boot/compressed/Makefile | 1 -
arch/arm/common/Makefile | 2 -
arch/arm/common/mcpm_head.S | 2 +
arch/arm/common/vlock.S | 2 +
arch/arm/kernel/Makefile | 2 -
arch/arm/kernel/hyp-stub.S | 2 +
arch/arm/kernel/swp_emulate.c | 1 +
arch/arm/lib/Makefile | 4 --
arch/arm/lib/delay-loop.S | 4 ++
arch/arm/mach-at91/Makefile | 3 --
arch/arm/mach-at91/pm_suspend.S | 4 ++
arch/arm/mach-imx/Makefile | 3 --
arch/arm/mach-imx/headsmp.S | 2 +
arch/arm/mach-imx/resume-imx6.S | 2 +
arch/arm/mach-imx/suspend-imx6.S | 2 +
arch/arm/mach-mvebu/Makefile | 3 --
arch/arm/mach-mvebu/coherency_ll.S | 1 +
arch/arm/mach-mvebu/pmsu.c | 1 +
arch/arm/mach-npcm/Makefile | 2 -
arch/arm/mach-npcm/headsmp.S | 2 +
arch/arm/mach-tegra/Makefile | 2 -
arch/arm/mach-tegra/reset-handler.S | 2 +
arch/arm/mach-tegra/sleep-tegra20.S | 2 +
arch/arm/mach-tegra/sleep-tegra30.S | 2 +
arch/arm/mm/Makefile | 15 ------
arch/arm/mm/abort-ev6.S | 1 +
arch/arm/mm/abort-ev7.S | 1 +
arch/arm/mm/cache-v6.S | 2 +
arch/arm/mm/cache-v7.S | 2 +
arch/arm/mm/cache-v7m.S | 2 +
arch/arm/mm/copypage-feroceon.c | 1 +
arch/arm/mm/proc-v6.S | 2 +
arch/arm/mm/proc-v7-2level.S | 2 +
arch/arm/mm/proc-v7.S | 2 +
arch/arm/mm/tlb-v6.S | 2 +
arch/arm/mm/tlb-v7.S | 2 +
drivers/memory/Makefile | 2 -
drivers/memory/ti-emif-sram-pm.S | 1 +
drivers/soc/bcm/brcmstb/pm/Makefile | 1 -
drivers/soc/bcm/brcmstb/pm/s2-arm.S | 1 +
41 files changed, 94 insertions(+), 74 deletions(-)

base-commit: 0ac824f379fba2c2b17b75fd5ada69cd68c66348
--
2.36.0.550.gb090851708-goog