fuzz-introspector: /usr/bin/ld.gold: fatal error: LLVM gold plugin: :0: Undefined temporary symbol .Ltmp265928
Was running ../run_both.sh bitcoin-core 3
, but it failed.
...
[Log level 2] : 13:06:58 : Wrapping function sancov.module_ctor_8bit_counters.86728
[Log level 2] : 13:06:58 : Wrapping function event_listener_getbase
[Log level 2] : 13:06:58 : Wrapping function event_listener_getfd
[Log level 2] : 13:06:58 : Wrapping function event_listener_destroy
[Log level 2] : 13:06:58 : Wrapping function event_listener_disable
[Log level 2] : 13:06:58 : Wrapping function event_listener_enable
[Log level 2] : 13:06:58 : Wrapping function evconnlistener_set_error_cb
[Log level 2] : 13:06:58 : Wrapping function evconnlistener_set_cb
[Log level 2] : 13:06:58 : Wrapping function evconnlistener_get_base
[Log level 2] : 13:06:58 : Wrapping function evconnlistener_get_fd
[Log level 2] : 13:06:58 : Wrapping function evconnlistener_disable
[Log level 2] : 13:06:58 : Wrapping function evconnlistener_free
[Log level 2] : 13:06:58 : Wrapping function evconnlistener_new_bind
[Log level 2] : 13:06:58 : Wrapping function evconnlistener_new
[Log level 2] : 13:06:58 : Wrapping function listener_read_cb
[Log level 2] : 13:06:58 : Wrapping function evconnlistener_enable
[Log level 2] : 13:06:58 : Wrapping function sancov.module_ctor_8bit_counters.86775
[Log level 2] : 13:06:58 : Wrapping function evthread_posix_get_id
[Log level 2] : 13:06:58 : Wrapping function evthread_posix_cond_wait
[Log level 2] : 13:06:58 : Wrapping function pthread_cond_timedwait
[Log level 2] : 13:06:58 : Wrapping function pthread_cond_wait
[Log level 2] : 13:06:58 : Wrapping function evthread_posix_cond_signal
[Log level 2] : 13:06:58 : Wrapping function pthread_cond_broadcast
[Log level 2] : 13:06:58 : Wrapping function pthread_cond_signal
[Log level 2] : 13:06:58 : Wrapping function evthread_posix_cond_free
[Log level 2] : 13:06:58 : Wrapping function pthread_cond_destroy
[Log level 2] : 13:06:58 : Wrapping function evthread_posix_cond_alloc
[Log level 2] : 13:06:58 : Wrapping function pthread_cond_init
[Log level 2] : 13:06:58 : Wrapping function evthread_posix_unlock
[Log level 2] : 13:06:58 : Wrapping function evthread_posix_lock
[Log level 2] : 13:06:58 : Wrapping function pthread_mutex_trylock
[Log level 2] : 13:06:58 : Wrapping function evthread_posix_lock_free
[Log level 2] : 13:06:58 : Wrapping function evthread_posix_lock_alloc
[Log level 2] : 13:06:58 : Wrapping function evthread_use_pthreads
[Log level 2] : 13:06:58 : Wrapping function pthread_mutexattr_init
[Log level 2] : 13:06:58 : Wrapping function pthread_mutexattr_settype
[Log level 2] : 13:06:58 : Ended wrapping all functions
[Log level 1] : 13:06:59 : Finished introspector module
/usr/bin/ld.gold: fatal error: LLVM gold plugin: <unknown>:0: Undefined temporary symbol .Ltmp265928
clang-14: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [Makefile:6708: test/fuzz/fuzz] Error 1
make[2]: Leaving directory '/src/bitcoin-core/src'
make[1]: *** [Makefile:17510: all-recursive] Error 1
make[1]: Leaving directory '/src/bitcoin-core/src'
make: *** [Makefile:812: all-recursive] Error 1
ERROR:root:Building fuzzers failed.
About this issue
- Original URL
- State: closed
- Created 2 years ago
- Comments: 24 (24 by maintainers)
Commits related to this issue
- infra: fuzz-introspector: ensure COVERAGE_URL exists This is to make sure fuzz-introspector can run in local builds. Ref: https://github.com/ossf/fuzz-introspector/issues/48#issuecomment-1087513497 ... — committed to DavidKorczynski/oss-fuzz by DavidKorczynski 2 years ago
- infra: fuzz-introspector: ensure COVERAGE_URL exists (#7502) * infra: fuzz-introspector: ensure COVERAGE_URL exists This is to make sure fuzz-introspector can run in local builds. Ref: https:/... — committed to google/oss-fuzz by DavidKorczynski 2 years ago
- infra: fuzz-introspector: ensure COVERAGE_URL exists (#7502) * infra: fuzz-introspector: ensure COVERAGE_URL exists This is to make sure fuzz-introspector can run in local builds. Ref: https:/... — committed to MartinPetkov/oss-fuzz by DavidKorczynski 2 years ago
Thanks @MarcoFalke
My current understanding of this is it’s not due to Fuzz Introspector but rather LTO (https://github.com/ossf/fuzz-introspector/issues/48#issuecomment-1063163173). When I debugged it ( https://github.com/ossf/fuzz-introspector/issues/48#issuecomment-1063055164) I could not locate the error in Fuzz Introspector but just in some llvm code, and the issue occurred with and without fuzz introspector.
atm there are two different patches going on: the local ones from here and the ones already pushed to OSS-Fuzz. Ideally the patch we have here should be removed in favour of using the patches in upsteam OSS-Fuzz. I haven’t looked at doing this yet, but am not sure if the upstream OSS-Fuzz patches are fully working with a local set up – @Navidem there were some issues with running the fuzz-introspector set up in OSS-Fuzz locally, is this fixed?
For that reason I think it shouldn’t be bumped atm because it will mix the two patches together, which will inevitably fail.
There were two major things changed recently in the compiler plugin: (1) we updated to latest LLVM version and new plugin manager, and (2) we add a global variable as a tag in the binary (this is a “major” change since it means now we add content to the module whereas previously we just observed). This issue could be related to that, potentially.