sim: set ASAN_OPTIONS=detect_leaks=0 when running igen and opc2c
authorSimon Marchi <simon.marchi@polymtl.ca>
Thu, 8 Apr 2021 13:49:30 +0000 (09:49 -0400)
committerSimon Marchi <simon.marchi@polymtl.ca>
Thu, 8 Apr 2021 13:49:30 +0000 (09:49 -0400)
commit2b8d134be46071f6869ed45ebbf521d91c93fb66
treeb7e9539146a59fd0cfa2dd562f217bbccbbf8aac
parent16e311ab6d4d379da18ad03bc5373f621f488f41
sim: set ASAN_OPTIONS=detect_leaks=0 when running igen and opc2c

The igen/dgen and opc2c tools leak their heap-allocated memory (on
purpose) at program exit, which makes AddressSanitizer fail the tool
execution.  This breaks the build, as it makes the tool return a
non-zero exit code.

Fix that by disabling leak detection through the setting of that
environment variable.

I also changed the opc2c rules for m32c to go through a temporary file.
What happened is that the failing opc2c would produce an incomplete file
(probably because ASan exits the process before stdout is flushed).
This meant that further make attempts didn't try to re-create the file,
as it already existed.  A "clean" was therefore necessary.  This can
also happen in regular builds if the user interrupts the build (^C) in
the middle of the opc2c execution and tries to resume it.  Going to a
temporary file avoids this issue.

sim/m32c/ChangeLog:

* Makefile.in: Set ASAN_OPTIONS when running opc2c.

sim/mips/ChangeLog:

* Makefile.in: Set ASAN_OPTIONS when running igen.

sim/mn10300/ChangeLog:

* Makefile.in: Set ASAN_OPTIONS when running igen.

sim/ppc/ChangeLog:

* Makefile.in: Set ASAN_OPTIONS when running igen.

sim/v850/ChangeLog:

* Makefile.in: Set ASAN_OPTIONS when running igen.

Change-Id: I00f21d4dc1aff0ef73471925d41ce7c23e83e082
sim/common/Make-common.in
sim/m32c/ChangeLog
sim/m32c/Makefile.in
sim/mips/ChangeLog
sim/mips/Makefile.in
sim/mn10300/ChangeLog
sim/mn10300/Makefile.in
sim/ppc/ChangeLog
sim/ppc/Makefile.in
sim/v850/ChangeLog
sim/v850/Makefile.in