[Bug bootstrap/69329] [6 Regression] --with-build-config=bootstrap-asan fails because LSAN_OPTIONS is not honored

jakub at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Thu Jan 21 15:07:00 GMT 2016


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69329

--- Comment #2 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
(In reply to Mikhail Maltsev from comment #1)
> I tried this patch:
> 
> diff --git a/Makefile.in b/Makefile.in
> index 2733c4d..31ee4c0 100644
> --- a/Makefile.in
> +++ b/Makefile.in
> @@ -789,7 +789,8 @@ BASE_FLAGS_TO_PASS = \
>         $(CXX_FOR_TARGET_FLAG_TO_PASS) \
>         "TFLAGS=$(TFLAGS)" \
>         "CONFIG_SHELL=$(SHELL)" \
> -       "MAKEINFO=$(MAKEINFO) $(MAKEINFOFLAGS)" 
> +       "MAKEINFO=$(MAKEINFO) $(MAKEINFOFLAGS)" \
> +       "LSAN_OPTIONS=$(LSAN_OPTIONS)"
>  
>  # We leave this in just in case, but it is not needed anymore.
>  RECURSE_FLAGS_TO_PASS = $(BASE_FLAGS_TO_PASS)
> diff --git a/Makefile.tpl b/Makefile.tpl
> index f7bb77e..860175e 100644
> --- a/Makefile.tpl
> +++ b/Makefile.tpl
> @@ -590,7 +590,8 @@ BASE_FLAGS_TO_PASS =[+ FOR flags_to_pass +][+ IF
> optional +] \
>         $(CXX_FOR_TARGET_FLAG_TO_PASS) \
>         "TFLAGS=$(TFLAGS)" \
>         "CONFIG_SHELL=$(SHELL)" \
> -       "MAKEINFO=$(MAKEINFO) $(MAKEINFOFLAGS)" 
> +       "MAKEINFO=$(MAKEINFO) $(MAKEINFOFLAGS)" \
> +       "LSAN_OPTIONS=$(LSAN_OPTIONS)"
>  
>  # We leave this in just in case, but it is not needed anymore.
>  RECURSE_FLAGS_TO_PASS = $(BASE_FLAGS_TO_PASS)
> 
> It fixes the issue but causes regressions for normal build (without ASAN
> instrumentation):
> 
> Running target unix/-m32
> FAIL: c-c++-common/asan/pr59063-2.c   -O2 -flto -fno-use-linker-plugin
> -flto-partition=none  (test for excess errors)
> UNRESOLVED: c-c++-common/asan/pr59063-2.c   -O2 -flto -fno-use-linker-plugin
> -flto-partition=none  compilation failed to produce executable
> FAIL: c-c++-common/asan/pr59063-2.c   -O2 -flto -fuse-linker-plugin
> -fno-fat-lto-objects  (test for excess errors)
> UNRESOLVED: c-c++-common/asan/pr59063-2.c   -O2 -flto -fuse-linker-plugin
> -fno-fat-lto-objects  compilation failed to produce executable
> 
> "compilation failed to produce executable" actually means link errors
> (-lasan not found).

That is just weird and I can't reproduce it.  That said, perhaps it would be
better to only propagate LSAN_OPTIONS down if it is set.  So replace
"LSAN_OPTIONS=$(LSAN_OPTIONS)" with
"$(if $(LSAN_OPTIONS),LSAN_OPTIONS=$(LSAN_OPTIONS))"
in both spots?


More information about the Gcc-bugs mailing list