Re: GCC plugins packaging (for AFL++)

"Richard W.M. Jones" <[email protected]> Tue, 21 Jul 2026 11:05:57 +0100
Newsgroups gmane.linux.redhat.fedora.devel
Message-ID <[email protected]>
On Tue, Jul 21, 2026 at 12:00:22PM +0200, Florian Weimer wrote:
> * Richard W. M. Jones:
> 
> > 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/edaf3ad04d64185cae856c75ca4676cbb14a35b5/instrumentation/afl-gcc-pass.so.cc#L621
> >> >
> >> > 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?
> 
> Thinks like the GCC options array are unstable, so there's really no
> good way to avoid recompilation.
> 
> How often do you expect to update AFL?

There's usually a new release every month or two.

> We could build the plugin during the GCC build itself, perhaps.

Unfortunately AFL uses a completely insane hand-rolled build system,
so I'm not confident that I could cleanly separate out the plugin from
the rest, or that the build system wouldn't change randomly in future
breaking everything.

I think it's probably best to leave it for now and see if any Fedora
users complain.  AFL has several other instrumentation methods so it
doesn't depend on the plugin.

Rich.

-- 
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming and virtualization blog: http://rwmj.wordpress.com
virt-p2v converts physical machines to virtual machines.  Boot with a
live CD or over the network (PXE) and turn machines into KVM guests.
http://libguestfs.org/virt-v2v

-- 
_______________________________________________
devel mailing list -- [email protected]
To unsubscribe send an email to [email protected]
Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/[email protected]
Do not reply to spam, report it: https://forge.fedoraproject.org/infra/tickets/issues/new