aboutsummaryrefslogtreecommitdiffstats
path: root/pkg/kfuzztest/testdata/linker.ld
diff options
context:
space:
mode:
authorEthan Graham <ethangraham@google.com>2025-09-15 12:56:38 +0000
committerAleksandr Nogikh <nogikh@google.com>2025-09-22 09:11:54 +0000
commit9a3002038e891237ff5b561f756a0ff6e32d1d2f (patch)
treede544a42881a86c3d5e60f31bd83a1d5dd52425c /pkg/kfuzztest/testdata/linker.ld
parent91601ce4199e5c85a51aa48270101c7fa5bff51a (diff)
pkg/kfuzztest: add pkg/kfuzztest
Add a new package, pkg/kfuzztest, that implements dynamic discovery of KFuzzTest targets by parsing a vmlinux kernel binary. Signed-off-by: Ethan Graham <ethangraham@google.com>
Diffstat (limited to 'pkg/kfuzztest/testdata/linker.ld')
-rw-r--r--pkg/kfuzztest/testdata/linker.ld39
1 files changed, 39 insertions, 0 deletions
diff --git a/pkg/kfuzztest/testdata/linker.ld b/pkg/kfuzztest/testdata/linker.ld
new file mode 100644
index 000000000..345c02128
--- /dev/null
+++ b/pkg/kfuzztest/testdata/linker.ld
@@ -0,0 +1,39 @@
+/* Copyright 2025 syzkaller project authors. All rights reserved. */
+/* Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file. */
+
+/* Defines a basic linkage script for building kernel-like KFuzzTest metadata into a binary. */
+PAGE_SIZE = 0x1000;
+
+PHDRS
+{
+ text PT_LOAD FLAGS(5); /* R, X */
+ data PT_LOAD FLAGS(6); /* R, W */
+}
+
+SECTIONS
+{
+ .text : { *(.text) } :text
+
+ .rodata : {
+ *(.rodata*)
+
+ . = ALIGN(PAGE_SIZE);
+ __kfuzztest_targets_start = .;
+ KEEP(*(.kfuzztest_target));
+ __kfuzztest_targets_end = .;
+
+ . = ALIGN(PAGE_SIZE);
+ __kfuzztest_constraints_start = .;
+ KEEP(*(.kfuzztest_constraint));
+ __kfuzztest_constraints_end = .;
+
+ . = ALIGN(PAGE_SIZE);
+ __kfuzztest_annotations_start = .;
+ KEEP(*(.kfuzztest_annotation));
+ __kfuzztest_annotations_end = .;
+
+ } :text
+
+ .data : { *(.data) } :data
+ .bss : { *(.bss) } :data
+}