Re: [RFC PATCH v1 2/3] powerpc: Mark all .S files invalid for objtool
From: Naveen N Rao <naveen@kernel.org>
Date: 2023-06-20 06:06:21
Also in:
lkml
Subsystem:
kernel build + files below scripts/ (unless maintained elsewhere), the rest · Maintainers:
Nathan Chancellor, Nicolas Schier, Linus Torvalds
Christophe Leroy wrote:
A lot of work is required in .S files in order to get them ready
for objtool checks.
For the time being, exclude them from the checks.
This is done with the script below:
#!/bin/sh
DIRS=`find arch/powerpc -name "*.S" -exec dirname {} \; | sort | uniq`
for d in $DIRS
do
pushd $d
echo >> Makefile
for f in *.S
do
echo "OBJECT_FILES_NON_STANDARD_$f := y" | sed s/"\.S"/".o"/g
done >> Makefile
popd
done
Signed-off-by: Christophe Leroy <redacted>
---
arch/powerpc/boot/Makefile | 17 +++++++++
arch/powerpc/crypto/Makefile | 13 +++++++
arch/powerpc/kernel/Makefile | 44 ++++++++++++++++++++++
arch/powerpc/kernel/trace/Makefile | 4 ++
arch/powerpc/kernel/vdso/Makefile | 11 ++++++
arch/powerpc/kexec/Makefile | 2 +
arch/powerpc/kvm/Makefile | 13 +++++++
arch/powerpc/lib/Makefile | 25 ++++++++++++
arch/powerpc/mm/book3s32/Makefile | 3 ++
arch/powerpc/mm/nohash/Makefile | 3 ++
arch/powerpc/perf/Makefile | 2 +
arch/powerpc/platforms/44x/Makefile | 2 +
arch/powerpc/platforms/52xx/Makefile | 3 ++
arch/powerpc/platforms/83xx/Makefile | 2 +
arch/powerpc/platforms/cell/spufs/Makefile | 3 ++
arch/powerpc/platforms/pasemi/Makefile | 2 +
arch/powerpc/platforms/powermac/Makefile | 3 ++
arch/powerpc/platforms/powernv/Makefile | 3 ++
arch/powerpc/platforms/ps3/Makefile | 2 +
arch/powerpc/platforms/pseries/Makefile | 2 +
arch/powerpc/purgatory/Makefile | 3 ++
arch/powerpc/sysdev/Makefile | 3 ++
arch/powerpc/xmon/Makefile | 3 ++
23 files changed, 168 insertions(+)I think it might be better to have a config option so that architectures can opt-in to skip objtool on asm files. We can then do:
diff --git a/scripts/Makefile.build b/scripts/Makefile.build
index 9f94fc83f08652..878027cf4faf37 100644
--- a/scripts/Makefile.build
+++ b/scripts/Makefile.build@@ -359,7 +359,11 @@ $(obj)/%.s: $(src)/%.S FORCE $(call if_changed_dep,cpp_s_S) quiet_cmd_as_o_S = AS $(quiet_modtag) $@ +ifndef CONFIG_ARCH_OBJTOOL_SKIP_ASM cmd_as_o_S = $(CC) $(a_flags) -c -o $@ $< $(cmd_objtool) +else + cmd_as_o_S = $(CC) $(a_flags) -c -o $@ $< +endif ifdef CONFIG_ASM_MODVERSIONS - Naveen