https://bugzilla.redhat.com/show_bug.cgi?id=2459753
AFL is a popular fuzzing tool that we ship in Fedora as 'american-fuzzy-lop'. It includes various methods for instrumenting the binaries, but for this case we're looking just at the GCC plugin method.
Apparently GCC plugins depend on the exact GCC major.minor.release version (rather than, say, just the major version as with Clang). Or AFL *thinks* it needs to depend on the exact version, although you could set an environment variable to skip the check, see:
https://github.com/AFLplusplus/AFLplusplus/blob/edaf3ad04d64185cae856c75ca46...
Do GCC plugins really depend on the exact major.minor.release of GCC?
If so we're going to have to encode the GCC NVR into the dependencies of the package which will cause much pain to everyone.
Rich.
* Richard W. M. Jones:
Apparently GCC plugins depend on the exact GCC major.minor.release version (rather than, say, just the major version as with Clang). Or AFL *thinks* it needs to depend on the exact version, although you could set an environment variable to skip the check, see:
https://github.com/AFLplusplus/AFLplusplus/blob/edaf3ad04d64185cae856c75ca46...
Do GCC plugins really depend on the exact major.minor.release of GCC?
They do. We rebuild the annobin plugin each time we update GCC, and reconfigure to use that annobin version if the separately built annobin plugin was built by a different GCC version (and not the currently installed one).
Thanks, Florian
On Thu, Jun 25, 2026 at 06:21:01PM +0200, Florian Weimer wrote:
- Richard W. M. Jones:
Apparently GCC plugins depend on the exact GCC major.minor.release version (rather than, say, just the major version as with Clang). Or AFL *thinks* it needs to depend on the exact version, although you could set an environment variable to skip the check, see:
https://github.com/AFLplusplus/AFLplusplus/blob/edaf3ad04d64185cae856c75ca46...
Do GCC plugins really depend on the exact major.minor.release of GCC?
They do. We rebuild the annobin plugin each time we update GCC, and reconfigure to use that annobin version if the separately built annobin plugin was built by a different GCC version (and not the currently installed one).
Sorry for the late reply here.
I don't have any good ideas here, except that I want to avoid having to rebuild AFL every time we rebuild GCC. That's not going to make anyone happy.
Is there a stable subset of APIs or is there just no hope?
Rich.