public inbox for libc-alpha@sourceware.org
 help / color / mirror / Atom feed
From: Adhemerval Zanella <adhemerval.zanella@linaro.org>
To: libc-alpha@sourceware.org
Cc: Joseph Myers <josmyers@redhat.com>, DJ Delorie <dj@redhat.com>,
	Paul Zimmermann <Paul.Zimmermann@inria.fr>
Subject: [PATCH v2 02/10] math: Remove the error handling wrapper from log10f
Date: Thu, 30 Jan 2025 13:28:58 -0300	[thread overview]
Message-ID: <20250130163024.2032523-3-adhemerval.zanella@linaro.org> (raw)
In-Reply-To: <20250130163024.2032523-1-adhemerval.zanella@linaro.org>

It improves latency for about 3-10% and throughput for about 5-10%.
---
 math/Versions                                         |  4 ++++
 math/w_log10f.c                                       |  8 ++++++++
 math/w_log10f_compat.c                                | 10 +++++++---
 sysdeps/ieee754/flt-32/e_log10f.c                     | 11 ++++++++++-
 sysdeps/ieee754/flt-32/w_log10f.c                     |  1 +
 sysdeps/m68k/m680x0/fpu/w_log10f_compat.c             |  8 ++++++++
 sysdeps/mach/hurd/i386/libm.abilist                   |  1 +
 sysdeps/unix/sysv/linux/aarch64/libm.abilist          |  1 +
 sysdeps/unix/sysv/linux/alpha/libm.abilist            |  1 +
 sysdeps/unix/sysv/linux/arm/be/libm.abilist           |  1 +
 sysdeps/unix/sysv/linux/arm/le/libm.abilist           |  1 +
 sysdeps/unix/sysv/linux/hppa/libm.abilist             |  1 +
 sysdeps/unix/sysv/linux/i386/libm.abilist             |  1 +
 sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist    |  1 +
 sysdeps/unix/sysv/linux/microblaze/be/libm.abilist    |  1 +
 sysdeps/unix/sysv/linux/microblaze/le/libm.abilist    |  1 +
 sysdeps/unix/sysv/linux/mips/mips32/libm.abilist      |  1 +
 sysdeps/unix/sysv/linux/mips/mips64/libm.abilist      |  1 +
 .../sysv/linux/powerpc/powerpc32/fpu/libm.abilist     |  1 +
 .../sysv/linux/powerpc/powerpc32/nofpu/libm.abilist   |  1 +
 .../unix/sysv/linux/powerpc/powerpc64/be/libm.abilist |  1 +
 .../unix/sysv/linux/powerpc/powerpc64/le/libm.abilist |  1 +
 sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist     |  1 +
 sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist     |  1 +
 sysdeps/unix/sysv/linux/sh/be/libm.abilist            |  1 +
 sysdeps/unix/sysv/linux/sh/le/libm.abilist            |  1 +
 sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist    |  1 +
 sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist    |  1 +
 sysdeps/unix/sysv/linux/x86_64/64/libm.abilist        |  1 +
 sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist       |  1 +
 30 files changed, 62 insertions(+), 4 deletions(-)
 create mode 100644 math/w_log10f.c
 create mode 100644 sysdeps/ieee754/flt-32/w_log10f.c
 create mode 100644 sysdeps/m68k/m680x0/fpu/w_log10f_compat.c

diff --git a/math/Versions b/math/Versions
index e4fbef3f6d..78dac9d165 100644
--- a/math/Versions
+++ b/math/Versions
@@ -671,4 +671,8 @@ libm {
     sinpif64x; sinpif128;
     tanpif64x; tanpif128;
   }
+  GLIBC_2.42 {
+    # No SVID compatible error handling.
+    log10f;
+  }
 }
diff --git a/math/w_log10f.c b/math/w_log10f.c
new file mode 100644
index 0000000000..e0f592b80c
--- /dev/null
+++ b/math/w_log10f.c
@@ -0,0 +1,8 @@
+#include <math-type-macros-float.h>
+#undef __USE_WRAPPER_TEMPLATE
+#define __USE_WRAPPER_TEMPLATE 1
+#undef declare_mgen_alias
+#define declare_mgen_alias(a, b)
+#include <w_log10_template.c>
+versioned_symbol (libm, __log10f, log10f, GLIBC_2_42);
+libm_alias_float_other (__log10f, log10f)
diff --git a/math/w_log10f_compat.c b/math/w_log10f_compat.c
index a1f2327520..95e0a4d3cd 100644
--- a/math/w_log10f_compat.c
+++ b/math/w_log10f_compat.c
@@ -22,10 +22,10 @@
 #include <libm-alias-float.h>
 
 
-#if LIBM_SVID_COMPAT
+#if LIBM_SVID_COMPAT && SHLIB_COMPAT (libm, GLIBC_2_0, GLIBC_2_42)
 /* wrapper log10f(x) */
 float
-__log10f (float x)
+__log10_compatf (float x)
 {
   if (__builtin_expect (islessequal (x, 0.0f), 0) && _LIB_VERSION != _IEEE_)
     {
@@ -43,5 +43,9 @@ __log10f (float x)
 
   return  __ieee754_log10f (x);
 }
-libm_alias_float (__log10, log10)
+# ifdef NO_COMPAT_NEEDED
+libm_alias_float (__log10_compat, log10)
+# else
+compat_symbol (libm, __log10_compatf, log10f, GLIBC_2_0);
+# endif
 #endif
diff --git a/sysdeps/ieee754/flt-32/e_log10f.c b/sysdeps/ieee754/flt-32/e_log10f.c
index 03d9e281f3..242731005b 100644
--- a/sysdeps/ieee754/flt-32/e_log10f.c
+++ b/sysdeps/ieee754/flt-32/e_log10f.c
@@ -27,6 +27,8 @@ SOFTWARE.
 #include <math.h>
 #include <stdint.h>
 #include <libm-alias-finite.h>
+#include <libm-alias-float.h>
+#include <math-svid-compat.h>
 #include "math_config.h"
 
 static __attribute__ ((noinline)) float
@@ -45,7 +47,7 @@ as_special (float x)
 }
 
 float
-__ieee754_log10f (float x)
+__log10f (float x)
 {
   static const double tr[] =
     {
@@ -158,4 +160,11 @@ __ieee754_log10f (float x)
     }
   return ub;
 }
+strong_alias (__log10f, __ieee754_log10f)
+#if LIBM_SVID_COMPAT
+versioned_symbol (libm, __log10f, log10f, GLIBC_2_42);
+libm_alias_float_other (__log10, log10)
+#else
+libm_alias_float (__log10, log10)
+#endif
 libm_alias_finite (__ieee754_log10f, __log10f)
diff --git a/sysdeps/ieee754/flt-32/w_log10f.c b/sysdeps/ieee754/flt-32/w_log10f.c
new file mode 100644
index 0000000000..1cc8931700
--- /dev/null
+++ b/sysdeps/ieee754/flt-32/w_log10f.c
@@ -0,0 +1 @@
+/* Not needed.  */
diff --git a/sysdeps/m68k/m680x0/fpu/w_log10f_compat.c b/sysdeps/m68k/m680x0/fpu/w_log10f_compat.c
new file mode 100644
index 0000000000..a0d6036fcc
--- /dev/null
+++ b/sysdeps/m68k/m680x0/fpu/w_log10f_compat.c
@@ -0,0 +1,8 @@
+/* m68k provides an optimized __ieee754_log10f.  */
+#ifdef SHARED
+# define NO_COMPAT_NEEDED 1
+# include <math/w_log10f_compat.c>
+#else
+# include <math-type-macros-float.h>
+# include <w_log10_template.c>
+#endif
diff --git a/sysdeps/mach/hurd/i386/libm.abilist b/sysdeps/mach/hurd/i386/libm.abilist
index a248abb642..d7bb4cfa16 100644
--- a/sysdeps/mach/hurd/i386/libm.abilist
+++ b/sysdeps/mach/hurd/i386/libm.abilist
@@ -1277,3 +1277,4 @@ GLIBC_2.41 tanpif32x F
 GLIBC_2.41 tanpif64 F
 GLIBC_2.41 tanpif64x F
 GLIBC_2.41 tanpil F
+GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/aarch64/libm.abilist b/sysdeps/unix/sysv/linux/aarch64/libm.abilist
index 88a81da2fe..f4c1c78ef0 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libm.abilist
@@ -1245,3 +1245,4 @@ GLIBC_2.41 tanpif32x F
 GLIBC_2.41 tanpif64 F
 GLIBC_2.41 tanpif64x F
 GLIBC_2.41 tanpil F
+GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/alpha/libm.abilist b/sysdeps/unix/sysv/linux/alpha/libm.abilist
index 007fd86f9e..787599b70d 100644
--- a/sysdeps/unix/sysv/linux/alpha/libm.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libm.abilist
@@ -1404,3 +1404,4 @@ GLIBC_2.41 tanpif32x F
 GLIBC_2.41 tanpif64 F
 GLIBC_2.41 tanpif64x F
 GLIBC_2.41 tanpil F
+GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libm.abilist b/sysdeps/unix/sysv/linux/arm/be/libm.abilist
index d1531f79c9..eb1b81eccf 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libm.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libm.abilist
@@ -920,3 +920,4 @@ GLIBC_2.41 tanpif32 F
 GLIBC_2.41 tanpif32x F
 GLIBC_2.41 tanpif64 F
 GLIBC_2.41 tanpil F
+GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libm.abilist b/sysdeps/unix/sysv/linux/arm/le/libm.abilist
index d1531f79c9..eb1b81eccf 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libm.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libm.abilist
@@ -920,3 +920,4 @@ GLIBC_2.41 tanpif32 F
 GLIBC_2.41 tanpif32x F
 GLIBC_2.41 tanpif64 F
 GLIBC_2.41 tanpil F
+GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/hppa/libm.abilist b/sysdeps/unix/sysv/linux/hppa/libm.abilist
index 4699d529a4..8a5c1c5b86 100644
--- a/sysdeps/unix/sysv/linux/hppa/libm.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libm.abilist
@@ -920,3 +920,4 @@ GLIBC_2.41 tanpif32 F
 GLIBC_2.41 tanpif32x F
 GLIBC_2.41 tanpif64 F
 GLIBC_2.41 tanpil F
+GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/i386/libm.abilist b/sysdeps/unix/sysv/linux/i386/libm.abilist
index d1ce0f7283..c4d074dfdc 100644
--- a/sysdeps/unix/sysv/linux/i386/libm.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libm.abilist
@@ -1284,3 +1284,4 @@ GLIBC_2.41 tanpif32x F
 GLIBC_2.41 tanpif64 F
 GLIBC_2.41 tanpif64x F
 GLIBC_2.41 tanpil F
+GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist
index d1531f79c9..eb1b81eccf 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist
@@ -920,3 +920,4 @@ GLIBC_2.41 tanpif32 F
 GLIBC_2.41 tanpif32x F
 GLIBC_2.41 tanpif64 F
 GLIBC_2.41 tanpil F
+GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist
index 2f6a2e7d21..2b768e5376 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist
@@ -920,3 +920,4 @@ GLIBC_2.41 tanpif32 F
 GLIBC_2.41 tanpif32x F
 GLIBC_2.41 tanpif64 F
 GLIBC_2.41 tanpil F
+GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist
index 2f6a2e7d21..2b768e5376 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist
@@ -920,3 +920,4 @@ GLIBC_2.41 tanpif32 F
 GLIBC_2.41 tanpif32x F
 GLIBC_2.41 tanpif64 F
 GLIBC_2.41 tanpil F
+GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist
index 85173a7471..52f526d732 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist
@@ -920,3 +920,4 @@ GLIBC_2.41 tanpif32 F
 GLIBC_2.41 tanpif32x F
 GLIBC_2.41 tanpif64 F
 GLIBC_2.41 tanpil F
+GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist b/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist
index 880f8c4c16..af762481aa 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist
@@ -1245,3 +1245,4 @@ GLIBC_2.41 tanpif32x F
 GLIBC_2.41 tanpif64 F
 GLIBC_2.41 tanpif64x F
 GLIBC_2.41 tanpil F
+GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist
index 43d578d09d..deeba94b9c 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist
@@ -1067,3 +1067,4 @@ GLIBC_2.41 tanpif32 F
 GLIBC_2.41 tanpif32x F
 GLIBC_2.41 tanpif64 F
 GLIBC_2.41 tanpil F
+GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist
index 64a9ea10b2..d13d81cc13 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist
@@ -1066,3 +1066,4 @@ GLIBC_2.41 tanpif32 F
 GLIBC_2.41 tanpif32x F
 GLIBC_2.41 tanpif64 F
 GLIBC_2.41 tanpil F
+GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist
index d45783a1d3..abc30421a5 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist
@@ -1060,3 +1060,4 @@ GLIBC_2.41 tanpif32 F
 GLIBC_2.41 tanpif32x F
 GLIBC_2.41 tanpif64 F
 GLIBC_2.41 tanpil F
+GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist
index 44ca2f20d9..ea38df2a87 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist
@@ -1429,3 +1429,4 @@ GLIBC_2.41 tanpif32x F
 GLIBC_2.41 tanpif64 F
 GLIBC_2.41 tanpif64x F
 GLIBC_2.41 tanpil F
+GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist
index bc621c2923..1ed2a31928 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist
@@ -1348,3 +1348,4 @@ GLIBC_2.41 tanpif32x F
 GLIBC_2.41 tanpif64 F
 GLIBC_2.41 tanpif64x F
 GLIBC_2.41 tanpil F
+GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist
index 8de3065e45..acd20230a2 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist
@@ -1348,3 +1348,4 @@ GLIBC_2.41 tanpif32x F
 GLIBC_2.41 tanpif64 F
 GLIBC_2.41 tanpif64x F
 GLIBC_2.41 tanpil F
+GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libm.abilist b/sysdeps/unix/sysv/linux/sh/be/libm.abilist
index 6df6a8d7b0..7b228e449a 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libm.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libm.abilist
@@ -920,3 +920,4 @@ GLIBC_2.41 tanpif32 F
 GLIBC_2.41 tanpif32x F
 GLIBC_2.41 tanpif64 F
 GLIBC_2.41 tanpil F
+GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libm.abilist b/sysdeps/unix/sysv/linux/sh/le/libm.abilist
index 6df6a8d7b0..7b228e449a 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libm.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libm.abilist
@@ -920,3 +920,4 @@ GLIBC_2.41 tanpif32 F
 GLIBC_2.41 tanpif32x F
 GLIBC_2.41 tanpif64 F
 GLIBC_2.41 tanpil F
+GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist
index 991d96b3d4..1e7f7309c6 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist
@@ -1355,3 +1355,4 @@ GLIBC_2.41 tanpif32x F
 GLIBC_2.41 tanpif64 F
 GLIBC_2.41 tanpif64x F
 GLIBC_2.41 tanpil F
+GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist
index 8600571387..ae1f040772 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist
@@ -1245,3 +1245,4 @@ GLIBC_2.41 tanpif32x F
 GLIBC_2.41 tanpif64 F
 GLIBC_2.41 tanpif64x F
 GLIBC_2.41 tanpil F
+GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist
index 8113fb41f0..c5b759ad37 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist
@@ -1278,3 +1278,4 @@ GLIBC_2.41 tanpif32x F
 GLIBC_2.41 tanpif64 F
 GLIBC_2.41 tanpif64x F
 GLIBC_2.41 tanpil F
+GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist
index ac96d62ed2..3f4be241db 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist
@@ -1278,3 +1278,4 @@ GLIBC_2.41 tanpif32x F
 GLIBC_2.41 tanpif64 F
 GLIBC_2.41 tanpif64x F
 GLIBC_2.41 tanpil F
+GLIBC_2.42 log10f F
-- 
2.43.0


  parent reply	other threads:[~2025-01-30 16:30 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-01-30 16:28 [PATCH v2 00/10] Remove the SVID wrapper from CORE-MATH functions Adhemerval Zanella
2025-01-30 16:28 ` [PATCH v2 01/10] benchtests: Add lgammaf_r benchmark Adhemerval Zanella
2025-01-30 16:28 ` Adhemerval Zanella [this message]
2025-01-30 16:28 ` [PATCH v2 03/10] math: Remove the error handling wrapper from lgammaf/lgammaf_r Adhemerval Zanella
2025-01-30 16:29 ` [PATCH v2 04/10] math: Remove the error handling wrapper from acosf Adhemerval Zanella
2025-01-30 16:29 ` [PATCH v2 05/10] math: Remove the error handling wrapper from asinf Adhemerval Zanella
2025-01-30 16:29 ` [PATCH v2 06/10] math: Remove the error handling wrapper from acoshf Adhemerval Zanella
2025-01-30 16:29 ` [PATCH v2 07/10] math: Remove the error handling wrapper from atan2f Adhemerval Zanella
2025-01-30 16:29 ` [PATCH v2 08/10] math: Remove the error handling wrapper from atanhf Adhemerval Zanella
2025-01-30 16:29 ` [PATCH v2 09/10] math: Remove the error handling wrapper from coshf Adhemerval Zanella
2025-01-30 16:29 ` [PATCH v2 10/10] math: Remove the error handling wrapper from sinhf Adhemerval Zanella

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20250130163024.2032523-3-adhemerval.zanella@linaro.org \
    --to=adhemerval.zanella@linaro.org \
    --cc=Paul.Zimmermann@inria.fr \
    --cc=dj@redhat.com \
    --cc=josmyers@redhat.com \
    --cc=libc-alpha@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).