qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] configure: force enable-sanitizers together with enable-fuzz


From: Alexander Bulekov
Subject: Re: [PATCH] configure: force enable-sanitizers together with enable-fuzzing
Date: Sun, 21 Feb 2021 10:37:46 -0500

On 210221 0459, Li Qiang wrote:
> If we execute configure with --enable-fuzzing but without
> --enable-sanitizers, we will have a lot of 'undefined reference'
> build error such as following:
> 
> clang-10  -o subprojects/libvhost-user/link-test 
> subprojects/libvhost-user/link-test.p/link-test.c.o -Wl,--as-needed 
> -Wl,--no-undefined -pie -Wl,--whole-archive -Wl,--start-group 
> subprojects/libvhost-user/libvhost-user.a -Wl,--end-group 
> -Wl,--no-whole-archive -Wl,--warn-common -Wl,-z,relro -Wl,-z,now -m64 
> -fstack-protector-strong -pthread
> /usr/bin/ld: subprojects/libvhost-user/link-test.p/link-test.c.o: in function 
> `main':
> /home/test/qemu/build/../subprojects/libvhost-user/link-test.c:34: undefined 
> reference to `__sancov_lowest_stack'
> /usr/bin/ld: 
> /home/test/qemu/build/../subprojects/libvhost-user/link-test.c:(.text.main[main]+0x55):
>  undefined reference to `__sancov_lowest_stack'
> /usr/bin/ld: 
> /home/test/qemu/build/../subprojects/libvhost-user/link-test.c:41: undefined 
> reference to `__sanitizer_cov_trace_const_cmp4'
> /usr/bin/ld: subprojects/libvhost-user/link-test.p/link-test.c.o: in function 
> `sancov.module_ctor_8bit_counters':
> link-test.c:(.text.sancov.module_ctor_8bit_counters[sancov.module_ctor_8bit_counters]+0x16):
>  undefined reference to `__sanitizer_cov_8bit_counters_init'
> /usr/bin/ld: 
> link-test.c:(.text.sancov.module_ctor_8bit_counters[sancov.module_ctor_8bit_counters]+0x2f):
>  undefined reference to `__sanitizer_cov_pcs_init'
> /usr/bin/ld: subprojects/libvhost-user/libvhost-user.a(libvhost-user.c.o): in 
> function `vu_gpa_to_va':
> /home/test/qemu/build/../subprojects/libvhost-user/libvhost-user.c:182: 
> undefined reference to `__sanitizer_cov_trace_const_cmp8'
> /usr/bin/ld: 
> /home/test/qemu/build/../subprojects/libvhost-user/libvhost-user.c:187: 
> undefined reference to `__sanitizer_cov_trace_cmp4'
> /usr/bin/ld: 
> /home/test/qemu/build/../subprojects/libvhost-user/libvhost-user.c:190: 
> undefined reference to `__sanitizer_cov_trace_cmp8'
> /usr/bin/ld: 
> /home/test/qemu/build/../subprojects/libvhost-user/libvhost-user.c:190: 
> undefined reference to `__sanitizer_cov_trace_cmp8'
> /usr/bin/ld: 
> /home/test/qemu/build/../subprojects/libvhost-user/libvhost-user.c:191: 
> undefined reference to `__sanitizer_cov_trace_cmp8'
> 
> Let's avoid this error by enforcing fuzzing and sanitizers together.
> 
> Signed-off-by: Li Qiang <liq3ea@163.com>

I usually build using something like "ninja qemu-fuzz-i386", so I missed
this failure. CI missed it because we only build-test --enable-fuzzing
--enable-sanitizers.

I'll send an alternate patch, which should hopefully fix the failure,
without requiring enable-sanitizers. ASAN can add 5-10x overhead to
fuzzing, so it is often useful to fuzz without ASAN for a while, before
switching it on.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]