On Tue, Feb 06, 2024 at 11:54:23AM +0000, Richard W.M. Jones wrote:
>   https://koji.fedoraproject.org/koji/taskinfo?taskID=113035034
>   https://bugzilla.redhat.com/show_bug.cgi?id=2262539
> 
> The new AFL++ (American Fuzzy Lop, a fuzzing tool) in Rawhide appears
> to be building a GCC plugin, contained in one or all of these newly
> added files:
> 
>   %global afl_helper_path %{_libdir}/afl
>   %{_bindir}/afl-gcc-fast
>   %{_bindir}/afl-g++-fast
>   %{afl_helper_path}/afl-gcc-cmplog-pass.so
>   %{afl_helper_path}/afl-gcc-cmptrs-pass.so
>   %{afl_helper_path}/afl-gcc-pass.so
>   %{afl_helper_path}/afl-gcc-rt.o
>   %{afl_helper_path}/injection-pass.so
> 
> I'm going to guess this will introduce a dependency on the exact
> version of GCC (major only? or major.minor? not sure).  Just like
> annobin.  Which might require that this package is rebuilt when GCC is
> rebuilt (only major? or all rebuilds? again, don't know).
> 
> If this proves to be a problem then I can drop the GCC plugin usage,
> or we could work out a process to deal with rebuilding.
> 
> Anyway, let's look out for this and see if it causes trouble, and then
> decide what to do.

Guess it depends on what exactly it uses.
Obviously, there must be a dependency on the major version.  The plugin API
(which is essentilly everything in the compiler) can change obviously at any
time, but in reality on release branches (at least past the major.1 release)
it doesn't change much very often, from the annobin experience the only
major problematic thing are accesses to options - global_options{,_set} and
the like, including through macros like flag_* or opt_for_fn etc.

As described in https://gcc.gnu.org/r11-5149 , annobin has some code to find
out offsets of options in global_options{,_set} etc. even if it has been
built against different version of gcc (same major, but from different
date), where perhaps some options have been added or removed and that in
turn caused reshuffling of options which were there before and are still in
there but at different offsets.

        Jakub
--
_______________________________________________
devel mailing list -- devel@lists.fedoraproject.org
To unsubscribe send an email to devel-le...@lists.fedoraproject.org
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/devel@lists.fedoraproject.org
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue

Reply via email to