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
diff --git a/fuzztest/internal/compatibility_mode.cc b/fuzztest/internal/compatibility_mode.cc
index 97744b7..df1264b 100644
--- a/fuzztest/internal/compatibility_mode.cc
+++ b/fuzztest/internal/compatibility_mode.cc
@@ -39,8 +39,9 @@
}
// 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) {