mirror of
https://github.com/AFLplusplus/AFLplusplus.git
synced 2025-06-22 06:18:04 +00:00
Fixes to afl-cc and documentation (#1974)
* Always compile with -ldl when building for CODE_COVERAGE When building with CODE_COVERAGE, the afl runtime contains code that calls `dladdr` which requires -ldl. Under most circumstances, clang already adds this (e.g. when building with pc-table), but there are some circumstances where it isn't added automatically. * Add visibility declaration to __afl_connected When building with hidden visibility, the use of __AFL_LOOP inside such code can cause linker errors due to __afl_connected being declared "hidden". * Update docs to clarify that CODE_COVERAGE=1 is required for dynamic_covfilter
This commit is contained in:
committed by
GitHub
parent
75af391408
commit
644e069450
@ -1521,7 +1521,7 @@ void add_defs_persistent_mode(aflcc_state_t *aflcc) {
|
||||
"({ static volatile const char *_B __attribute__((used,unused)); "
|
||||
" _B = (const char*)\"" PERSIST_SIG
|
||||
"\"; "
|
||||
"extern int __afl_connected;"
|
||||
"extern __attribute__((visibility(\"default\"))) int __afl_connected;"
|
||||
#ifdef __APPLE__
|
||||
"__attribute__((visibility(\"default\"))) "
|
||||
"int _L(unsigned int) __asm__(\"___afl_persistent_loop\"); "
|
||||
@ -2311,6 +2311,11 @@ void add_runtime(aflcc_state_t *aflcc) {
|
||||
|
||||
}
|
||||
|
||||
#if __AFL_CODE_COVERAGE
|
||||
// Required for dladdr used in afl-compiler-rt.o
|
||||
insert_param(aflcc, "-ldl");
|
||||
#endif
|
||||
|
||||
#if !defined(__APPLE__) && !defined(__sun)
|
||||
if (!aflcc->shared_linking && !aflcc->partial_linking)
|
||||
insert_object(aflcc, "dynamic_list.txt", "-Wl,--dynamic-list=%s", 0);
|
||||
|
Reference in New Issue
Block a user