The ".machine" directive allows changing the machine for which code is being generated. It's equivalent to passing an -mcpu option on the command line.
Although it can be useful, it's generally a bad idea because it adds another way to influence code generation separate from the flags passed via the build system. ie. if we need to build different pieces of code with different flags we should do that via our Makefiles, not using ".machine". However as best as I can tell the ".machine" directive in trampoline_64.S is not necessary at all. It was added in commit 0d97631392c2 ("powerpc: Add purgatory for kexec_file_load() implementation."), which created the file based on the kexec-tools purgatory. It may be/have-been necessary in the kexec-tools version, but we have a completely different build system, and we already pass the desired CPU flags, eg: gcc ... -m64 -Wl,-a64 -mabi=elfv2 -Wa,-maltivec -Wa,-mpower4 -Wa,-many ... arch/powerpc/purgatory/trampoline_64.S So drop the ".machine" directive and rely on the assembler flags. Reported-by: Daniel Axtens <d...@axtens.net> Signed-off-by: Michael Ellerman <m...@ellerman.id.au> --- arch/powerpc/purgatory/trampoline_64.S | 1 - 1 file changed, 1 deletion(-) diff --git a/arch/powerpc/purgatory/trampoline_64.S b/arch/powerpc/purgatory/trampoline_64.S index d956b8a35fd1..b35837c13852 100644 --- a/arch/powerpc/purgatory/trampoline_64.S +++ b/arch/powerpc/purgatory/trampoline_64.S @@ -12,7 +12,6 @@ #include <asm/asm-compat.h> #include <asm/crashdump-ppc64.h> - .machine ppc64 .balign 256 .globl purgatory_start purgatory_start: -- 2.25.1