[PATCH v2 14/28] string: Use asm alias instead of symbol redirections for stpcpy and mempcpy

H.J. Lu hjl.tools@gmail.com
Thu Oct 30 22:53:36 GMT 2025


On Thu, Oct 30, 2025 at 10:17 PM Adhemerval Zanella Netto
<adhemerval.zanella@linaro.org> wrote:
>
>
>
> On 28/10/25 17:05, H.J. Lu wrote:
> > On Wed, Oct 29, 2025 at 4:01 AM Adhemerval Zanella Netto
> > <adhemerval.zanella@linaro.org> wrote:
> >>
> >>
> >>
> >> On 28/10/25 16:17, H.J. Lu wrote:
> >>> On Wed, Oct 29, 2025 at 1:12 AM Adhemerval Zanella
> >>> <adhemerval.zanella@linaro.org> wrote:
> >>>>
> >>>> Commit 939da411433 added symbols redirections to handle ISO C
> >>>> namespace, however clang do not support to redeclare the function
> >>>> prototype.
> >>>>
> >>>> This patch replaces the symbol redirections by direct asm aliases, as
> >>>> done to handle libcall generation done by compiler on some loop
> >>>> optimizations.
> >>>>
> >>>> Checked on all affected ABIs.
> >>>> ---
> >>>>  include/string.h | 4 ++--
> >>>>  1 file changed, 2 insertions(+), 2 deletions(-)
> >>>>
> >>>> diff --git a/include/string.h b/include/string.h
> >>>> index c26ca0927c..2ea212a401 100644
> >>>> --- a/include/string.h
> >>>> +++ b/include/string.h
> >>>> @@ -188,8 +188,8 @@ extern __typeof (strsep) strsep attribute_hidden;
> >>>>    && !defined NO_MEMPCPY_STPCPY_REDIRECT
> >>>>  /* Redirect calls to __builtin_mempcpy and __builtin_stpcpy to call
> >>>>     __mempcpy and __stpcpy if not inlined.  */
> >>>> -extern __typeof (mempcpy) mempcpy __asm__ ("__mempcpy");
> >>>> -extern __typeof (stpcpy) stpcpy __asm__ ("__stpcpy");
> >>>> +__asm__ ("mempcpy = __mempcpy");
> >>>> +__asm__ ("stpcpy = __stpcpy");
> >
> > Please add a configure test to use asm alias only if symbol redirection
> > is unsupported.
>
> The configure check is an option; another is just set it for __clang__.
> I do not have a strong opinion.

I prefer a configure option and use asm only if the compiler doesn't alias.

-- 
H.J.


More information about the Libc-alpha mailing list