From baf1cf3b4a8474b3cd6d94a50697b8a862f9d6f9 Mon Sep 17 00:00:00 2001 From: FuzzTest Team Date: Sat, 22 Aug 2026 20:01:23 -0700 Subject: [PATCH] Export and preserve LLVMFuzzerCustomMutator in compatibility mode. Add the visibility("default") and used attributes to the LLVMFuzzerCustomMutator declaration. This ensures the symbol is exported and not discarded by the linker, allowing external fuzzing engines to locate and use the custom mutator. PiperOrigin-RevId: 969211312 --- fuzztest/internal/compatibility_mode.cc | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/fuzztest/internal/compatibility_mode.cc b/fuzztest/internal/compatibility_mode.cc index 97744b786..df1264b5b 100644 --- a/fuzztest/internal/compatibility_mode.cc +++ b/fuzztest/internal/compatibility_mode.cc @@ -39,8 +39,9 @@ ExternalEngineCallback* GetExternalEngineCallback() { } // libFuzzer-style custom mutator interface for external engine. -extern "C" size_t LLVMFuzzerCustomMutator(uint8_t* data, size_t size, - size_t max_size, unsigned int seed); +extern "C" __attribute__((visibility("default"), used)) size_t +LLVMFuzzerCustomMutator(uint8_t* data, size_t size, size_t max_size, + unsigned int seed); size_t LLVMFuzzerCustomMutator(uint8_t* data, size_t size, size_t max_size, unsigned int seed) {