Hi Mark,

> Why can't you simply use the configure support?

I can't interfere with CFLAGS/CXXFLAGS passed by OSS-Fuzz. For example if
I used `--enable-sanitize-undefined` I would overwrite all the
`-fsanitize=...` and
`-fno-sanitize-recover=...` flags used by OSS-Fuzz. I also embed
elfutils into the
libbpf builds there so if I relied on the configure script I would
effectively instrument libbpf
and elfutils differently because libbpf would still be built with the
original CFLAGS.

Generally OSS-Fuzz doesn't expect its CFLAGS/CXXFLAGS to be changed in
any way by build
systems. When they collide stuff just stops working sometimes. The
latest example would be
https://github.com/google/oss-fuzz/pull/9427#issuecomment-1384195091
(where meson collided
with OSS-Fuzz and systemd, lxc and dbus-broker just failed to compile).

> Also I think there is simply a bug in clang that it doesn't link
> properly with libasan/ubsan when -fsanitize=address/undefined is given.

I think it's always been this way and it's unlikely to ever be fixed.
Issues like
https://bugs.llvm.org/show_bug.cgi?id=30333 have been open for years and
for example meson just gave up and started printing warnings in
https://github.com/mesonbuild/meson/commit/bde99eb6c40a9c7bc4055b0dc84a31021b7623d2
to make it clear that it isn't responsible for making clang, ASan and
--no-undefined,z,defs work.

> If you could add a configure check for that bug then we could add the
> no no-undefined trick independent of compiler used.

I'll try to figure out how it can be done. Apart from OSS-Fuzz (which
I think is a corner case in a way)
It should hopefully make `--enable-sanitize-*` work with clang.

Thanks,
Evgeny Vereshchagin

Reply via email to