diff options
author | David Gibson <david@gibson.dropbear.id.au> | 2023-11-16 20:15:59 +1100 |
---|---|---|
committer | Stefano Brivio <sbrivio@redhat.com> | 2023-11-19 09:10:30 +0100 |
commit | 4f1709db1b61c14729a6313d860323ec65772a37 (patch) | |
tree | 47d10806cf44caf84a38126e594facb3a40aad56 /passt.h | |
parent | f7724647b19e0e20d6a11e0405f15e4ff169394e (diff) | |
download | passt-4f1709db1b61c14729a6313d860323ec65772a37.tar passt-4f1709db1b61c14729a6313d860323ec65772a37.tar.gz passt-4f1709db1b61c14729a6313d860323ec65772a37.tar.bz2 passt-4f1709db1b61c14729a6313d860323ec65772a37.tar.lz passt-4f1709db1b61c14729a6313d860323ec65772a37.tar.xz passt-4f1709db1b61c14729a6313d860323ec65772a37.tar.zst passt-4f1709db1b61c14729a6313d860323ec65772a37.zip |
valgrind: Don't disable optimizations for valgrind builds2023_11_19.4f1709d
When we plan to use valgrind, we need to build passt a bit differently:
* We need debug symbols so that valgrind can match problems it finds to
meaningful locations
* We need to allow additional syscalls in the seccomp filter, because
valgrind's wrappers need them
Currently we also disable optimization (-O0). This is unfortunate, because
it will make valgrind tests even slower than they'd otherwise be. Worse,
it's possible that the asm behaviour without optimization might be
different enough that valgrind could miss a use of uninitialized variable
or other fault it would detect.
I suspect this was originally done because without it inlining could mean
that suppressions we use don't reliably match the places we want them to.
Alas, it turns out this is true even with -O0. We've now implemented a
more robust workaround for this (explicit ((noinline)) attributes when
compiled with -DVALGRIND). So, we can re-enable optimization for valgrind
builds, making them closer to regular builds.
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Signed-off-by: Stefano Brivio <sbrivio@redhat.com>
Diffstat (limited to 'passt.h')
0 files changed, 0 insertions, 0 deletions