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-10-04 12:59 Adhemerval Zanella
  0 siblings, 0 replies; 14+ 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] 14+ 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; 14+ 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] 14+ 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; 14+ 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] 14+ 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; 14+ 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] 14+ 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; 14+ 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] 14+ 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; 14+ 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] 14+ 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; 14+ 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] 14+ 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; 14+ 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] 14+ 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; 14+ 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] 14+ messages in thread

* [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; 14+ 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] 14+ 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; 14+ 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] 14+ 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; 14+ 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] 14+ 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; 14+ 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] 14+ 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; 14+ 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] 14+ messages in thread

end of thread, other threads:[~2023-02-09 19:48 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-10-04 12:59 [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 --
2023-02-09 19:48 Adhemerval Zanella
2022-10-28 17:41 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-29 14:04 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).