[PATCH v2 14/28] string: Use asm alias instead of symbol redirections for stpcpy and mempcpy
H.J. Lu
hjl.tools@gmail.com
Tue Oct 28 20:05:30 GMT 2025
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.
> >> #endif
> >>
> >> extern void *__memcpy_chk (void *__restrict __dest,
> >> --
> >> 2.43.0
> >>
> >
> > Can it be moved to symbol-hacks.h?
> >
>
> This would require to add a reference of NO_MEMPCPY_STPCPY_REDIRECT,
> not sure if this is a better approach.
--
H.J.
More information about the Libc-alpha
mailing list