This repository was archived by the owner on Mar 22, 2024. It is now read-only.

Description
In 3ef34c1 the maybe_linking logic was removed, which will break any build system that invokes the compiler with -E for preprocessing only. We need to add the logic back at least for -E.
However, I am also concerned about the removal of the -shared case, which I added long ago to afl-clang-fast because it failed with mozilla-central otherwise. If multiple definitions of the runtime are linked into a single binary, the linker will deduplicate these in most cases (I wouldn't rely on this either, but I believe most modern linkers can deal with this). However, if you add the runtime to a shared library and a binary and then load the shared library into the binary, you will end up with two runtimes. This can potentially break stuff (we fixed this with sanitizers before, where it caused major problems).
I will try to come up with a PR later that adds the -E logic and maybe the -shared logic as well.
Cc @andreafioraldi