-
-
Notifications
You must be signed in to change notification settings - Fork 345
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add sanitizer build options for host (#2842)
This PR adds a couple of build variables so host builds can be compiled with the available address sanitisers. I spent way too much time today trying to track down some odd behaviour with the graphics library virtual screen in MacOS. Since valgrind isn't available, I tried enabling some address sanitisers which I've not used before. Actually seems more effective than valgrind and is supported on both GCC and CLANG (and MacOS). Found the issue immediately. There are a lot of possible sanitizer options so I've picked some which look most helpful. Also added stack checking. All of this obviously affects build size and runtime speed. To try this out: ``` export ENABLE_SANITIZERS=1 make clean components-clean make flash run ``` That's it. `make list-config | grep SANITIZER` will show applicable options. NB. GCC requires the `libasan` and `libubsan` packages. **Bug in MacOS getHostAppDir** Bad len value causes memory corruption, very difficult to track down without valgrind/santizers. **Fix graphics virtual display handling with 64-bit host** Small fix found whilst hunting the above bug, affects all 64-bit builds not just MacOS.
- Loading branch information
Showing
6 changed files
with
60 additions
and
7 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters