Branch: refs/heads/gh-readonly-queue/master/pr-7616-4c0cb454b9e5edc7cb4400168657bd48c84b7fe4
Home:
https://github.com/google/syzkaller
Commit: 2ca8f17aae14a058d89e920e30fa7b577a32c11e
https://github.com/google/syzkaller/commit/2ca8f17aae14a058d89e920e30fa7b577a32c11e
Author: Aleksandr Nogikh <
nog...@google.com>
Date: 2026-07-16 (Thu, 16 Jul 2026)
Changed paths:
M pkg/aflow/tool/codesearcher/codesearcher.go
M pkg/clangtool/clangtool.go
A pkg/clangtool/cmain.go
M tools/clang/codesearch/codesearch.cpp
A tools/clang/codesearch/plugin.go
M tools/clang/declextract/declextract.cpp
A tools/clang/declextract/plugin.go
M tools/syz-declextract/declextract.go
M tools/syz-declextract/declextract_test.go
Log Message:
-----------
pkg/clangtool: fix C++ static constructor interception race
Intercepting tool execution via C++ static constructors causes the clang
tools (e.g., codesearch) to run before the Go runtime is fully initialized.
This early execution leads to unpredictable initialization races when
interacting with complex libraries like LLVM.
Fix this by moving execution into an auto-intercepting Go registry.
Tools now register themselves via `clangtool.Register` in a CGO `init()`
function, which immediately executes the tool via `extern "C"` if
requested. This guarantees the Go runtime has booted safely.
If a requested tool is not compiled in, `runTool` will now return an
error before attempting to spawn the subprocess.
To unsubscribe from these emails, change your notification settings at
https://github.com/google/syzkaller/settings/notifications