public inbox for glibc-cvs@sourceware.org
help / color / mirror / Atom feed
* [glibc/azanella/clang] string: Use asm alias instead of symbol redirections for stpcpy and mempcpy
@ 2022-04-29 14:04 Adhemerval Zanella
  0 siblings, 0 replies; 20+ messages in thread
From: Adhemerval Zanella @ 2022-04-29 14:04 UTC (permalink / raw)
  To: glibc-cvs

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=48391c8199797f86b1e90c2969f3e4d5346f1b8d

commit 48391c8199797f86b1e90c2969f3e4d5346f1b8d
Author: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Date:   Tue Mar 15 08:41:43 2022 -0300

    string: Use asm alias instead of symbol redirections for stpcpy and mempcpy
    
    Commit 939da411433 added symbols redirections to handle ISO C
    namespace, however some compiler does not support to redeclare the
    function prototype.  Moving these defintions to exported header
    it not a good practice (it exposes a internal implementation and
    it would require to add macros to define it only internally).
    
    Instead this patch replaces the symbol redirections by direct asm
    aliases, as done to handle libcall generation done by compiler on
    some loop optimizations. The only issue is sparc binutils generates
    an extra __mempcpy plt not called anywhere in the code, which indicates
    a binutils issue (this is added in the localplt.data for now).
    
    Checked on most of affected ABIs.

Diff:
---
 include/string.h                                    | 4 ++--
 sysdeps/unix/sysv/linux/sparc/sparc64/localplt.data | 3 +++
 2 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/include/string.h b/include/string.h
index 21f641a413..44c4049053 100644
--- a/include/string.h
+++ b/include/string.h
@@ -176,8 +176,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");
 #endif
 
 extern void *__memcpy_chk (void *__restrict __dest,
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/localplt.data b/sysdeps/unix/sysv/linux/sparc/sparc64/localplt.data
index 6a216f3a5a..21a5fe65ba 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/localplt.data
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/localplt.data
@@ -16,6 +16,9 @@ libc.so: calloc
 libc.so: free
 libc.so: malloc
 libc.so: realloc
+# Unreferenced PLT created by the symbols aliases used to redirect
+# the compiler generated mempcpy/stpcyp calls done by builtin usage.
+libc.so: __mempcpy
 libm.so: matherr
 # The TLS-enabled version of these functions is interposed from libc.so.
 ld.so: _dl_signal_error


^ permalink raw reply	[flat|nested] 20+ messages in thread
* [glibc/azanella/clang] string: Use asm alias instead of symbol redirections for stpcpy and mempcpy
@ 2024-02-09 17:31 Adhemerval Zanella
  0 siblings, 0 replies; 20+ messages in thread
From: Adhemerval Zanella @ 2024-02-09 17:31 UTC (permalink / raw)
  To: glibc-cvs

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=0f01a551a9d114c929261df8263eda2462786229

commit 0f01a551a9d114c929261df8263eda2462786229
Author: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Date:   Tue Mar 15 08:41:43 2022 -0300

    string: Use asm alias instead of symbol redirections for stpcpy and mempcpy
    
    Commit 939da411433 added symbols redirections to handle ISO C
    namespace, however some compiler does not support to redeclare the
    function prototype.  Moving these defintions to exported header
    it not a good practice (it exposes a internal implementation and
    it would require to add macros to define it only internally).
    
    Instead this patch replaces the symbol redirections by direct asm
    aliases, as done to handle libcall generation done by compiler on
    some loop optimizations. The only issue is sparc binutils generates
    an extra __mempcpy plt not called anywhere in the code, which indicates
    a binutils issue (this is added in the localplt.data for now).
    
    Checked on all affected ABIs.

Diff:
---
 include/string.h                                    | 4 ++--
 sysdeps/unix/sysv/linux/sparc/sparc32/localplt.data | 3 +++
 sysdeps/unix/sysv/linux/sparc/sparc64/localplt.data | 3 +++
 3 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/include/string.h b/include/string.h
index 3b4c6007d7..082865caad 100644
--- a/include/string.h
+++ b/include/string.h
@@ -179,8 +179,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");
 #endif
 
 extern void *__memcpy_chk (void *__restrict __dest,
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/localplt.data b/sysdeps/unix/sysv/linux/sparc/sparc32/localplt.data
index b5fc6d9c3a..327276d9c2 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/localplt.data
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/localplt.data
@@ -17,4 +17,7 @@ libc.so: calloc
 libc.so: free
 libc.so: malloc
 libc.so: realloc
+# Unreferenced PLT created by the symbols aliases used to redirect
+# the compiler generated mempcpy/stpcyp calls done by builtin usage.
+libc.so: __mempcpy
 libm.so: matherr
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/localplt.data b/sysdeps/unix/sysv/linux/sparc/sparc64/localplt.data
index 15c0f8ccf7..e7ab61dcbe 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/localplt.data
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/localplt.data
@@ -17,4 +17,7 @@ libc.so: calloc
 libc.so: free
 libc.so: malloc
 libc.so: realloc
+# Unreferenced PLT created by the symbols aliases used to redirect
+# the compiler generated mempcpy/stpcyp calls done by builtin usage.
+libc.so: __mempcpy
 libm.so: matherr

^ permalink raw reply	[flat|nested] 20+ messages in thread
* [glibc/azanella/clang] string: Use asm alias instead of symbol redirections for stpcpy and mempcpy
@ 2024-02-07 14:06 Adhemerval Zanella
  0 siblings, 0 replies; 20+ messages in thread
From: Adhemerval Zanella @ 2024-02-07 14:06 UTC (permalink / raw)
  To: glibc-cvs

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=72170b200a13688e37d3d14c648e3ce70d5ba8b8

commit 72170b200a13688e37d3d14c648e3ce70d5ba8b8
Author: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Date:   Tue Mar 15 08:41:43 2022 -0300

    string: Use asm alias instead of symbol redirections for stpcpy and mempcpy
    
    Commit 939da411433 added symbols redirections to handle ISO C
    namespace, however some compiler does not support to redeclare the
    function prototype.  Moving these defintions to exported header
    it not a good practice (it exposes a internal implementation and
    it would require to add macros to define it only internally).
    
    Instead this patch replaces the symbol redirections by direct asm
    aliases, as done to handle libcall generation done by compiler on
    some loop optimizations. The only issue is sparc binutils generates
    an extra __mempcpy plt not called anywhere in the code, which indicates
    a binutils issue (this is added in the localplt.data for now).
    
    Checked on all affected ABIs.

Diff:
---
 include/string.h                                    | 4 ++--
 sysdeps/unix/sysv/linux/sparc/sparc32/localplt.data | 3 +++
 sysdeps/unix/sysv/linux/sparc/sparc64/localplt.data | 3 +++
 3 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/include/string.h b/include/string.h
index 3b4c6007d7..082865caad 100644
--- a/include/string.h
+++ b/include/string.h
@@ -179,8 +179,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");
 #endif
 
 extern void *__memcpy_chk (void *__restrict __dest,
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/localplt.data b/sysdeps/unix/sysv/linux/sparc/sparc32/localplt.data
index b5fc6d9c3a..327276d9c2 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/localplt.data
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/localplt.data
@@ -17,4 +17,7 @@ libc.so: calloc
 libc.so: free
 libc.so: malloc
 libc.so: realloc
+# Unreferenced PLT created by the symbols aliases used to redirect
+# the compiler generated mempcpy/stpcyp calls done by builtin usage.
+libc.so: __mempcpy
 libm.so: matherr
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/localplt.data b/sysdeps/unix/sysv/linux/sparc/sparc64/localplt.data
index 15c0f8ccf7..e7ab61dcbe 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/localplt.data
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/localplt.data
@@ -17,4 +17,7 @@ libc.so: calloc
 libc.so: free
 libc.so: malloc
 libc.so: realloc
+# Unreferenced PLT created by the symbols aliases used to redirect
+# the compiler generated mempcpy/stpcyp calls done by builtin usage.
+libc.so: __mempcpy
 libm.so: matherr

^ permalink raw reply	[flat|nested] 20+ messages in thread
* [glibc/azanella/clang] string: Use asm alias instead of symbol redirections for stpcpy and mempcpy
@ 2024-01-29 17:56 Adhemerval Zanella
  0 siblings, 0 replies; 20+ messages in thread
From: Adhemerval Zanella @ 2024-01-29 17:56 UTC (permalink / raw)
  To: glibc-cvs

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=2af4720de0c0e7580a0aed48edc85a7b496ad2d4

commit 2af4720de0c0e7580a0aed48edc85a7b496ad2d4
Author: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Date:   Tue Mar 15 08:41:43 2022 -0300

    string: Use asm alias instead of symbol redirections for stpcpy and mempcpy
    
    Commit 939da411433 added symbols redirections to handle ISO C
    namespace, however some compiler does not support to redeclare the
    function prototype.  Moving these defintions to exported header
    it not a good practice (it exposes a internal implementation and
    it would require to add macros to define it only internally).
    
    Instead this patch replaces the symbol redirections by direct asm
    aliases, as done to handle libcall generation done by compiler on
    some loop optimizations. The only issue is sparc binutils generates
    an extra __mempcpy plt not called anywhere in the code, which indicates
    a binutils issue (this is added in the localplt.data for now).
    
    Checked on most of affected ABIs.

Diff:
---
 include/string.h                                    | 4 ++--
 sysdeps/unix/sysv/linux/sparc/sparc64/localplt.data | 3 +++
 2 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/include/string.h b/include/string.h
index 86d1fa4abe..27f4e6e563 100644
--- a/include/string.h
+++ b/include/string.h
@@ -179,8 +179,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");
 #endif
 
 extern void *__memcpy_chk (void *__restrict __dest,
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/localplt.data b/sysdeps/unix/sysv/linux/sparc/sparc64/localplt.data
index 15c0f8ccf7..e7ab61dcbe 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/localplt.data
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/localplt.data
@@ -17,4 +17,7 @@ libc.so: calloc
 libc.so: free
 libc.so: malloc
 libc.so: realloc
+# Unreferenced PLT created by the symbols aliases used to redirect
+# the compiler generated mempcpy/stpcyp calls done by builtin usage.
+libc.so: __mempcpy
 libm.so: matherr

^ permalink raw reply	[flat|nested] 20+ messages in thread
* [glibc/azanella/clang] string: Use asm alias instead of symbol redirections for stpcpy and mempcpy
@ 2023-12-21 18:53 Adhemerval Zanella
  0 siblings, 0 replies; 20+ messages in thread
From: Adhemerval Zanella @ 2023-12-21 18:53 UTC (permalink / raw)
  To: glibc-cvs

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=e48d42817486f2a755bc87981a10da5b6b0783a6

commit e48d42817486f2a755bc87981a10da5b6b0783a6
Author: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Date:   Tue Mar 15 08:41:43 2022 -0300

    string: Use asm alias instead of symbol redirections for stpcpy and mempcpy
    
    Commit 939da411433 added symbols redirections to handle ISO C
    namespace, however some compiler does not support to redeclare the
    function prototype.  Moving these defintions to exported header
    it not a good practice (it exposes a internal implementation and
    it would require to add macros to define it only internally).
    
    Instead this patch replaces the symbol redirections by direct asm
    aliases, as done to handle libcall generation done by compiler on
    some loop optimizations. The only issue is sparc binutils generates
    an extra __mempcpy plt not called anywhere in the code, which indicates
    a binutils issue (this is added in the localplt.data for now).
    
    Checked on most of affected ABIs.

Diff:
---
 include/string.h                                    | 4 ++--
 sysdeps/unix/sysv/linux/sparc/sparc64/localplt.data | 3 +++
 2 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/include/string.h b/include/string.h
index 86d1fa4abe..27f4e6e563 100644
--- a/include/string.h
+++ b/include/string.h
@@ -179,8 +179,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");
 #endif
 
 extern void *__memcpy_chk (void *__restrict __dest,
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/localplt.data b/sysdeps/unix/sysv/linux/sparc/sparc64/localplt.data
index 15c0f8ccf7..e7ab61dcbe 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/localplt.data
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/localplt.data
@@ -17,4 +17,7 @@ libc.so: calloc
 libc.so: free
 libc.so: malloc
 libc.so: realloc
+# Unreferenced PLT created by the symbols aliases used to redirect
+# the compiler generated mempcpy/stpcyp calls done by builtin usage.
+libc.so: __mempcpy
 libm.so: matherr

^ permalink raw reply	[flat|nested] 20+ messages in thread
* [glibc/azanella/clang] string: Use asm alias instead of symbol redirections for stpcpy and mempcpy
@ 2023-09-28 17:51 Adhemerval Zanella
  0 siblings, 0 replies; 20+ messages in thread
From: Adhemerval Zanella @ 2023-09-28 17:51 UTC (permalink / raw)
  To: glibc-cvs

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=73fc2358d76908e448d74178728e154ea2e39218

commit 73fc2358d76908e448d74178728e154ea2e39218
Author: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Date:   Tue Mar 15 08:41:43 2022 -0300

    string: Use asm alias instead of symbol redirections for stpcpy and mempcpy
    
    Commit 939da411433 added symbols redirections to handle ISO C
    namespace, however some compiler does not support to redeclare the
    function prototype.  Moving these defintions to exported header
    it not a good practice (it exposes a internal implementation and
    it would require to add macros to define it only internally).
    
    Instead this patch replaces the symbol redirections by direct asm
    aliases, as done to handle libcall generation done by compiler on
    some loop optimizations. The only issue is sparc binutils generates
    an extra __mempcpy plt not called anywhere in the code, which indicates
    a binutils issue (this is added in the localplt.data for now).
    
    Checked on most of affected ABIs.

Diff:
---
 include/string.h                                    | 4 ++--
 sysdeps/unix/sysv/linux/sparc/sparc64/localplt.data | 3 +++
 2 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/include/string.h b/include/string.h
index 86d1fa4abe..27f4e6e563 100644
--- a/include/string.h
+++ b/include/string.h
@@ -179,8 +179,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");
 #endif
 
 extern void *__memcpy_chk (void *__restrict __dest,
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/localplt.data b/sysdeps/unix/sysv/linux/sparc/sparc64/localplt.data
index 15c0f8ccf7..e7ab61dcbe 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/localplt.data
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/localplt.data
@@ -17,4 +17,7 @@ libc.so: calloc
 libc.so: free
 libc.so: malloc
 libc.so: realloc
+# Unreferenced PLT created by the symbols aliases used to redirect
+# the compiler generated mempcpy/stpcyp calls done by builtin usage.
+libc.so: __mempcpy
 libm.so: matherr

^ permalink raw reply	[flat|nested] 20+ messages in thread
* [glibc/azanella/clang] string: Use asm alias instead of symbol redirections for stpcpy and mempcpy
@ 2023-08-30 12:36 Adhemerval Zanella
  0 siblings, 0 replies; 20+ messages in thread
From: Adhemerval Zanella @ 2023-08-30 12:36 UTC (permalink / raw)
  To: glibc-cvs

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=9a0fffedba777d58ff811042a762ddda0e94b748

commit 9a0fffedba777d58ff811042a762ddda0e94b748
Author: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Date:   Tue Mar 15 08:41:43 2022 -0300

    string: Use asm alias instead of symbol redirections for stpcpy and mempcpy
    
    Commit 939da411433 added symbols redirections to handle ISO C
    namespace, however some compiler does not support to redeclare the
    function prototype.  Moving these defintions to exported header
    it not a good practice (it exposes a internal implementation and
    it would require to add macros to define it only internally).
    
    Instead this patch replaces the symbol redirections by direct asm
    aliases, as done to handle libcall generation done by compiler on
    some loop optimizations. The only issue is sparc binutils generates
    an extra __mempcpy plt not called anywhere in the code, which indicates
    a binutils issue (this is added in the localplt.data for now).
    
    Checked on most of affected ABIs.

Diff:
---
 include/string.h                                    | 4 ++--
 sysdeps/unix/sysv/linux/sparc/sparc64/localplt.data | 3 +++
 2 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/include/string.h b/include/string.h
index 86d1fa4abe..27f4e6e563 100644
--- a/include/string.h
+++ b/include/string.h
@@ -179,8 +179,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");
 #endif
 
 extern void *__memcpy_chk (void *__restrict __dest,
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/localplt.data b/sysdeps/unix/sysv/linux/sparc/sparc64/localplt.data
index 15c0f8ccf7..e7ab61dcbe 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/localplt.data
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/localplt.data
@@ -17,4 +17,7 @@ libc.so: calloc
 libc.so: free
 libc.so: malloc
 libc.so: realloc
+# Unreferenced PLT created by the symbols aliases used to redirect
+# the compiler generated mempcpy/stpcyp calls done by builtin usage.
+libc.so: __mempcpy
 libm.so: matherr

^ permalink raw reply	[flat|nested] 20+ messages in thread
* [glibc/azanella/clang] string: Use asm alias instead of symbol redirections for stpcpy and mempcpy
@ 2023-02-09 19:48 Adhemerval Zanella
  0 siblings, 0 replies; 20+ messages in thread
From: Adhemerval Zanella @ 2023-02-09 19:48 UTC (permalink / raw)
  To: glibc-cvs

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=265a0626b9e73970497e050f184fa5804451cacf

commit 265a0626b9e73970497e050f184fa5804451cacf
Author: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Date:   Tue Mar 15 08:41:43 2022 -0300

    string: Use asm alias instead of symbol redirections for stpcpy and mempcpy
    
    Commit 939da411433 added symbols redirections to handle ISO C
    namespace, however some compiler does not support to redeclare the
    function prototype.  Moving these defintions to exported header
    it not a good practice (it exposes a internal implementation and
    it would require to add macros to define it only internally).
    
    Instead this patch replaces the symbol redirections by direct asm
    aliases, as done to handle libcall generation done by compiler on
    some loop optimizations. The only issue is sparc binutils generates
    an extra __mempcpy plt not called anywhere in the code, which indicates
    a binutils issue (this is added in the localplt.data for now).
    
    Checked on most of affected ABIs.

Diff:
---
 include/string.h                                    | 4 ++--
 sysdeps/unix/sysv/linux/sparc/sparc64/localplt.data | 3 +++
 2 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/include/string.h b/include/string.h
index a9120ff37c..d6e352e214 100644
--- a/include/string.h
+++ b/include/string.h
@@ -178,8 +178,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");
 #endif
 
 extern void *__memcpy_chk (void *__restrict __dest,
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/localplt.data b/sysdeps/unix/sysv/linux/sparc/sparc64/localplt.data
index 15c0f8ccf7..e7ab61dcbe 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/localplt.data
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/localplt.data
@@ -17,4 +17,7 @@ libc.so: calloc
 libc.so: free
 libc.so: malloc
 libc.so: realloc
+# Unreferenced PLT created by the symbols aliases used to redirect
+# the compiler generated mempcpy/stpcyp calls done by builtin usage.
+libc.so: __mempcpy
 libm.so: matherr

^ permalink raw reply	[flat|nested] 20+ messages in thread
* [glibc/azanella/clang] string: Use asm alias instead of symbol redirections for stpcpy and mempcpy
@ 2022-10-28 17:41 Adhemerval Zanella
  0 siblings, 0 replies; 20+ messages in thread
From: Adhemerval Zanella @ 2022-10-28 17:41 UTC (permalink / raw)
  To: glibc-cvs

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=147b34c631865ddc470058f295df52038ae628dd

commit 147b34c631865ddc470058f295df52038ae628dd
Author: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Date:   Tue Mar 15 08:41:43 2022 -0300

    string: Use asm alias instead of symbol redirections for stpcpy and mempcpy
    
    Commit 939da411433 added symbols redirections to handle ISO C
    namespace, however some compiler does not support to redeclare the
    function prototype.  Moving these defintions to exported header
    it not a good practice (it exposes a internal implementation and
    it would require to add macros to define it only internally).
    
    Instead this patch replaces the symbol redirections by direct asm
    aliases, as done to handle libcall generation done by compiler on
    some loop optimizations. The only issue is sparc binutils generates
    an extra __mempcpy plt not called anywhere in the code, which indicates
    a binutils issue (this is added in the localplt.data for now).
    
    Checked on most of affected ABIs.

Diff:
---
 include/string.h                                    | 4 ++--
 sysdeps/unix/sysv/linux/sparc/sparc64/localplt.data | 3 +++
 2 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/include/string.h b/include/string.h
index 21f641a413..44c4049053 100644
--- a/include/string.h
+++ b/include/string.h
@@ -176,8 +176,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");
 #endif
 
 extern void *__memcpy_chk (void *__restrict __dest,
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/localplt.data b/sysdeps/unix/sysv/linux/sparc/sparc64/localplt.data
index 6a216f3a5a..21a5fe65ba 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/localplt.data
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/localplt.data
@@ -16,6 +16,9 @@ libc.so: calloc
 libc.so: free
 libc.so: malloc
 libc.so: realloc
+# Unreferenced PLT created by the symbols aliases used to redirect
+# the compiler generated mempcpy/stpcyp calls done by builtin usage.
+libc.so: __mempcpy
 libm.so: matherr
 # The TLS-enabled version of these functions is interposed from libc.so.
 ld.so: _dl_signal_error

^ permalink raw reply	[flat|nested] 20+ messages in thread
* [glibc/azanella/clang] string: Use asm alias instead of symbol redirections for stpcpy and mempcpy
@ 2022-10-04 12:59 Adhemerval Zanella
  0 siblings, 0 replies; 20+ messages in thread
From: Adhemerval Zanella @ 2022-10-04 12:59 UTC (permalink / raw)
  To: glibc-cvs

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=44883f257b6ac4c5899fd3288d474a1dcf46027c

commit 44883f257b6ac4c5899fd3288d474a1dcf46027c
Author: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Date:   Tue Mar 15 08:41:43 2022 -0300

    string: Use asm alias instead of symbol redirections for stpcpy and mempcpy
    
    Commit 939da411433 added symbols redirections to handle ISO C
    namespace, however some compiler does not support to redeclare the
    function prototype.  Moving these defintions to exported header
    it not a good practice (it exposes a internal implementation and
    it would require to add macros to define it only internally).
    
    Instead this patch replaces the symbol redirections by direct asm
    aliases, as done to handle libcall generation done by compiler on
    some loop optimizations. The only issue is sparc binutils generates
    an extra __mempcpy plt not called anywhere in the code, which indicates
    a binutils issue (this is added in the localplt.data for now).
    
    Checked on most of affected ABIs.

Diff:
---
 include/string.h                                    | 4 ++--
 sysdeps/unix/sysv/linux/sparc/sparc64/localplt.data | 3 +++
 2 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/include/string.h b/include/string.h
index 21f641a413..44c4049053 100644
--- a/include/string.h
+++ b/include/string.h
@@ -176,8 +176,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");
 #endif
 
 extern void *__memcpy_chk (void *__restrict __dest,
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/localplt.data b/sysdeps/unix/sysv/linux/sparc/sparc64/localplt.data
index 6a216f3a5a..21a5fe65ba 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/localplt.data
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/localplt.data
@@ -16,6 +16,9 @@ libc.so: calloc
 libc.so: free
 libc.so: malloc
 libc.so: realloc
+# Unreferenced PLT created by the symbols aliases used to redirect
+# the compiler generated mempcpy/stpcyp calls done by builtin usage.
+libc.so: __mempcpy
 libm.so: matherr
 # The TLS-enabled version of these functions is interposed from libc.so.
 ld.so: _dl_signal_error

^ permalink raw reply	[flat|nested] 20+ messages in thread
* [glibc/azanella/clang] string: Use asm alias instead of symbol redirections for stpcpy and mempcpy
@ 2022-06-09 21:20 Adhemerval Zanella
  0 siblings, 0 replies; 20+ messages in thread
From: Adhemerval Zanella @ 2022-06-09 21:20 UTC (permalink / raw)
  To: glibc-cvs

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=4e4e1058418e9996474bc44c4b8356ebd2519d07

commit 4e4e1058418e9996474bc44c4b8356ebd2519d07
Author: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Date:   Tue Mar 15 08:41:43 2022 -0300

    string: Use asm alias instead of symbol redirections for stpcpy and mempcpy
    
    Commit 939da411433 added symbols redirections to handle ISO C
    namespace, however some compiler does not support to redeclare the
    function prototype.  Moving these defintions to exported header
    it not a good practice (it exposes a internal implementation and
    it would require to add macros to define it only internally).
    
    Instead this patch replaces the symbol redirections by direct asm
    aliases, as done to handle libcall generation done by compiler on
    some loop optimizations. The only issue is sparc binutils generates
    an extra __mempcpy plt not called anywhere in the code, which indicates
    a binutils issue (this is added in the localplt.data for now).
    
    Checked on most of affected ABIs.

Diff:
---
 include/string.h                                    | 4 ++--
 sysdeps/unix/sysv/linux/sparc/sparc64/localplt.data | 3 +++
 2 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/include/string.h b/include/string.h
index 21f641a413..44c4049053 100644
--- a/include/string.h
+++ b/include/string.h
@@ -176,8 +176,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");
 #endif
 
 extern void *__memcpy_chk (void *__restrict __dest,
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/localplt.data b/sysdeps/unix/sysv/linux/sparc/sparc64/localplt.data
index 6a216f3a5a..21a5fe65ba 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/localplt.data
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/localplt.data
@@ -16,6 +16,9 @@ libc.so: calloc
 libc.so: free
 libc.so: malloc
 libc.so: realloc
+# Unreferenced PLT created by the symbols aliases used to redirect
+# the compiler generated mempcpy/stpcyp calls done by builtin usage.
+libc.so: __mempcpy
 libm.so: matherr
 # The TLS-enabled version of these functions is interposed from libc.so.
 ld.so: _dl_signal_error


^ permalink raw reply	[flat|nested] 20+ messages in thread
* [glibc/azanella/clang] string: Use asm alias instead of symbol redirections for stpcpy and mempcpy
@ 2022-06-09 13:17 Adhemerval Zanella
  0 siblings, 0 replies; 20+ messages in thread
From: Adhemerval Zanella @ 2022-06-09 13:17 UTC (permalink / raw)
  To: glibc-cvs

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=4e4e1058418e9996474bc44c4b8356ebd2519d07

commit 4e4e1058418e9996474bc44c4b8356ebd2519d07
Author: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Date:   Tue Mar 15 08:41:43 2022 -0300

    string: Use asm alias instead of symbol redirections for stpcpy and mempcpy
    
    Commit 939da411433 added symbols redirections to handle ISO C
    namespace, however some compiler does not support to redeclare the
    function prototype.  Moving these defintions to exported header
    it not a good practice (it exposes a internal implementation and
    it would require to add macros to define it only internally).
    
    Instead this patch replaces the symbol redirections by direct asm
    aliases, as done to handle libcall generation done by compiler on
    some loop optimizations. The only issue is sparc binutils generates
    an extra __mempcpy plt not called anywhere in the code, which indicates
    a binutils issue (this is added in the localplt.data for now).
    
    Checked on most of affected ABIs.

Diff:
---
 include/string.h                                    | 4 ++--
 sysdeps/unix/sysv/linux/sparc/sparc64/localplt.data | 3 +++
 2 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/include/string.h b/include/string.h
index 21f641a413..44c4049053 100644
--- a/include/string.h
+++ b/include/string.h
@@ -176,8 +176,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");
 #endif
 
 extern void *__memcpy_chk (void *__restrict __dest,
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/localplt.data b/sysdeps/unix/sysv/linux/sparc/sparc64/localplt.data
index 6a216f3a5a..21a5fe65ba 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/localplt.data
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/localplt.data
@@ -16,6 +16,9 @@ libc.so: calloc
 libc.so: free
 libc.so: malloc
 libc.so: realloc
+# Unreferenced PLT created by the symbols aliases used to redirect
+# the compiler generated mempcpy/stpcyp calls done by builtin usage.
+libc.so: __mempcpy
 libm.so: matherr
 # The TLS-enabled version of these functions is interposed from libc.so.
 ld.so: _dl_signal_error


^ permalink raw reply	[flat|nested] 20+ messages in thread
* [glibc/azanella/clang] string: Use asm alias instead of symbol redirections for stpcpy and mempcpy
@ 2022-06-03 14:06 Adhemerval Zanella
  0 siblings, 0 replies; 20+ messages in thread
From: Adhemerval Zanella @ 2022-06-03 14:06 UTC (permalink / raw)
  To: glibc-cvs

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=d48f5b10441ac08cb4b2a7807221e07d1f50c728

commit d48f5b10441ac08cb4b2a7807221e07d1f50c728
Author: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Date:   Tue Mar 15 08:41:43 2022 -0300

    string: Use asm alias instead of symbol redirections for stpcpy and mempcpy
    
    Commit 939da411433 added symbols redirections to handle ISO C
    namespace, however some compiler does not support to redeclare the
    function prototype.  Moving these defintions to exported header
    it not a good practice (it exposes a internal implementation and
    it would require to add macros to define it only internally).
    
    Instead this patch replaces the symbol redirections by direct asm
    aliases, as done to handle libcall generation done by compiler on
    some loop optimizations. The only issue is sparc binutils generates
    an extra __mempcpy plt not called anywhere in the code, which indicates
    a binutils issue (this is added in the localplt.data for now).
    
    Checked on most of affected ABIs.

Diff:
---
 include/string.h                                    | 4 ++--
 sysdeps/unix/sysv/linux/sparc/sparc64/localplt.data | 3 +++
 2 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/include/string.h b/include/string.h
index 21f641a413..44c4049053 100644
--- a/include/string.h
+++ b/include/string.h
@@ -176,8 +176,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");
 #endif
 
 extern void *__memcpy_chk (void *__restrict __dest,
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/localplt.data b/sysdeps/unix/sysv/linux/sparc/sparc64/localplt.data
index 6a216f3a5a..21a5fe65ba 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/localplt.data
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/localplt.data
@@ -16,6 +16,9 @@ libc.so: calloc
 libc.so: free
 libc.so: malloc
 libc.so: realloc
+# Unreferenced PLT created by the symbols aliases used to redirect
+# the compiler generated mempcpy/stpcyp calls done by builtin usage.
+libc.so: __mempcpy
 libm.so: matherr
 # The TLS-enabled version of these functions is interposed from libc.so.
 ld.so: _dl_signal_error


^ permalink raw reply	[flat|nested] 20+ messages in thread
* [glibc/azanella/clang] string: Use asm alias instead of symbol redirections for stpcpy and mempcpy
@ 2022-05-13 14:20 Adhemerval Zanella
  0 siblings, 0 replies; 20+ messages in thread
From: Adhemerval Zanella @ 2022-05-13 14:20 UTC (permalink / raw)
  To: glibc-cvs

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=b60019c1e9fbf259bea9f80e794375392553ba3d

commit b60019c1e9fbf259bea9f80e794375392553ba3d
Author: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Date:   Tue Mar 15 08:41:43 2022 -0300

    string: Use asm alias instead of symbol redirections for stpcpy and mempcpy
    
    Commit 939da411433 added symbols redirections to handle ISO C
    namespace, however some compiler does not support to redeclare the
    function prototype.  Moving these defintions to exported header
    it not a good practice (it exposes a internal implementation and
    it would require to add macros to define it only internally).
    
    Instead this patch replaces the symbol redirections by direct asm
    aliases, as done to handle libcall generation done by compiler on
    some loop optimizations. The only issue is sparc binutils generates
    an extra __mempcpy plt not called anywhere in the code, which indicates
    a binutils issue (this is added in the localplt.data for now).
    
    Checked on most of affected ABIs.

Diff:
---
 include/string.h                                    | 4 ++--
 sysdeps/unix/sysv/linux/sparc/sparc64/localplt.data | 3 +++
 2 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/include/string.h b/include/string.h
index 21f641a413..44c4049053 100644
--- a/include/string.h
+++ b/include/string.h
@@ -176,8 +176,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");
 #endif
 
 extern void *__memcpy_chk (void *__restrict __dest,
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/localplt.data b/sysdeps/unix/sysv/linux/sparc/sparc64/localplt.data
index 6a216f3a5a..21a5fe65ba 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/localplt.data
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/localplt.data
@@ -16,6 +16,9 @@ libc.so: calloc
 libc.so: free
 libc.so: malloc
 libc.so: realloc
+# Unreferenced PLT created by the symbols aliases used to redirect
+# the compiler generated mempcpy/stpcyp calls done by builtin usage.
+libc.so: __mempcpy
 libm.so: matherr
 # The TLS-enabled version of these functions is interposed from libc.so.
 ld.so: _dl_signal_error


^ permalink raw reply	[flat|nested] 20+ messages in thread
* [glibc/azanella/clang] string: Use asm alias instead of symbol redirections for stpcpy and mempcpy
@ 2022-05-12 19:34 Adhemerval Zanella
  0 siblings, 0 replies; 20+ messages in thread
From: Adhemerval Zanella @ 2022-05-12 19:34 UTC (permalink / raw)
  To: glibc-cvs

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=1cc186a85b7ef753b73e3623d5431187e4f46eda

commit 1cc186a85b7ef753b73e3623d5431187e4f46eda
Author: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Date:   Tue Mar 15 08:41:43 2022 -0300

    string: Use asm alias instead of symbol redirections for stpcpy and mempcpy
    
    Commit 939da411433 added symbols redirections to handle ISO C
    namespace, however some compiler does not support to redeclare the
    function prototype.  Moving these defintions to exported header
    it not a good practice (it exposes a internal implementation and
    it would require to add macros to define it only internally).
    
    Instead this patch replaces the symbol redirections by direct asm
    aliases, as done to handle libcall generation done by compiler on
    some loop optimizations. The only issue is sparc binutils generates
    an extra __mempcpy plt not called anywhere in the code, which indicates
    a binutils issue (this is added in the localplt.data for now).
    
    Checked on most of affected ABIs.

Diff:
---
 include/string.h                                    | 4 ++--
 sysdeps/unix/sysv/linux/sparc/sparc64/localplt.data | 3 +++
 2 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/include/string.h b/include/string.h
index 21f641a413..44c4049053 100644
--- a/include/string.h
+++ b/include/string.h
@@ -176,8 +176,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");
 #endif
 
 extern void *__memcpy_chk (void *__restrict __dest,
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/localplt.data b/sysdeps/unix/sysv/linux/sparc/sparc64/localplt.data
index 6a216f3a5a..21a5fe65ba 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/localplt.data
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/localplt.data
@@ -16,6 +16,9 @@ libc.so: calloc
 libc.so: free
 libc.so: malloc
 libc.so: realloc
+# Unreferenced PLT created by the symbols aliases used to redirect
+# the compiler generated mempcpy/stpcyp calls done by builtin usage.
+libc.so: __mempcpy
 libm.so: matherr
 # The TLS-enabled version of these functions is interposed from libc.so.
 ld.so: _dl_signal_error


^ permalink raw reply	[flat|nested] 20+ messages in thread
* [glibc/azanella/clang] string: Use asm alias instead of symbol redirections for stpcpy and mempcpy
@ 2022-05-10 18:24 Adhemerval Zanella
  0 siblings, 0 replies; 20+ messages in thread
From: Adhemerval Zanella @ 2022-05-10 18:24 UTC (permalink / raw)
  To: glibc-cvs

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=aaa7bfc0f918f048b9fb4d39efc3a561946f84e6

commit aaa7bfc0f918f048b9fb4d39efc3a561946f84e6
Author: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Date:   Tue Mar 15 08:41:43 2022 -0300

    string: Use asm alias instead of symbol redirections for stpcpy and mempcpy
    
    Commit 939da411433 added symbols redirections to handle ISO C
    namespace, however some compiler does not support to redeclare the
    function prototype.  Moving these defintions to exported header
    it not a good practice (it exposes a internal implementation and
    it would require to add macros to define it only internally).
    
    Instead this patch replaces the symbol redirections by direct asm
    aliases, as done to handle libcall generation done by compiler on
    some loop optimizations. The only issue is sparc binutils generates
    an extra __mempcpy plt not called anywhere in the code, which indicates
    a binutils issue (this is added in the localplt.data for now).
    
    Checked on most of affected ABIs.

Diff:
---
 include/string.h                                    | 4 ++--
 sysdeps/unix/sysv/linux/sparc/sparc64/localplt.data | 3 +++
 2 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/include/string.h b/include/string.h
index 21f641a413..44c4049053 100644
--- a/include/string.h
+++ b/include/string.h
@@ -176,8 +176,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");
 #endif
 
 extern void *__memcpy_chk (void *__restrict __dest,
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/localplt.data b/sysdeps/unix/sysv/linux/sparc/sparc64/localplt.data
index 6a216f3a5a..21a5fe65ba 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/localplt.data
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/localplt.data
@@ -16,6 +16,9 @@ libc.so: calloc
 libc.so: free
 libc.so: malloc
 libc.so: realloc
+# Unreferenced PLT created by the symbols aliases used to redirect
+# the compiler generated mempcpy/stpcyp calls done by builtin usage.
+libc.so: __mempcpy
 libm.so: matherr
 # The TLS-enabled version of these functions is interposed from libc.so.
 ld.so: _dl_signal_error


^ permalink raw reply	[flat|nested] 20+ messages in thread
* [glibc/azanella/clang] string: Use asm alias instead of symbol redirections for stpcpy and mempcpy
@ 2022-04-04 12:54 Adhemerval Zanella
  0 siblings, 0 replies; 20+ messages in thread
From: Adhemerval Zanella @ 2022-04-04 12:54 UTC (permalink / raw)
  To: glibc-cvs

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=07c0ba705d7b5cb0bead046c6ecaecca94b3aae9

commit 07c0ba705d7b5cb0bead046c6ecaecca94b3aae9
Author: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Date:   Tue Mar 15 08:41:43 2022 -0300

    string: Use asm alias instead of symbol redirections for stpcpy and mempcpy
    
    Commit 939da411433 added symbols redirections to handle ISO C
    namespace, however some compiler does not support to redeclare the
    function prototype.  Moving these defintions to exported header
    it not a good practice (it exposes a internal implementation and
    it would require to add macros to define it only internally).
    
    Instead this patch replaces the symbol redirections by direct asm
    aliases, as done to handle libcall generation done by compiler on
    some loop optimizations. The only issue is sparc binutils generates
    an extra __mempcpy plt not called anywhere in the code, which indicates
    a binutils issue (this is added in the localplt.data for now).
    
    Checked on most of affected ABIs.

Diff:
---
 include/string.h                                    | 4 ++--
 sysdeps/unix/sysv/linux/sparc/sparc64/localplt.data | 3 +++
 2 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/include/string.h b/include/string.h
index 21f641a413..44c4049053 100644
--- a/include/string.h
+++ b/include/string.h
@@ -176,8 +176,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");
 #endif
 
 extern void *__memcpy_chk (void *__restrict __dest,
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/localplt.data b/sysdeps/unix/sysv/linux/sparc/sparc64/localplt.data
index 6a216f3a5a..21a5fe65ba 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/localplt.data
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/localplt.data
@@ -16,6 +16,9 @@ libc.so: calloc
 libc.so: free
 libc.so: malloc
 libc.so: realloc
+# Unreferenced PLT created by the symbols aliases used to redirect
+# the compiler generated mempcpy/stpcyp calls done by builtin usage.
+libc.so: __mempcpy
 libm.so: matherr
 # The TLS-enabled version of these functions is interposed from libc.so.
 ld.so: _dl_signal_error


^ permalink raw reply	[flat|nested] 20+ messages in thread
* [glibc/azanella/clang] string: Use asm alias instead of symbol redirections for stpcpy and mempcpy
@ 2022-03-31 19:07 Adhemerval Zanella
  0 siblings, 0 replies; 20+ messages in thread
From: Adhemerval Zanella @ 2022-03-31 19:07 UTC (permalink / raw)
  To: glibc-cvs

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=e6be57d8917963fbffaa2c3408c2fad1c2eabc79

commit e6be57d8917963fbffaa2c3408c2fad1c2eabc79
Author: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Date:   Tue Mar 15 08:41:43 2022 -0300

    string: Use asm alias instead of symbol redirections for stpcpy and mempcpy
    
    Commit 939da411433 added symbols redirections to handle ISO C
    namespace, however some compiler does not support to redeclare the
    function prototype.  Moving these defintions to exported header
    it not a good practice (it exposes a internal implementation and
    it would require to add macros to define it only internally).
    
    Instead this patch replaces the symbol redirections by direct asm
    aliases, as done to handle libcall generation done by compiler on
    some loop optimizations. The only issue is sparc binutils generates
    an extra __mempcpy plt not called anywhere in the code, which indicates
    a binutils issue (this is added in the localplt.data for now).
    
    Checked on most of affected ABIs.

Diff:
---
 include/string.h                                    | 4 ++--
 sysdeps/unix/sysv/linux/sparc/sparc64/localplt.data | 3 +++
 2 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/include/string.h b/include/string.h
index 21f641a413..44c4049053 100644
--- a/include/string.h
+++ b/include/string.h
@@ -176,8 +176,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");
 #endif
 
 extern void *__memcpy_chk (void *__restrict __dest,
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/localplt.data b/sysdeps/unix/sysv/linux/sparc/sparc64/localplt.data
index 6a216f3a5a..21a5fe65ba 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/localplt.data
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/localplt.data
@@ -16,6 +16,9 @@ libc.so: calloc
 libc.so: free
 libc.so: malloc
 libc.so: realloc
+# Unreferenced PLT created by the symbols aliases used to redirect
+# the compiler generated mempcpy/stpcyp calls done by builtin usage.
+libc.so: __mempcpy
 libm.so: matherr
 # The TLS-enabled version of these functions is interposed from libc.so.
 ld.so: _dl_signal_error


^ permalink raw reply	[flat|nested] 20+ messages in thread
* [glibc/azanella/clang] string: Use asm alias instead of symbol redirections for stpcpy and mempcpy
@ 2022-03-29 20:30 Adhemerval Zanella
  0 siblings, 0 replies; 20+ messages in thread
From: Adhemerval Zanella @ 2022-03-29 20:30 UTC (permalink / raw)
  To: glibc-cvs

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=c8a136dad6330f552f50f8a682680921683f2e1c

commit c8a136dad6330f552f50f8a682680921683f2e1c
Author: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Date:   Tue Mar 15 08:41:43 2022 -0300

    string: Use asm alias instead of symbol redirections for stpcpy and mempcpy
    
    Commit 939da411433 added symbols redirections to handle ISO C
    namespace, however some compiler does not support to redeclare the
    function prototype.  Moving these defintions to exported header
    it not a good practice (it exposes a internal implementation and
    it would require to add macros to define it only internally).
    
    Instead this patch replaces the symbol redirections by direct asm
    aliases, as done to handle libcall generation done by compiler on
    some loop optimizations. The only issue is sparc binutils generates
    an extra __mempcpy plt not called anywhere in the code, which indicates
    a binutils issue (this is added in the localplt.data for now).
    
    Checked on most of affected ABIs.

Diff:
---
 include/string.h                                    | 4 ++--
 sysdeps/unix/sysv/linux/sparc/sparc64/localplt.data | 3 +++
 2 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/include/string.h b/include/string.h
index 21f641a413..44c4049053 100644
--- a/include/string.h
+++ b/include/string.h
@@ -176,8 +176,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");
 #endif
 
 extern void *__memcpy_chk (void *__restrict __dest,
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/localplt.data b/sysdeps/unix/sysv/linux/sparc/sparc64/localplt.data
index 6a216f3a5a..21a5fe65ba 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/localplt.data
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/localplt.data
@@ -16,6 +16,9 @@ libc.so: calloc
 libc.so: free
 libc.so: malloc
 libc.so: realloc
+# Unreferenced PLT created by the symbols aliases used to redirect
+# the compiler generated mempcpy/stpcyp calls done by builtin usage.
+libc.so: __mempcpy
 libm.so: matherr
 # The TLS-enabled version of these functions is interposed from libc.so.
 ld.so: _dl_signal_error


^ permalink raw reply	[flat|nested] 20+ messages in thread
* [glibc/azanella/clang] string: Use asm alias instead of symbol redirections for stpcpy and mempcpy
@ 2022-03-16 18:04 Adhemerval Zanella
  0 siblings, 0 replies; 20+ messages in thread
From: Adhemerval Zanella @ 2022-03-16 18:04 UTC (permalink / raw)
  To: glibc-cvs

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=efbcc58742191e45a1425856e05a229fae9ff924

commit efbcc58742191e45a1425856e05a229fae9ff924
Author: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Date:   Tue Mar 15 08:41:43 2022 -0300

    string: Use asm alias instead of symbol redirections for stpcpy and mempcpy
    
    Commit 939da411433 added symbols redirections to handle ISO C
    namespace, however some compiler does not support to redeclare the
    function prototype.  Moving these defintions to exported header
    it not a good practice (it exposes a internal implementation and
    it would require to add macros to define it only internally).
    
    Instead this patch replaces the symbol redirections by direct asm
    aliases, as done to handle libcall generation done by compiler on
    some loop optimizations. The only issue is sparc binutils generates
    an extra __mempcpy plt not called anywhere in the code, which indicates
    a binutils issue (this is added in the localplt.data for now).
    
    Checked on most of affected ABIs.

Diff:
---
 include/string.h                                    | 4 ++--
 sysdeps/unix/sysv/linux/sparc/sparc64/localplt.data | 3 +++
 2 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/include/string.h b/include/string.h
index 21f641a413..44c4049053 100644
--- a/include/string.h
+++ b/include/string.h
@@ -176,8 +176,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");
 #endif
 
 extern void *__memcpy_chk (void *__restrict __dest,
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/localplt.data b/sysdeps/unix/sysv/linux/sparc/sparc64/localplt.data
index 6a216f3a5a..21a5fe65ba 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/localplt.data
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/localplt.data
@@ -16,6 +16,9 @@ libc.so: calloc
 libc.so: free
 libc.so: malloc
 libc.so: realloc
+# Unreferenced PLT created by the symbols aliases used to redirect
+# the compiler generated mempcpy/stpcyp calls done by builtin usage.
+libc.so: __mempcpy
 libm.so: matherr
 # The TLS-enabled version of these functions is interposed from libc.so.
 ld.so: _dl_signal_error


^ permalink raw reply	[flat|nested] 20+ messages in thread

end of thread, other threads:[~2024-02-09 17:31 UTC | newest]

Thread overview: 20+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-04-29 14:04 [glibc/azanella/clang] string: Use asm alias instead of symbol redirections for stpcpy and mempcpy Adhemerval Zanella
  -- strict thread matches above, loose matches on Subject: below --
2024-02-09 17:31 Adhemerval Zanella
2024-02-07 14:06 Adhemerval Zanella
2024-01-29 17:56 Adhemerval Zanella
2023-12-21 18:53 Adhemerval Zanella
2023-09-28 17:51 Adhemerval Zanella
2023-08-30 12:36 Adhemerval Zanella
2023-02-09 19:48 Adhemerval Zanella
2022-10-28 17:41 Adhemerval Zanella
2022-10-04 12:59 Adhemerval Zanella
2022-06-09 21:20 Adhemerval Zanella
2022-06-09 13:17 Adhemerval Zanella
2022-06-03 14:06 Adhemerval Zanella
2022-05-13 14:20 Adhemerval Zanella
2022-05-12 19:34 Adhemerval Zanella
2022-05-10 18:24 Adhemerval Zanella
2022-04-04 12:54 Adhemerval Zanella
2022-03-31 19:07 Adhemerval Zanella
2022-03-29 20:30 Adhemerval Zanella
2022-03-16 18:04 Adhemerval Zanella

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).