From nobody Sat Oct 25 23:41:31 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1516118084737722.2563053916781; Tue, 16 Jan 2018 07:54:44 -0800 (PST) Received: from localhost ([::1]:43234 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ebTZU-0004Y8-0a for importer@patchew.org; Tue, 16 Jan 2018 10:54:44 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:40924) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ebSwK-0000Ag-7T for qemu-devel@nongnu.org; Tue, 16 Jan 2018 10:14:25 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ebSwA-0003d1-UX for qemu-devel@nongnu.org; Tue, 16 Jan 2018 10:14:16 -0500 Received: from mx1.redhat.com ([209.132.183.28]:29717) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1ebSvz-0003XA-C0; Tue, 16 Jan 2018 10:13:55 -0500 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 76B71F0CEE; Tue, 16 Jan 2018 15:13:54 +0000 (UTC) Received: from localhost (ovpn-112-58.ams2.redhat.com [10.36.112.58]) by smtp.corp.redhat.com (Postfix) with ESMTP id 821745D70C; Tue, 16 Jan 2018 15:13:20 +0000 (UTC) From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= To: qemu-devel@nongnu.org Date: Tue, 16 Jan 2018 16:11:50 +0100 Message-Id: <20180116151152.4040-2-marcandre.lureau@redhat.com> In-Reply-To: <20180116151152.4040-1-marcandre.lureau@redhat.com> References: <20180116151152.4040-1-marcandre.lureau@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.38]); Tue, 16 Jan 2018 15:13:54 +0000 (UTC) Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 209.132.183.28 Subject: [Qemu-devel] [PATCH 1/3] exynos4210: workaround UBSAN compilation error X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: peter.maydell@linaro.org, Igor Mitsyanko , "open list:Exynos" , stefanha@redhat.com, =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , pbonzini@redhat.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" gcc 5.4.0-6ubuntu1~16.04.5 build with UBSAN enabled error: CC hw/display/exynos4210_fimd.o /home/petmay01/linaro/qemu-for-merges/hw/display/exynos4210_fimd.c: In function =E2=80=98fimd_get_buffer_id=E2=80=99: /home/petmay01/linaro/qemu-for-merges/hw/display/exynos4210_fimd.c:1105:5: error: case label does not reduce to an integer constant case FIMD_WINCON_BUF2_STAT: Because FIMD_WINCON_BUF2_STAT case contains an integer overflow, use U suffix to get the unsigned type. Signed-off-by: Marc-Andr=C3=A9 Lureau --- hw/display/exynos4210_fimd.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/display/exynos4210_fimd.c b/hw/display/exynos4210_fimd.c index fd0b2bec65..86e37e93e9 100644 --- a/hw/display/exynos4210_fimd.c +++ b/hw/display/exynos4210_fimd.c @@ -98,7 +98,7 @@ #define FIMD_WINCON_BUFSTATUS ((1 << 21) | (1 << 31)) #define FIMD_WINCON_BUF0_STAT ((0 << 21) | (0 << 31)) #define FIMD_WINCON_BUF1_STAT ((1 << 21) | (0 << 31)) -#define FIMD_WINCON_BUF2_STAT ((0 << 21) | (1 << 31)) +#define FIMD_WINCON_BUF2_STAT ((0 << 21) | (1U << 31)) #define FIMD_WINCON_BUFSELECT ((1 << 20) | (1 << 30)) #define FIMD_WINCON_BUF0_SEL ((0 << 20) | (0 << 30)) #define FIMD_WINCON_BUF1_SEL ((1 << 20) | (0 << 30)) --=20 2.16.0.rc1.1.gef27df75a1 From nobody Sat Oct 25 23:41:31 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1516118262948570.7239612063794; Tue, 16 Jan 2018 07:57:42 -0800 (PST) Received: from localhost ([::1]:43329 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ebTcM-0007Ci-4v for importer@patchew.org; Tue, 16 Jan 2018 10:57:42 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:41126) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ebSwy-0000lh-Nw for qemu-devel@nongnu.org; Tue, 16 Jan 2018 10:14:57 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ebSwv-0003vQ-Lk for qemu-devel@nongnu.org; Tue, 16 Jan 2018 10:14:56 -0500 Received: from mx1.redhat.com ([209.132.183.28]:53034) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1ebSwv-0003v2-Fj for qemu-devel@nongnu.org; Tue, 16 Jan 2018 10:14:53 -0500 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 8B3CF32FA0; Tue, 16 Jan 2018 15:14:52 +0000 (UTC) Received: from localhost (ovpn-112-58.ams2.redhat.com [10.36.112.58]) by smtp.corp.redhat.com (Postfix) with ESMTP id EDDE97E240; Tue, 16 Jan 2018 15:13:55 +0000 (UTC) From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= To: qemu-devel@nongnu.org Date: Tue, 16 Jan 2018 16:11:51 +0100 Message-Id: <20180116151152.4040-3-marcandre.lureau@redhat.com> In-Reply-To: <20180116151152.4040-1-marcandre.lureau@redhat.com> References: <20180116151152.4040-1-marcandre.lureau@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.16 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.26]); Tue, 16 Jan 2018 15:14:52 +0000 (UTC) Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 209.132.183.28 Subject: [Qemu-devel] [PATCH 2/3] build-sys: add --enable-sanitizers X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: pbonzini@redhat.com, =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , stefanha@redhat.com, peter.maydell@linaro.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" Typical slowdown introduced by AddressSanitizer is 2x. UBSan shouldn't have much impact on runtime cost. Enable it by default when --enable-debug, unless --disable-sanitizers. Signed-off-by: Marc-Andr=C3=A9 Lureau --- configure | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/configure b/configure index 6d8c996c62..9a435917cc 100755 --- a/configure +++ b/configure @@ -342,6 +342,7 @@ rdma=3D"" gprof=3D"no" debug_tcg=3D"no" debug=3D"no" +sanitizers=3D"" fortify_source=3D"" strip_opt=3D"yes" tcg_interpreter=3D"no" @@ -994,6 +995,10 @@ for opt do strip_opt=3D"no" fortify_source=3D"no" ;; + --enable-sanitizers) sanitizers=3D"yes" + ;; + --disable-sanitizers) sanitizers=3D"no" + ;; --enable-sparse) sparse=3D"yes" ;; --disable-sparse) sparse=3D"no" @@ -1471,6 +1476,7 @@ Advanced options (experts only): --firmwarepath=3DPATH search PATH for firmware files --with-confsuffix=3DSUFFIX suffix for QEMU data inside datadir/libdir/sy= sconfdir [$confsuffix] --enable-debug enable common debug build options + --enable-sanitizers enable default sanitizers --disable-strip disable stripping binaries --disable-werror disable compilation abort on warning --disable-stack-protector disable compiler-provided stack protection @@ -5185,6 +5191,28 @@ if compile_prog "" "" ; then have_utmpx=3Dyes fi =20 +########################################## +# checks for sanitizers + +write_c_skeleton + +have_asan=3Dno +have_ubsan=3Dno + +# enable sanitizers by default if --enable-debug +if test "$sanitizers" =3D "" -a "$debug" =3D "yes"; then + sanitizers=3Dyes +fi + +if test "$sanitizers" =3D "yes" ; then + if compile_prog "$CPU_CFLAGS -Werror -fsanitize=3Daddress" ""; then + have_asan=3Dyes + fi + if compile_prog "$CPU_CFLAGS -Werror -fsanitize=3Dundefined" ""; then + have_ubsan=3Dyes + fi +fi + ########################################## # End of CC checks # After here, no more $cc or $ld runs @@ -5209,6 +5237,13 @@ else CFLAGS=3D"-O2 $CFLAGS" fi =20 +if test "$have_asan" =3D "yes"; then + CFLAGS=3D"-fsanitize=3Daddress $CFLAGS" +fi +if test "$have_ubsan" =3D "yes"; then + CFLAGS=3D"-fsanitize=3Dundefined $CFLAGS" +fi + ########################################## # Do we have libnfs if test "$libnfs" !=3D "no" ; then --=20 2.16.0.rc1.1.gef27df75a1 From nobody Sat Oct 25 23:41:31 2025 Delivered-To: importer@patchew.org Received-SPF: temperror (zoho.com: Error in retrieving data from DNS) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; spf=temperror (zoho.com: Error in retrieving data from DNS) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1516119100735171.8078742939325; Tue, 16 Jan 2018 08:11:40 -0800 (PST) Received: from localhost ([::1]:44336 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ebTpp-00030F-Fa for importer@patchew.org; Tue, 16 Jan 2018 11:11:37 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:41306) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ebSxr-0001YE-5Q for qemu-devel@nongnu.org; Tue, 16 Jan 2018 10:15:57 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ebSxk-0004IH-KR for qemu-devel@nongnu.org; Tue, 16 Jan 2018 10:15:51 -0500 Received: from mx1.redhat.com ([209.132.183.28]:47410) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1ebSxk-0004I1-Bb for qemu-devel@nongnu.org; Tue, 16 Jan 2018 10:15:44 -0500 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 766C3B6D0F; Tue, 16 Jan 2018 15:15:43 +0000 (UTC) Received: from localhost (ovpn-112-58.ams2.redhat.com [10.36.112.58]) by smtp.corp.redhat.com (Postfix) with ESMTP id DAFD65D70A; Tue, 16 Jan 2018 15:14:52 +0000 (UTC) From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= To: qemu-devel@nongnu.org Date: Tue, 16 Jan 2018 16:11:52 +0100 Message-Id: <20180116151152.4040-4-marcandre.lureau@redhat.com> In-Reply-To: <20180116151152.4040-1-marcandre.lureau@redhat.com> References: <20180116151152.4040-1-marcandre.lureau@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.25]); Tue, 16 Jan 2018 15:15:43 +0000 (UTC) Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 209.132.183.28 Subject: [Qemu-devel] [PATCH 3/3] ucontext: annotate coroutine stack for ASAN X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Kevin Wolf , peter.maydell@linaro.org, Fam Zheng , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , stefanha@redhat.com, =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , pbonzini@redhat.com, =?UTF-8?q?Alex=20Benn=C3=A9e?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_6 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" It helps ASAN to detect more leaks on coroutine stacks, and to get rid of some extra warnings. Before: tests/test-coroutine -p /basic/lifecycle /basic/lifecycle: =3D=3D20781=3D=3DWARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! =3D=3D20781=3D=3DWARNING: ASan is ignoring requested __asan_handle_no_retur= n: stack top: 0x7ffcb184d000; bottom 0x7ff6c4cfd000; size: 0x0005ecb50000 (25446121472) False positive error reports may follow For details see https://github.com/google/sanitizers/issues/189 OK After: tests/test-coroutine -p /basic/lifecycle /basic/lifecycle: =3D=3D21110=3D=3DWARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! OK A similar work would need to be done for sigaltstack & windows fibers to have similar coverage. Since ucontext is preferred, I didn't bother checking the other coroutine implementations for now. Update travis to fix the build with ASAN annotations. Signed-off-by: Marc-Andr=C3=A9 Lureau --- include/qemu/compiler.h | 4 ++++ util/coroutine-ucontext.c | 48 +++++++++++++++++++++++++++++++++++++++++++= ++++ .travis.yml | 3 ++- configure | 30 +++++++++++++++++++++++++++++ 4 files changed, 84 insertions(+), 1 deletion(-) diff --git a/include/qemu/compiler.h b/include/qemu/compiler.h index 340e5fdc09..5fcc4f7ec7 100644 --- a/include/qemu/compiler.h +++ b/include/qemu/compiler.h @@ -111,4 +111,8 @@ #define GCC_FMT_ATTR(n, m) #endif =20 +#ifndef __has_feature +#define __has_feature(x) 0 /* compatibility with non-clang compilers */ +#endif + #endif /* COMPILER_H */ diff --git a/util/coroutine-ucontext.c b/util/coroutine-ucontext.c index 6621f3f692..96af7f5aad 100644 --- a/util/coroutine-ucontext.c +++ b/util/coroutine-ucontext.c @@ -31,6 +31,13 @@ #include #endif =20 +#if defined(__SANITIZE_ADDRESS__) || __has_feature(address_sanitizer) +#ifdef HAVE_ASAN_IFACE_FIBER +#define CONFIG_ASAN 1 +#include +#endif +#endif + typedef struct { Coroutine base; void *stack; @@ -59,11 +66,37 @@ union cc_arg { int i[2]; }; =20 +static void finish_switch_fiber(void *fake_stack_save) +{ +#ifdef CONFIG_ASAN + const void *bottom_old; + size_t size_old; + + __sanitizer_finish_switch_fiber(fake_stack_save, &bottom_old, &size_ol= d); + + if (!leader.stack) { + leader.stack =3D (void *)bottom_old; + leader.stack_size =3D size_old; + } +#endif +} + +static void start_switch_fiber(void **fake_stack_save, + const void *bottom, size_t size) +{ +#ifdef CONFIG_ASAN + __sanitizer_start_switch_fiber(fake_stack_save, bottom, size); +#endif +} + static void coroutine_trampoline(int i0, int i1) { union cc_arg arg; CoroutineUContext *self; Coroutine *co; + void *fake_stack_save =3D NULL; + + finish_switch_fiber(NULL); =20 arg.i[0] =3D i0; arg.i[1] =3D i1; @@ -72,9 +105,13 @@ static void coroutine_trampoline(int i0, int i1) =20 /* Initialize longjmp environment and switch back the caller */ if (!sigsetjmp(self->env, 0)) { + start_switch_fiber(&fake_stack_save, + leader.stack, leader.stack_size); siglongjmp(*(sigjmp_buf *)co->entry_arg, 1); } =20 + finish_switch_fiber(fake_stack_save); + while (true) { co->entry(co->entry_arg); qemu_coroutine_switch(co, co->caller, COROUTINE_TERMINATE); @@ -87,6 +124,7 @@ Coroutine *qemu_coroutine_new(void) ucontext_t old_uc, uc; sigjmp_buf old_env; union cc_arg arg =3D {0}; + void *fake_stack_save =3D NULL; =20 /* The ucontext functions preserve signal masks which incurs a * system call overhead. sigsetjmp(buf, 0)/siglongjmp() does not @@ -122,8 +160,12 @@ Coroutine *qemu_coroutine_new(void) =20 /* swapcontext() in, siglongjmp() back out */ if (!sigsetjmp(old_env, 0)) { + start_switch_fiber(&fake_stack_save, co->stack, co->stack_size); swapcontext(&old_uc, &uc); } + + finish_switch_fiber(fake_stack_save); + return &co->base; } =20 @@ -169,13 +211,19 @@ qemu_coroutine_switch(Coroutine *from_, Coroutine *to= _, CoroutineUContext *from =3D DO_UPCAST(CoroutineUContext, base, from_); CoroutineUContext *to =3D DO_UPCAST(CoroutineUContext, base, to_); int ret; + void *fake_stack_save =3D NULL; =20 current =3D to_; =20 ret =3D sigsetjmp(from->env, 0); if (ret =3D=3D 0) { + start_switch_fiber(action =3D=3D COROUTINE_TERMINATE ? + NULL : &fake_stack_save, to->stack, to->stack_s= ize); siglongjmp(to->env, action); } + + finish_switch_fiber(fake_stack_save); + return ret; } =20 diff --git a/.travis.yml b/.travis.yml index f583839755..f2291e87a6 100644 --- a/.travis.yml +++ b/.travis.yml @@ -13,12 +13,13 @@ addons: - libattr1-dev - libbrlapi-dev - libcap-ng-dev + - libgcc-6-dev - libgnutls-dev - libgtk-3-dev - libiscsi-dev - liblttng-ust-dev - - libnfs-dev - libncurses5-dev + - libnfs-dev - libnss3-dev - libpixman-1-dev - libpng12-dev diff --git a/configure b/configure index 9a435917cc..0160e24005 100755 --- a/configure +++ b/configure @@ -5198,6 +5198,8 @@ write_c_skeleton =20 have_asan=3Dno have_ubsan=3Dno +have_asan_iface_h=3Dno +have_asan_iface_fiber=3Dno =20 # enable sanitizers by default if --enable-debug if test "$sanitizers" =3D "" -a "$debug" =3D "yes"; then @@ -5211,12 +5213,29 @@ if test "$sanitizers" =3D "yes" ; then if compile_prog "$CPU_CFLAGS -Werror -fsanitize=3Dundefined" ""; then have_ubsan=3Dyes fi + + if check_include "sanitizer/asan_interface.h" ; then + have_asan_iface_h=3Dyes + fi + + cat > $TMPC << EOF +#include +int main(void) { + __sanitizer_start_switch_fiber(0, 0, 0); + return 0; +} +EOF + if compile_prog "$CPU_CFLAGS -Werror -fsanitize=3Daddress" "" ; then + have_asan_iface_fiber=3Dyes + fi fi =20 ########################################## # End of CC checks # After here, no more $cc or $ld runs =20 +write_c_skeleton + if test "$gcov" =3D "yes" ; then CFLAGS=3D"-fprofile-arcs -ftest-coverage -g $CFLAGS" LDFLAGS=3D"-fprofile-arcs -ftest-coverage $LDFLAGS" @@ -5239,6 +5258,13 @@ fi =20 if test "$have_asan" =3D "yes"; then CFLAGS=3D"-fsanitize=3Daddress $CFLAGS" + if test "$have_asan_iface_h" =3D "no" ; then + echo "ASAN build enabled, but ASAN header missing." \ + "Without code annotation, the report may be inferior." + elif test "$have_asan_iface_fiber" =3D "no" ; then + echo "ASAN build enabled, but ASAN header is too old." \ + "Without code annotation, the report may be inferior." + fi fi if test "$have_ubsan" =3D "yes"; then CFLAGS=3D"-fsanitize=3Dundefined $CFLAGS" @@ -6220,6 +6246,10 @@ if test "$valgrind_h" =3D "yes" ; then echo "CONFIG_VALGRIND_H=3Dy" >> $config_host_mak fi =20 +if test "$have_asan_iface_fiber" =3D "yes" ; then + echo "HAVE_ASAN_IFACE_FIBER=3Dy" >> $config_host_mak +fi + if test "$has_environ" =3D "yes" ; then echo "CONFIG_HAS_ENVIRON=3Dy" >> $config_host_mak fi --=20 2.16.0.rc1.1.gef27df75a1