On Wed, Jan 17, 2024 at 09:04:08AM +0000, Iain Sandoe wrote:
> > On 17 Jan 2024, at 08:55, Iain Sandoe <[email protected]> wrote:
> >
> > Tested on x86_64, aarch64 Darwin21 (which default to heap-based trampolines)
> > and on x86_64 Darwin19 and Linux (which default to executable stack
> > trampolines).
> > OK for trunk?
>
> Hmm.. maybe this is not right and the builtins should still be named
> __builtin (with
> the fallback function only renamed) or alternatively, add these as libfuncs
> only?
>
> > Iain
> >
> > --- 8< ---
> >
> > The symbols for the functions supporting heap-based trampolines were
> > exported at an incorrect symbol version, the following patch fixes that.
> >
> > As requested in the PR, this also renames __builtin_nested_func_ptr* to
> > __gcc_nested_func_ptr*.
> >
> > PR libgcc/113402
> >
> > gcc/ChangeLog:
> >
> > * builtins.def
> > (BUILT_IN_NESTED_PTR_CREATED): Rename __builtin_nested_func_ptr_created
> > to __gcc_nested_func_ptr_created.
> > (BUILT_IN_NESTED_PTR_DELETED): Rename __builtin_nested_func_ptr_deleted
> > to __gcc_nested_func_ptr_deleted.
The normal way would be call the builtins in the compiler
__builtin___gcc_nested_func_ptr_*
and expand them to the __gcc_nested_func_ptr_* calls.
See e.g. __builtin___clear_cache.
Jakub