From: Kees Cook <kees@kernel.org>
To: York Jasper Niebuhr <yjn@yjn-systems.com>
Cc: Kees Cook <kees@kernel.org>, Ard Biesheuvel <ardb@kernel.org>,
franzen@sec.in.tum.de, linux-hardening@vger.kernel.org
Subject: [PATCH 3/3] gcc-plugins: pinpoint: move to subdirectory
Date: Wed, 2 Sep 2026 16:33:43 -0700 [thread overview]
Message-ID: <20260902233349.1996922-3-kees@kernel.org> (raw)
In-Reply-To: <20260902233338.i.375-kees@kernel.org>
Pinpoint adds 35 files directly to scripts/gcc-plugins/, a directory
shared with the other plugins, using generic names such as serialize.c,
passes.h, layout_hash.c and target_registry.c, plus twelve safe-*.h
wrappers. Move them into scripts/gcc-plugins/pinpoint/ so they no longer
crowd the shared namespace, matching how the rest of the series is laid
out (kernel/spslr/, samples/spslr/tasklist/).
Build tested ARCH=x86_64 defconfig+CONFIG_SPSLR=y with the patched
GCC 16.1.0 / GAS 2.46.1 toolchain, using O= (out-of-tree). Boot tested
under QEMU to a busybox userspace: two randomized boots and one
"nospslr" control all reach userspace and complete a task_struct
exercise (ps, /proc/self/{stat,status}, 200 fork+execs, signals, pipes,
timers) with zero oops/BUG/WARNING.
Assisted-by: Claude:claude-opus-5[1m]
Signed-off-by: Kees Cook <kees@kernel.org>
---
scripts/gcc-plugins/Makefile | 32 +++++++++----------
.../{ => pinpoint}/asm_offset_pass.c | 0
.../{ => pinpoint}/dpin_registry.c | 0
.../{ => pinpoint}/dpin_registry.h | 0
.../{ => pinpoint}/ipin_registry.c | 0
.../{ => pinpoint}/ipin_registry.h | 0
.../gcc-plugins/{ => pinpoint}/layout_hash.c | 0
.../gcc-plugins/{ => pinpoint}/layout_hash.h | 0
.../{ => pinpoint}/on_finish_decl.c | 0
.../{ => pinpoint}/on_finish_type.c | 0
.../{ => pinpoint}/on_finish_unit.c | 0
.../on_preserve_component_ref.c | 0
.../{ => pinpoint}/on_register_attributes.c | 0
.../{ => pinpoint}/on_start_unit.c | 0
scripts/gcc-plugins/{ => pinpoint}/passes.h | 0
scripts/gcc-plugins/{ => pinpoint}/pinpoint.c | 0
scripts/gcc-plugins/{ => pinpoint}/pinpoint.h | 0
.../rtl_ipin_survival_scan_pass.c | 0
.../gcc-plugins/{ => pinpoint}/safe-attribs.h | 0
.../{ => pinpoint}/safe-diagnostic.h | 0
.../{ => pinpoint}/safe-gcc-plugin.h | 0
scripts/gcc-plugins/{ => pinpoint}/safe-ggc.h | 0
.../gcc-plugins/{ => pinpoint}/safe-gimple.h | 0
.../gcc-plugins/{ => pinpoint}/safe-input.h | 0
.../{ => pinpoint}/safe-langhooks.h | 0
scripts/gcc-plugins/{ => pinpoint}/safe-md5.h | 0
.../gcc-plugins/{ => pinpoint}/safe-output.h | 0
.../{ => pinpoint}/safe-plugin-version.h | 0
scripts/gcc-plugins/{ => pinpoint}/safe-rtl.h | 0
.../gcc-plugins/{ => pinpoint}/safe-tree.h | 0
.../{ => pinpoint}/separate_offset_pass.c | 0
.../gcc-plugins/{ => pinpoint}/serialize.c | 0
.../gcc-plugins/{ => pinpoint}/serialize.h | 0
.../{ => pinpoint}/target_hash_builtin_pass.c | 0
.../{ => pinpoint}/target_registry.c | 0
.../{ => pinpoint}/target_registry.h | 0
36 files changed, 16 insertions(+), 16 deletions(-)
rename scripts/gcc-plugins/{ => pinpoint}/asm_offset_pass.c (100%)
rename scripts/gcc-plugins/{ => pinpoint}/dpin_registry.c (100%)
rename scripts/gcc-plugins/{ => pinpoint}/dpin_registry.h (100%)
rename scripts/gcc-plugins/{ => pinpoint}/ipin_registry.c (100%)
rename scripts/gcc-plugins/{ => pinpoint}/ipin_registry.h (100%)
rename scripts/gcc-plugins/{ => pinpoint}/layout_hash.c (100%)
rename scripts/gcc-plugins/{ => pinpoint}/layout_hash.h (100%)
rename scripts/gcc-plugins/{ => pinpoint}/on_finish_decl.c (100%)
rename scripts/gcc-plugins/{ => pinpoint}/on_finish_type.c (100%)
rename scripts/gcc-plugins/{ => pinpoint}/on_finish_unit.c (100%)
rename scripts/gcc-plugins/{ => pinpoint}/on_preserve_component_ref.c (100%)
rename scripts/gcc-plugins/{ => pinpoint}/on_register_attributes.c (100%)
rename scripts/gcc-plugins/{ => pinpoint}/on_start_unit.c (100%)
rename scripts/gcc-plugins/{ => pinpoint}/passes.h (100%)
rename scripts/gcc-plugins/{ => pinpoint}/pinpoint.c (100%)
rename scripts/gcc-plugins/{ => pinpoint}/pinpoint.h (100%)
rename scripts/gcc-plugins/{ => pinpoint}/rtl_ipin_survival_scan_pass.c (100%)
rename scripts/gcc-plugins/{ => pinpoint}/safe-attribs.h (100%)
rename scripts/gcc-plugins/{ => pinpoint}/safe-diagnostic.h (100%)
rename scripts/gcc-plugins/{ => pinpoint}/safe-gcc-plugin.h (100%)
rename scripts/gcc-plugins/{ => pinpoint}/safe-ggc.h (100%)
rename scripts/gcc-plugins/{ => pinpoint}/safe-gimple.h (100%)
rename scripts/gcc-plugins/{ => pinpoint}/safe-input.h (100%)
rename scripts/gcc-plugins/{ => pinpoint}/safe-langhooks.h (100%)
rename scripts/gcc-plugins/{ => pinpoint}/safe-md5.h (100%)
rename scripts/gcc-plugins/{ => pinpoint}/safe-output.h (100%)
rename scripts/gcc-plugins/{ => pinpoint}/safe-plugin-version.h (100%)
rename scripts/gcc-plugins/{ => pinpoint}/safe-rtl.h (100%)
rename scripts/gcc-plugins/{ => pinpoint}/safe-tree.h (100%)
rename scripts/gcc-plugins/{ => pinpoint}/separate_offset_pass.c (100%)
rename scripts/gcc-plugins/{ => pinpoint}/serialize.c (100%)
rename scripts/gcc-plugins/{ => pinpoint}/serialize.h (100%)
rename scripts/gcc-plugins/{ => pinpoint}/target_hash_builtin_pass.c (100%)
rename scripts/gcc-plugins/{ => pinpoint}/target_registry.c (100%)
rename scripts/gcc-plugins/{ => pinpoint}/target_registry.h (100%)
diff --git a/scripts/gcc-plugins/Makefile b/scripts/gcc-plugins/Makefile
index 1ecc9e923b85..71f605875647 100644
--- a/scripts/gcc-plugins/Makefile
+++ b/scripts/gcc-plugins/Makefile
@@ -23,22 +23,22 @@ targets += randomize_layout_seed.h
# foo-objs := foo.o foo2.o
pinpoint_plugin-objs := \
- pinpoint.o \
- asm_offset_pass.o \
- dpin_registry.o \
- ipin_registry.o \
- layout_hash.o \
- on_finish_decl.o \
- on_finish_type.o \
- on_finish_unit.o \
- on_preserve_component_ref.o \
- on_register_attributes.o \
- on_start_unit.o \
- rtl_ipin_survival_scan_pass.o \
- separate_offset_pass.o \
- serialize.o \
- target_registry.o \
- target_hash_builtin_pass.o
+ pinpoint/pinpoint.o \
+ pinpoint/asm_offset_pass.o \
+ pinpoint/dpin_registry.o \
+ pinpoint/ipin_registry.o \
+ pinpoint/layout_hash.o \
+ pinpoint/on_finish_decl.o \
+ pinpoint/on_finish_type.o \
+ pinpoint/on_finish_unit.o \
+ pinpoint/on_preserve_component_ref.o \
+ pinpoint/on_register_attributes.o \
+ pinpoint/on_start_unit.o \
+ pinpoint/rtl_ipin_survival_scan_pass.o \
+ pinpoint/separate_offset_pass.o \
+ pinpoint/serialize.o \
+ pinpoint/target_registry.o \
+ pinpoint/target_hash_builtin_pass.o
always-y += $(GCC_PLUGIN)
diff --git a/scripts/gcc-plugins/asm_offset_pass.c b/scripts/gcc-plugins/pinpoint/asm_offset_pass.c
similarity index 100%
rename from scripts/gcc-plugins/asm_offset_pass.c
rename to scripts/gcc-plugins/pinpoint/asm_offset_pass.c
diff --git a/scripts/gcc-plugins/dpin_registry.c b/scripts/gcc-plugins/pinpoint/dpin_registry.c
similarity index 100%
rename from scripts/gcc-plugins/dpin_registry.c
rename to scripts/gcc-plugins/pinpoint/dpin_registry.c
diff --git a/scripts/gcc-plugins/dpin_registry.h b/scripts/gcc-plugins/pinpoint/dpin_registry.h
similarity index 100%
rename from scripts/gcc-plugins/dpin_registry.h
rename to scripts/gcc-plugins/pinpoint/dpin_registry.h
diff --git a/scripts/gcc-plugins/ipin_registry.c b/scripts/gcc-plugins/pinpoint/ipin_registry.c
similarity index 100%
rename from scripts/gcc-plugins/ipin_registry.c
rename to scripts/gcc-plugins/pinpoint/ipin_registry.c
diff --git a/scripts/gcc-plugins/ipin_registry.h b/scripts/gcc-plugins/pinpoint/ipin_registry.h
similarity index 100%
rename from scripts/gcc-plugins/ipin_registry.h
rename to scripts/gcc-plugins/pinpoint/ipin_registry.h
diff --git a/scripts/gcc-plugins/layout_hash.c b/scripts/gcc-plugins/pinpoint/layout_hash.c
similarity index 100%
rename from scripts/gcc-plugins/layout_hash.c
rename to scripts/gcc-plugins/pinpoint/layout_hash.c
diff --git a/scripts/gcc-plugins/layout_hash.h b/scripts/gcc-plugins/pinpoint/layout_hash.h
similarity index 100%
rename from scripts/gcc-plugins/layout_hash.h
rename to scripts/gcc-plugins/pinpoint/layout_hash.h
diff --git a/scripts/gcc-plugins/on_finish_decl.c b/scripts/gcc-plugins/pinpoint/on_finish_decl.c
similarity index 100%
rename from scripts/gcc-plugins/on_finish_decl.c
rename to scripts/gcc-plugins/pinpoint/on_finish_decl.c
diff --git a/scripts/gcc-plugins/on_finish_type.c b/scripts/gcc-plugins/pinpoint/on_finish_type.c
similarity index 100%
rename from scripts/gcc-plugins/on_finish_type.c
rename to scripts/gcc-plugins/pinpoint/on_finish_type.c
diff --git a/scripts/gcc-plugins/on_finish_unit.c b/scripts/gcc-plugins/pinpoint/on_finish_unit.c
similarity index 100%
rename from scripts/gcc-plugins/on_finish_unit.c
rename to scripts/gcc-plugins/pinpoint/on_finish_unit.c
diff --git a/scripts/gcc-plugins/on_preserve_component_ref.c b/scripts/gcc-plugins/pinpoint/on_preserve_component_ref.c
similarity index 100%
rename from scripts/gcc-plugins/on_preserve_component_ref.c
rename to scripts/gcc-plugins/pinpoint/on_preserve_component_ref.c
diff --git a/scripts/gcc-plugins/on_register_attributes.c b/scripts/gcc-plugins/pinpoint/on_register_attributes.c
similarity index 100%
rename from scripts/gcc-plugins/on_register_attributes.c
rename to scripts/gcc-plugins/pinpoint/on_register_attributes.c
diff --git a/scripts/gcc-plugins/on_start_unit.c b/scripts/gcc-plugins/pinpoint/on_start_unit.c
similarity index 100%
rename from scripts/gcc-plugins/on_start_unit.c
rename to scripts/gcc-plugins/pinpoint/on_start_unit.c
diff --git a/scripts/gcc-plugins/passes.h b/scripts/gcc-plugins/pinpoint/passes.h
similarity index 100%
rename from scripts/gcc-plugins/passes.h
rename to scripts/gcc-plugins/pinpoint/passes.h
diff --git a/scripts/gcc-plugins/pinpoint.c b/scripts/gcc-plugins/pinpoint/pinpoint.c
similarity index 100%
rename from scripts/gcc-plugins/pinpoint.c
rename to scripts/gcc-plugins/pinpoint/pinpoint.c
diff --git a/scripts/gcc-plugins/pinpoint.h b/scripts/gcc-plugins/pinpoint/pinpoint.h
similarity index 100%
rename from scripts/gcc-plugins/pinpoint.h
rename to scripts/gcc-plugins/pinpoint/pinpoint.h
diff --git a/scripts/gcc-plugins/rtl_ipin_survival_scan_pass.c b/scripts/gcc-plugins/pinpoint/rtl_ipin_survival_scan_pass.c
similarity index 100%
rename from scripts/gcc-plugins/rtl_ipin_survival_scan_pass.c
rename to scripts/gcc-plugins/pinpoint/rtl_ipin_survival_scan_pass.c
diff --git a/scripts/gcc-plugins/safe-attribs.h b/scripts/gcc-plugins/pinpoint/safe-attribs.h
similarity index 100%
rename from scripts/gcc-plugins/safe-attribs.h
rename to scripts/gcc-plugins/pinpoint/safe-attribs.h
diff --git a/scripts/gcc-plugins/safe-diagnostic.h b/scripts/gcc-plugins/pinpoint/safe-diagnostic.h
similarity index 100%
rename from scripts/gcc-plugins/safe-diagnostic.h
rename to scripts/gcc-plugins/pinpoint/safe-diagnostic.h
diff --git a/scripts/gcc-plugins/safe-gcc-plugin.h b/scripts/gcc-plugins/pinpoint/safe-gcc-plugin.h
similarity index 100%
rename from scripts/gcc-plugins/safe-gcc-plugin.h
rename to scripts/gcc-plugins/pinpoint/safe-gcc-plugin.h
diff --git a/scripts/gcc-plugins/safe-ggc.h b/scripts/gcc-plugins/pinpoint/safe-ggc.h
similarity index 100%
rename from scripts/gcc-plugins/safe-ggc.h
rename to scripts/gcc-plugins/pinpoint/safe-ggc.h
diff --git a/scripts/gcc-plugins/safe-gimple.h b/scripts/gcc-plugins/pinpoint/safe-gimple.h
similarity index 100%
rename from scripts/gcc-plugins/safe-gimple.h
rename to scripts/gcc-plugins/pinpoint/safe-gimple.h
diff --git a/scripts/gcc-plugins/safe-input.h b/scripts/gcc-plugins/pinpoint/safe-input.h
similarity index 100%
rename from scripts/gcc-plugins/safe-input.h
rename to scripts/gcc-plugins/pinpoint/safe-input.h
diff --git a/scripts/gcc-plugins/safe-langhooks.h b/scripts/gcc-plugins/pinpoint/safe-langhooks.h
similarity index 100%
rename from scripts/gcc-plugins/safe-langhooks.h
rename to scripts/gcc-plugins/pinpoint/safe-langhooks.h
diff --git a/scripts/gcc-plugins/safe-md5.h b/scripts/gcc-plugins/pinpoint/safe-md5.h
similarity index 100%
rename from scripts/gcc-plugins/safe-md5.h
rename to scripts/gcc-plugins/pinpoint/safe-md5.h
diff --git a/scripts/gcc-plugins/safe-output.h b/scripts/gcc-plugins/pinpoint/safe-output.h
similarity index 100%
rename from scripts/gcc-plugins/safe-output.h
rename to scripts/gcc-plugins/pinpoint/safe-output.h
diff --git a/scripts/gcc-plugins/safe-plugin-version.h b/scripts/gcc-plugins/pinpoint/safe-plugin-version.h
similarity index 100%
rename from scripts/gcc-plugins/safe-plugin-version.h
rename to scripts/gcc-plugins/pinpoint/safe-plugin-version.h
diff --git a/scripts/gcc-plugins/safe-rtl.h b/scripts/gcc-plugins/pinpoint/safe-rtl.h
similarity index 100%
rename from scripts/gcc-plugins/safe-rtl.h
rename to scripts/gcc-plugins/pinpoint/safe-rtl.h
diff --git a/scripts/gcc-plugins/safe-tree.h b/scripts/gcc-plugins/pinpoint/safe-tree.h
similarity index 100%
rename from scripts/gcc-plugins/safe-tree.h
rename to scripts/gcc-plugins/pinpoint/safe-tree.h
diff --git a/scripts/gcc-plugins/separate_offset_pass.c b/scripts/gcc-plugins/pinpoint/separate_offset_pass.c
similarity index 100%
rename from scripts/gcc-plugins/separate_offset_pass.c
rename to scripts/gcc-plugins/pinpoint/separate_offset_pass.c
diff --git a/scripts/gcc-plugins/serialize.c b/scripts/gcc-plugins/pinpoint/serialize.c
similarity index 100%
rename from scripts/gcc-plugins/serialize.c
rename to scripts/gcc-plugins/pinpoint/serialize.c
diff --git a/scripts/gcc-plugins/serialize.h b/scripts/gcc-plugins/pinpoint/serialize.h
similarity index 100%
rename from scripts/gcc-plugins/serialize.h
rename to scripts/gcc-plugins/pinpoint/serialize.h
diff --git a/scripts/gcc-plugins/target_hash_builtin_pass.c b/scripts/gcc-plugins/pinpoint/target_hash_builtin_pass.c
similarity index 100%
rename from scripts/gcc-plugins/target_hash_builtin_pass.c
rename to scripts/gcc-plugins/pinpoint/target_hash_builtin_pass.c
diff --git a/scripts/gcc-plugins/target_registry.c b/scripts/gcc-plugins/pinpoint/target_registry.c
similarity index 100%
rename from scripts/gcc-plugins/target_registry.c
rename to scripts/gcc-plugins/pinpoint/target_registry.c
diff --git a/scripts/gcc-plugins/target_registry.h b/scripts/gcc-plugins/pinpoint/target_registry.h
similarity index 100%
rename from scripts/gcc-plugins/target_registry.h
rename to scripts/gcc-plugins/pinpoint/target_registry.h
--
2.34.1
prev parent reply other threads:[~2026-09-02 23:33 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-02 23:33 [RFC][PATCH 0/3] SPSLR-v3 cleanups Kees Cook
2026-09-02 23:33 ` [PATCH 1/3] gcc-plugins: pinpoint: use quoted includes for internal headers Kees Cook
2026-09-02 23:33 ` [PATCH 2/3] gcc-plugins: sanemaker: make the no-op trap macros statement-safe Kees Cook
2026-09-02 23:33 ` Kees Cook [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260902233349.1996922-3-kees@kernel.org \
--to=kees@kernel.org \
--cc=ardb@kernel.org \
--cc=franzen@sec.in.tum.de \
--cc=linux-hardening@vger.kernel.org \
--cc=yjn@yjn-systems.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox