Skip to content

Conversation

@VerditeLabs
Copy link


Before sending a pull request, please review Contribution Guidelines:
https://github.com/google/syzkaller/blob/master/docs/contributing.md


claude added 30 commits October 24, 2025 13:16
This fork simplifies syzkaller to exclusively support:
- Operating System: Linux only
- Architecture: amd64 (x86_64) only
- Endianness: Little-endian only
- Word size: 64-bit only

Major changes:
1. Removed all syscall definitions from sys/linux/ - to be rewritten from scratch
2. Removed unsupported OS directories: freebsd, netbsd, openbsd, darwin, windows, fuchsia, trusty, test
3. Simplified sys/targets/targets.go to only define Linux/amd64 target
4. Removed architecture-specific code for: arm, arm64, ppc64le, s390x, riscv64, mips64le, 386
5. Cleaned up executor/ - removed non-Linux and non-amd64 files
6. Cleaned up pkg/build/ - removed non-Linux OS build files
7. Cleaned up pkg/ifuzz/ - removed arm64 and powerpc instruction fuzzers
8. Cleaned up vm/ - removed non-Linux VM types (adb, bhyve, cuttlefish, gvisor, starnix, vmware)
9. Removed big-endian support code (prog/big_endian.go)
10. Removed OS-specific files from pkg/osutil/
11. Updated documentation to reflect Linux amd64 only scope

This simplification makes the codebase more manageable for focused Linux kernel fuzzing.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Remove Kubernetes cluster orchestration and cloud provider code
that is not needed for local/network execution. Kept syz-hub for
coordinating multiple baremetal machines on the same network.

Removed:
1. VM types: gce, dispatcher, vmm (OpenBSD)
2. Cluster tools: syz-cluster (entire Kubernetes system), syz-ci
3. Cloud packages: pkg/gce, pkg/gcpsecret, pkg/gcs, pkg/kcidb
4. Cloud scripts: create-gce-image.sh, create-ec2-rootfs.sh, etc.
5. Android, gVisor, OpenBSD tools
6. Non-Linux-amd64 files from vm/vmimpl/

Kept:
- syz-hub: for coordinating multiple syz-manager instances on network
- qemu: VM support for local execution
- isolated: for local/remote machine execution

Execution is now limited to:
- QEMU VMs (local)
- Isolated/remote machines on local network
- Network-coordinated execution via syz-hub

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
KFuzzTest is a framework for fuzzing internal kernel functions that are
not directly reachable via syscalls. While it provides additional coverage,
it adds significant complexity with:
- Kernel patches and CONFIG_KFUZZTEST requirement
- DWARF debug info parsing for dynamic target discovery
- Complex serialization with relocation tables
- Additional pseudo-syscall machinery

This fork focuses on traditional syscall fuzzing, so KFuzzTest support
has been completely removed.

Removed:
1. pkg/kfuzztest/, pkg/kfuzztest-executor/, pkg/kfuzztest-manager/
2. syz-kfuzztest/ standalone tool
3. tools/kfuzztest-gen/ auto-generator
4. docs/kfuzztest.md, docs/syz-kfuzztest.md
5. prog/kfuzztest.go, prog/kfuzztest_test.go
6. syz_kfuzztest_run pseudo-syscall from executor/common_linux.h
7. KFuzzTest attribute from prog/types.go
8. genKFuzzTest logic from prog/rand.go and prog/mutation.go
9. ModeKFuzzTest config from pkg/fuzzer/ and syz-manager/
10. EnableKFuzzTest config from pkg/mgrconfig/
11. All references in pkg/vminfo/, docs/, tools/

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Removed tools not needed for Linux amd64 fuzzing workflow focused on
finding bugs, bisecting, creating reproducers, and testing on different
Linux versions.

Removed categories:
1. Linting & Code Quality (11 tools):
   - check-commits.sh, check-copyright.sh, check-html.sh
   - check-language.sh, check-shebang.sh, check-whitespace.sh
   - check-syzos.sh, check_links.py, check_translation_update.py
   - syz-linter/, syz-fmt/

2. Google Dashboard Integration (8 tools):
   - syz-fillreports/ - Dashboard bug reporting
   - syz-fix-analyzer/ - Dashboard analytics
   - syz-lore/ - Kernel mailing list integration
   - syz-query-subsystems/ - Maintainer list generation
   - syz-db-export/ - Dashboard downloads
   - syz-reproducers.sh - Google cloud storage downloads

3. Development/Backward Compatibility (6 tools):
   - syz-check/ - DWARF syscall verification
   - syz-upgrade/ - Corpus format migration
   - syz-showprio/ - Priority visualization
   - syz-gemini-seed/ - AI seed generation
   - syz-headerparser/ - Python header parser

4. Development Environments (4 tools):
   - syz-env, syz-old-env - Docker wrappers
   - docker/ - Docker configurations
   - demo_setup.sh - Demo script

5. Non-amd64 Tools (1 directory):
   - arm64/ - ARM64 register definitions

6. Hardware-Specific & Kernel Dev (4 tools):
   - syz-tty/ - USB TTY console
   - fops_probe/ - File operations probe
   - kcovfuzzer/ - libFuzzer glue
   - kcovtrace/ - KCOV tracer

Kept (as requested):
- create-buildroot-image.sh - Buildroot image creation
- create-image.sh - General image creation
- All core fuzzing tools (20 tools for bug finding, bisecting, repro)

Total removed: 34 tools/scripts/directories
Remaining: 25 focused tools for Linux amd64 fuzzing

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit removes OS-specific and architecture-specific code that is no longer needed after simplifying syzkaller to support only Linux amd64.

Changes include:

1. Deleted OS-specific implementation files:
   - pkg/report: Removed bsd.go, darwin.go, freebsd.go, netbsd.go, openbsd.go, fuchsia.go
   - pkg/vminfo: Removed netbsd.go, openbsd.go
   - pkg/vcs: Removed fuchsia.go, testos.go
   - sys/syz-extract: Removed darwin.go, freebsd.go, netbsd.go, openbsd.go, fuchsia.go, trusty.go, windows.go
   - pkg/image: Removed compression_nonoptimized.go

2. Updated build tags to Linux-only or Linux amd64:
   - pkg/osutil/osutil_unix.go: Changed to //go:build linux
   - vm/vmimpl/console.go: Changed to //go:build linux
   - pkg/image/compression_optimized.go: Changed to //go:build linux && amd64
   - pkg/kd/kd_test.go: Changed to //go:build linux

3. Cleaned up conditional code:
   - pkg/build/build.go: Removed non-Linux builder references
   - sys/syz-extract/extract.go: Removed non-Linux extractor references
   - pkg/report/report.go: Removed non-Linux OS constructors
   - pkg/vminfo/vminfo.go: Removed NetBSD/OpenBSD cases
   - vm/vm.go: Removed non-QEMU/isolated VM imports
   - pkg/runtest/run.go: Removed FreeBSD-specific checks
   - tools/syz-make/make.go: Removed OpenBSD-specific checks
   - pkg/instance/instance.go: Simplified MakeBin to constant
   - pkg/cover/backend/backend.go: Removed Darwin check
   - pkg/vcs/vcs.go: Simplified to Linux-only
   - sys/linux/init.go: Simplified architecture switch to AMD64 only

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit removes QEMU architecture configurations for deleted architectures
and OSes, simplifies OS checks in csource, and removes ARM-specific crypto
algorithm names.

Changes:

1. vm/qemu/qemu.go:
   - Removed all non-Linux-amd64 architecture configs from archConfigs map
   - Deleted: linux/386, linux/arm, linux/arm64, linux/mips64le, linux/ppc64le,
     linux/riscv64, linux/s390x (7 arch configs)
   - Deleted: freebsd/amd64, freebsd/riscv64, darwin/amd64, netbsd/amd64,
     fuchsia/amd64 (5 OS configs)
   - Now only contains linux/amd64 configuration

2. pkg/csource/csource.go:
   - Removed FreeBSD-specific include sorting logic
   - Simplified include header organization

3. pkg/csource/options.go:
   - Simplified checkLinuxOnly() to remove BSD-specific exceptions
   - NetInjection and Sandbox checks now fail for all non-Linux OSes

4. sys/linux/init_alg.go:
   - Removed 20 ARM-specific crypto algorithm entries:
     * cbc(aes-arm), chacha20-arm, xchacha12-arm, xchacha20-arm
     * aes-arm, aes-arm64, blake2s-*-arm, crct10dif-arm64-*
     * poly1305-arm, sha*-arm, sha*-arm64
   - These algorithms are not available on amd64 systems

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Simplified the architecture switch in prog/rand.go generateInsn() to only
support amd64, removing cases for 386, ppc64, and arm64.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Final cleanup pass removing remaining references to deleted operating
systems and architectures in test files and utility functions.

Changes:

1. vm/vmimpl/util.go:
   - Removed Windows-specific SSH command check
   - WaitForSSH() now always uses "pwd" command (Linux only)

2. pkg/instance/instance_test.go:
   - Updated TestExecprogCmd to use Linux/AMD64 instead of FreeBSD/I386
   - Test now validates against targets.Linux and targets.AMD64

3. pkg/cover/report_test.go:
   - Simplified ASLR define check to Linux-only
   - Removed checks for OpenBSD, FreeBSD, NetBSD

These changes complete the removal of non-Linux OS and non-amd64
architecture references from the codebase, except for:
- Fuchsia references kept for potential Starnix support
- TestOS references used in internal testing framework
- Core type definitions in sys/targets

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Simplified architecture-specific functions to only support amd64:

1. pkg/build/linux.go:
   - Reduced kernelImage() switch to single amd64 case
   - Now only returns arch/x86/boot/bzImage

2. pkg/vminfo/linux_syscalls.go:
   - Simplified linuxSyzKvmSupported() to only check x86 KVM syscalls
   - linuxSyzSupportedOnArm64() now always returns unsupported
   - Removed ARM64 and PPC64LE cases

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Since both host and target are Linux x86_64 little-endian, we can
simplify code that handles cross-compilation, different architectures,
and endianness conversions.

Changes:

1. sys/targets/targets.go:
   - Removed cross-compilation check (BuildOS != runtime.GOOS) - always native
   - Simplified Triple assignment - always empty for native build
   - Simplified lazyInit() checks - removed cross-compilation logic
   - Added comments clarifying native-only assumptions

2. pkg/csource/csource.go:
   - Simplified BigEndian checks in bitfield handling
   - Removed unnecessary BigEndian condition (always false)
   - Always use little-endian bitfield offset calculation

3. pkg/rpcserver/local.go:
   - Added comment that VMArch always equals Arch for amd64

4. vm/qemu/qemu.go:
   - Simplified Forward() - removed HostFuzzer check (always false)
   - Simplified Copy() - removed HostFuzzer special case
   - Simplified Run() - removed HostFuzzer/Fuchsia execution mode
   - Always use standard SSH execution path

All simplifications based on invariant: host == target == linux/amd64/little-endian

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Removed architecture switches and conditionals since we only support amd64:

1. pkg/cover/backend/pc.go:
   - Removed instructionLen() function with 9-way arch switch
   - Hardcoded AMD64 call instruction length (5 bytes) in PC adjustment
   - Simplified PreviousInstructionPC() and NextInstructionPC()

2. pkg/cover/backend/dwarf.go:
   - Removed archCallInsn() 8-way arch switch
   - Hardcoded AMD64 'call' instruction pattern

3. pkg/report/decompile.go:
   - Removed objdumpBuildArgs() 8-way arch switch
   - Hardcoded AMD64 objdump arguments

4. pkg/csource/csource.go:
   - Removed PtrSize == 4 checks (always false on amd64)
   - Removed 32-bit mmap/mmap2 hack
   - Removed intptr_t cast for 32-bit systems
   - Simplified integer suffix logic (always 'ul' not 'ull')

All simplifications based on: arch == amd64, PtrSize == 8, 64-bit only

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Since we only support native Linux amd64 compilation, Triple is always
empty. Simplified all code that checks or uses Triple.

Changes:

1. sys/targets/targets.go:
   - Removed Triple checks in objdump binary selection
   - Removed Triple prefix in findAddr2Line() (always use native)
   - Removed --target flag in clang compilation (no cross-compile)
   - Removed Triple prefix in gcc cross-compiler name
   - Simplified setCompiler() to remove cross-compilation paths

2. pkg/build/linux.go:
   - Removed CROSS_COMPILE make argument (Triple always empty)
   - No longer needed for kernel builds

3. pkg/compiler/types.go:
   - Removed Int64Alignment check (always 0 on amd64)
   - int64 always uses natural 8-byte alignment on x86_64

All changes based on: Triple == "", native compilation only, amd64 alignment

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Since only clang is used (not gcc), simplified compiler selection:

1. sys/targets/targets.go:
   - Hardcoded useClang = true (ignore SYZ_CLANG env var)
   - Removed 'other compiler' support (target.other)
   - Simplified GetEx() to always return same target
   - Simplified setCompiler() to only configure clang
   - Removed gcc compiler path entirely
   - Removed flag filtering for compiler switching

Changes based on: clang is the only compiler used

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Remove all Android-specific code including:
- executor/android/ directory with seccomp policies
- SYZ_SANDBOX_ANDROID and flag_sandbox_android
- Android sandbox implementation (do_sandbox_android)
- Android-specific temporary directory paths
- SandboxAndroid from flatrpc protocol
- __ANDROID__ preprocessor checks

This is part of simplifying syzkaller to Linux amd64 only.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Remove all non-Linux OS code from executor:
- FreeBSD, NetBSD, OpenBSD, Darwin (macOS)
- Windows, Fuchsia, Test OS
- Removed OS-specific includes and conditionals
- Simplified to Linux-only code paths
- Removed BSD event_t implementation
- Removed BSD remove_dir implementation
- Removed OS-specific byte order conversions
- Simplified MAP_FIXED_EXCLUSIVE to Linux version
- Removed GOOS_* conditionals (kept GOOS_linux where needed)

This is part of simplifying syzkaller to Linux amd64 only.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
- Remove all GOARCH_* preprocessor conditionals (amd64, arm64, ppc64, etc.)
- Remove all GOOS_* preprocessor conditionals (linux, freebsd, darwin, etc.)
- Make all Linux amd64 code unconditional
- Remove ARM64 KVM definitions
- Remove PPC64 KVM code generation
- Remove CPU feature detection conditionals
- Remove architecture-specific test code
- Remove OS-specific includes and functions

This simplifies the executor to only support Linux amd64.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Delete build stubs that were only used for non-Linux platforms:
- vm/qemu/snapshot_unimpl.go (stub for non-Linux snapshot support)
- pkg/build/linux_nolinux.go (stub for building Linux images on non-Linux)

These are no longer needed since we only support Linux amd64.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Create simplified create-gce-image.sh script supporting only Linux amd64:
- Remove IMG_ARCH parameter (hardcode to bzImage)
- Remove all architecture conditionals (386, s390x, ppc64le cases)
- Keep only amd64 bootloader configuration
- Regenerate linux_generated.go with simplified script

This removes 53 lines of multi-architecture code from the image creation.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Delete dashboard configuration directories for non-Linux operating systems:
- dashboard/config/android/
- dashboard/config/freebsd/
- dashboard/config/netbsd/
- dashboard/config/openbsd/

These configurations are no longer needed since we only support Linux amd64.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Delete all kernel configurations except for mainline/linux-next amd64:

Deleted configurations:
- All Android kernel configs (android-*, android14-*)
- All ChromeOS kernel configs (chromeos-*, cos-*)
- All stable kernel branch configs (stable-5.4, 5.15, 6.1, 6.6)
- All non-amd64 upstream configs (arm, arm64, riscv64, s390)
- All vendor-specific distro configs directory (Android, ChromeOS, Ubuntu)
- Architecture-specific bits files (arm.yml, arm64.yml, riscv64.yml, s390.yml, mte.yml)
- Vendor subsystem bits files (android*.yml, chromeos*.yml, stable-*.yml)

Remaining configurations:
- Only upstream mainline/linux-next configs for amd64
- Generic feature bits (kasan, kcsan, kmsan, etc.)
- x86_64.yml architecture bits

This removes 578,468 lines across 112 files of vendor and non-amd64 kernel configs.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Removed multi-OS and multi-architecture build support:

Header comments:
- Simplified build documentation to Linux amd64 only
- Removed examples for cross-OS/cross-arch builds

OS handling:
- Removed TARGETOS checks for fuchsia, test, trusty
- Simplified executor build (no OS conditionals)

Presubmit targets:
- Removed presubmit_arch_freebsd
- Removed presubmit_arch_netbsd
- Removed presubmit_arch_openbsd
- Removed presubmit_arch_darwin
- Removed presubmit_arch_windows
- Removed presubmit_arch_executor
- Simplified presubmit_arch_linux to amd64 only (was: 386, arm, arm64, mips64le, ppc64le, riscv64, s390x)
- Simplified presubmit_old to amd64 only

Prerequisites:
- Removed cross-compiler packages (gcc-aarch64, gcc-arm, gcc-powerpc64le, gcc-mips64el, gcc-s390x, gcc-riscv64)
- Removed libc6-dev-i386 (32-bit support)
- Kept only native amd64 g++ and development tools

Formatting:
- Removed executor/android/android_seccomp.h from format_cpp (already deleted)

This removes 110 lines of multi-OS/arch build configuration.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Since we deleted the Android sandbox implementation from the executor,
remove all references to "android" as a valid sandbox option:

Tools updated:
- tools/syz-execprog: Remove android from sandbox flag help
- tools/syz-prog2c: Remove android from sandbox flag help
- tools/syz-kconf: Remove featAndroid and featChromeos constants
- tools/syz-kconf: Simplify addUSBConfigs (distros dir was deleted)

Code updated:
- pkg/csource/common.go: Remove sandboxAndroid constant and SYZ_SANDBOX_ANDROID define
- pkg/csource/csource.go: Remove android-specific sandbox argument handling
- pkg/csource/options.go: Remove android from valid sandbox list (2 places)
- pkg/csource/options_test.go: Change android test cases to namespace
- pkg/mgrconfig/load.go: Remove android from sandbox validation
- pkg/instance/instance_test.go: Remove android from sandbox flag help

Valid sandbox options are now: none, setuid, namespace

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Removed unused TextArm64 and TextPpc64 from TextKind enum since:
- No syscall descriptions use text[arm64] or text[ppc64]
- Only x86 has actual ifuzz implementation
- We only support Linux amd64

Changes:
- prog/types.go: Removed TextArm64 and TextPpc64 from TextKind enum
- pkg/compiler/types.go: Removed arm64 and ppc64 from text type parsing
- prog/rand.go: Removed TextArm64/TextPpc64 cases from createIfuzzConfig
- pkg/ifuzz: Removed ArchArm64 and ArchPowerPC constants and imports
- pkg/ifuzz/ifuzz_test.go: Updated allArches to only include x86

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Replaced undefined GOARCH macro with hardcoded "amd64" string
in executor connection handshake, since we only support amd64.

The Makefile defines GOARCH_amd64 as a preprocessor flag (not GOARCH),
so the previous code using GOARCH would not compile.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Deleted test data directories for unsupported operating systems:
- darwin/, freebsd/, netbsd/, openbsd/, fuchsia/
- gvisor/, starnix/ (Linux compatibility layers we don't support)
- linux/decompile/arm/, linux/decompile/arm64/ (non-amd64 architectures)

Also removed dead code:
- GVisor/Starnix type check in report.go (ctors map only has Linux)
- Windows skip check in report_test.go (no longer needed)

The ctors map in report.go only contains targets.Linux, so all
non-Linux test data was unused and can be safely deleted.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Simplified tools/create-image.sh and tools/create-buildroot-image.sh
to only support Linux amd64, since that's the only platform we support.

Changes to create-image.sh:
- Hardcoded ARCH=x86_64 and DEBARCH=amd64
- Removed --arch option from help and argument parsing
- Removed architecture case statement mapping arch names
- Removed FOREIGN architecture handling (qemu-static, cross-bootstrap)
- Removed riscv64 special handling
- Removed 70 lines of multi-architecture code

Changes to create-buildroot-image.sh:
- Hardcoded TARGETARCH=amd64 and DEFCONFIG=pc_x86_64_bios_defconfig
- Removed TARGETARCH environment variable parsing
- Removed architecture case statements for arm64/arm/riscv64/s390x/mips64le/ppc64le
- Removed per-arch config fragments and rootfs script conditionals
- Updated header comment to reflect amd64-only support
- Removed 100 lines of multi-architecture code

Total: Removed 170 lines of architecture-specific code from image creation scripts.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Removed support for GVisor and Starnix (Linux compatibility layers):
- Deleted pkg/report/gvisor.go (187 lines)
- Removed GVisor and Starnix constants from sys/targets/targets.go
- Simplified timeout calculations in pkg/mgrconfig/load.go (removed GVisor
  race slowdown case and QEMU cross-architecture emulation case)
- Simplified coverage PC adjustment in pkg/cover/backend/pc.go (always use
  AMD64 5-byte call instruction offset)
- Removed GVisor backend from pkg/cover/backend/backend.go
- Simplified pkg/cover/backend/backend.go GetPCBase to always use Linux
- Hardcoded UseCoverEdges and FilterSignal to true in pkg/rpcserver/rpcserver.go
- Removed Starnix->Fuchsia redirect in pkg/vcs/vcs.go NewRepo
- Removed GVisor check from pkg/vcs/linux.go PrepareBisect
- Removed GVisor check from pkg/vminfo/linux.go parseModules
- Updated vm/vm_test.go to test with qemu instead of gvisor

Deleted non-x86 architecture test data:
- tools/syz-declextract/testdata/arch/arm/
- tools/syz-declextract/testdata/arch/arm64/
- tools/syz-declextract/testdata/arch/mips/
- tools/syz-declextract/testdata/arch/powerpc/
- tools/syz-declextract/testdata/arch/riscv/
- tools/syz-declextract/testdata/arch/s390/

Total: Removed 240 lines and 6 test data directories.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Removed dead Makefile targets:
- check_syzos: Removed from 'target' dependency (script doesn't exist)
- presubmit_gvisor: Removed target entirely (script doesn't exist)
- Deleted check_syzos target definition

Simplified sys/linux/init.go:
- Removed architecture check for SpecialPointers
- Always use AMD64 kernel text and VSYSCALL addresses
- Removed panic("unknown arch") fallback

Since we only support Linux amd64, these conditionals and dead targets
are no longer needed.

Total: Removed 14 lines across 2 files.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Deleted documentation for unsupported operating systems:
- docs/akaros/README.md (7 lines) - Akaros OS documentation
- docs/gvisor/README.md (324 lines) - gVisor documentation
- docs/windows/README.md (78 lines) - Windows documentation

Updated CI configuration (.github/workflows/ci.yml):
- Removed dead presubmit targets from matrix strategy
- Removed: presubmit_arch_freebsd, presubmit_arch_netbsd,
  presubmit_arch_openbsd, presubmit_arch_darwin,
  presubmit_arch_windows, presubmit_arch_executor
- Kept only: presubmit_arch_linux
- These targets were removed from Makefile in previous commits

Since we only support Linux amd64, documentation and CI jobs
for other operating systems are no longer needed.

Total: Removed 410 lines (409 documentation + 1 CI config).

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
- Deleted tools/create-gce-image.sh and GCE test configs
- Deleted pkg/build/linux_generated.go and linux_gen.sh (unused GCE image script)
- Hardcoded Linux amd64 in tools/syz-make/make.go
  - Always return linux/amd64 for host and target
  - Removed runtime OS/arch detection logic
  - Simplified variable generation

We are not Google and don't need GCE-specific infrastructure.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
claude added 13 commits October 24, 2025 16:08
Updated comments to remove Google Compute Engine references:
- pkg/mgrconfig/config.go: Changed 'GCE instance' to 'VM instance'
- pkg/osutil/osutil.go: Changed 'leak GCE instances' to 'leak VM instances'
- pkg/auth/auth.go: Removed 'on GCE' from package description

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Deleted 169 test files (*_test.go) across the entire codebase.

Removed test-related CI jobs:
- dashboard job with codecov integration
- race and race_dashboard jobs
- gvisor test job
- Deleted .github/codecov.yml

Removed test-related Makefile targets:
- test and test_race from .PHONY
- presubmit_dashboard target
- presubmit_race and presubmit_race_dashboard targets
- test target definition
- Removed test invocation from presubmit_build

We assume everything that exists right now just works well and don't need
syzkaller component testing.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Deleted files:
- LICENSE
- CODE_OF_CONDUCT.md
- CONTRIBUTORS
- docs/contributing.md

Removed copyright and license headers from all source files:
- Go files (*.go)
- C/C++ files (*.cc, *.h)
- Shell scripts (*.sh)
- Python files (*.py)
- Makefiles and build files
- YAML configuration files
- FlatBuffers schema files (*.fbs)

All copyright notices and "Use of this source code is governed by Apache 2 LICENSE"
lines have been removed from the codebase.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Runtime OS/arch hardcoding:
- Hardcoded runtime.GOOS to 'linux' in pkg/csource/build.go and common.go
- Hardcoded runtime.GOARCH to 'amd64' in sys/targets/targets.go
- Hardcoded GOARCH in executor/gen_linux_amd64.go go:generate directive

Documentation cleanup:
- Removed 6 architecture-specific setup docs (ARM, ARM64, RISC-V, s390x, Android)
- Updated docs/setup.md to remove non-Linux OS references
- Updated docs/linux/setup.md to remove non-amd64 architecture links
- Removed cross-arch/cross-OS compilation notes
- Updated VM support description (removed Android, GCE, Odroid mentions)
- Deleted docs/translations/ directory

Code cleanup:
- Removed leftover '// +build' comment in executor.cc

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
- Simplified kernelArch() in dashboard/app/reporting.go (removed i386 case)
- Updated VMArch comment in sys/targets/targets.go
- Updated RawTarget comment in pkg/mgrconfig/config.go (removed 386 example)

All architecture switch cases now simplified for amd64-only.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Removed i386 switch case since we only support amd64 architecture.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Removed all non-x86_64 configurations from dashboard/config/linux/main.yml:
- Deleted ARM64, ARM, RISC-V, s390 configurations
- Deleted Android and ChromeOS configurations
- Removed stable branch ARM64 configurations
- Kept only upstream x86_64 configurations

Cleaned up conditional directives in bits/ config files:
- Removed all -arm, -arm64, -riscv, -s390 conditionals
- Removed all -android, -chromeos, -cuttlefish conditionals
- Simplified config includes in main.yml

Updated main.yml includes:
- Removed arm64.yml, arm64_emu.yml, arm.yml, riscv64.yml, s390.yml
- Removed timeouts_emu.yml (only used for emulated architectures)
- Removed all Android/ChromeOS version-specific includes
- Removed kasan_sw.yml and mte.yml (ARM-specific features)

All kernel configurations now assume x86_64 architecture only.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Removed comments about ARM64-specific behavior since we only support x86_64:
- Removed TODO about missing page origin backtrace on ARM64
- Removed note about Bad page reports being marked as corrupted on ARM64

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Deleted all testdata directories (11 directories, 915 files):
- prog/testdata (276K)
- tools/syz-declextract/testdata (111K)
- pkg/symbolizer/testdata (13K)
- pkg/build/testdata (17K)
- pkg/ast/testdata (9.5K)
- pkg/mgrconfig/testdata (23K)
- pkg/covermerger/testdata (241K)
- pkg/compiler/testdata (52K)
- pkg/vcs/testdata (8.5K)
- pkg/csource/testdata (45K)
- pkg/report/testdata (4.4M - contained OS/arch crash reports)

Deleted entire .github directory:
- All GitHub workflow files (ci.yml, gemini-pr-review.yml, etc.)
- CODEOWNERS file
- Issue templates
- Dependabot configuration
- Arc configuration

Total cleanup: ~5.5MB of test fixtures and GitHub infrastructure removed.

Since we removed all unit tests, testdata is no longer needed.
We don't need GitHub-specific CI/CD infrastructure.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
- Changed module declaration in go.mod from github.com/google/syzkaller to github.com/VerditeLabs/syzkaller
- Updated all import paths across 224 Go source files to point to the VerditeLabs repository
- Removed unnecessary configuration files: .mockery.yaml, .golangci.yml, AUTHORS, .gitattributes, .clang-format

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Removed references to undefined OS constants and obsolete comments:
- sys/syz-sysgen/sysgen.go: Removed Fuchsia check, always validate consts for Linux
- pkg/csource/csource.go: Simplified copyout for Linux-only (removed Fuchsia logic)
- pkg/report/fuzz.go: Removed Fuchsia and Windows checks
- pkg/report/report.go: Removed OpenBSD and Fuchsia comments
- pkg/cover/backend/dwarf.go: Updated to amd64-only comments (removed arm64/NetBSD)
- pkg/mgrconfig/config.go: Updated sandbox comments to Linux-only
- pkg/vcs/vcs.go: Removed Fuchsia repository link handling
- sys/targets/targets.go: Updated comments for Linux-only support
- Makefile: Updated all import paths to github.com/VerditeLabs/syzkaller

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Minor cleanup of comments that referenced non-Linux operating systems:
- sys/syz-extract/fetch.go: Updated DefineGlibcUse comment (was "for fuchsia")
- pkg/rpctype/rpc.go: Updated SetDeadline comment (was "not implemented on fuchsia")
- pkg/kd/kd.go: Generalized KD protocol comment (was "used by windows")

These are comment-only changes with no functional impact.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Removed unnecessary OS/arch checks that are always true or false:
- prog/rand.go: Removed amd64 check (always true), directly set ifuzz config
- prog/resources.go: Removed Linux check for timespec/timeval (always true)
- vm/qemu/qemu.go: Removed Linux check for DiagnoseLinux (always true)
- pkg/report/linux.go: Removed ARM check for decompiler flags (always false)

Hardcoded flag defaults from runtime.GOOS/GOARCH to "linux"/"amd64":
- tools/syz-execprog/execprog.go
- tools/syz-prog2c/prog2c.go
- tools/syz-mutate/mutate.go
- tools/syz-expand/expand.go
- tools/syz-symbolize/symbolize.go
- tools/syz-db/syz-db.go
- tools/syz-build/build.go
- tools/syz-testbuild/testbuild.go
- tools/syz-hubtool/hubtool.go
- tools/syz-minconfig/minconfig.go
- sys/syz-extract/extract.go

These changes eliminate dead code branches and make the Linux amd64-only
nature of the codebase more explicit.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
@google-cla
Copy link

google-cla bot commented Oct 24, 2025

Thanks for your pull request! It looks like this may be your first contribution to a Google open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA).

View this failed invocation of the CLA check for more information.

For the most up to date status, view the checks section at the bottom of the pull request.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants