* [PATCH 0/2] math symbols cleanup @ 2021-02-11 10:19 Siddhesh Poyarekar 2021-02-11 10:19 ` [PATCH 1/2] Move __isnanf128 to libc.so Siddhesh Poyarekar ` (3 more replies) 0 siblings, 4 replies; 15+ messages in thread From: Siddhesh Poyarekar @ 2021-02-11 10:19 UTC (permalink / raw) To: libc-alpha; +Cc: fweimer, carlos This patchset cleans up state of functions shared between libc and libm so that they're consistent and avoid duplication where possible. Siddhesh Poyarekar (2): Move __isnanf128 to libc.so Avoid adding duplicated symbols into static libraries math/Makefile | 3 +++ sysdeps/ieee754/float128/Versions | 2 +- sysdeps/mach/hurd/i386/libc.abilist | 1 + sysdeps/mach/hurd/i386/libm.abilist | 1 - sysdeps/unix/sysv/linux/i386/libc.abilist | 1 + sysdeps/unix/sysv/linux/i386/libm.abilist | 1 - sysdeps/unix/sysv/linux/ia64/libc.abilist | 1 + sysdeps/unix/sysv/linux/ia64/libm.abilist | 1 - sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist | 1 + sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist | 1 - sysdeps/unix/sysv/linux/x86_64/64/libc.abilist | 1 + sysdeps/unix/sysv/linux/x86_64/64/libm.abilist | 1 - sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist | 1 + sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist | 1 - 14 files changed, 10 insertions(+), 7 deletions(-) -- 2.29.2 ^ permalink raw reply [flat|nested] 15+ messages in thread
* [PATCH 1/2] Move __isnanf128 to libc.so 2021-02-11 10:19 [PATCH 0/2] math symbols cleanup Siddhesh Poyarekar @ 2021-02-11 10:19 ` Siddhesh Poyarekar 2021-02-11 10:27 ` Florian Weimer 2021-02-11 10:19 ` [PATCH 2/2] Avoid adding duplicated symbols into static libraries Siddhesh Poyarekar ` (2 subsequent siblings) 3 siblings, 1 reply; 15+ messages in thread From: Siddhesh Poyarekar @ 2021-02-11 10:19 UTC (permalink / raw) To: libc-alpha; +Cc: fweimer, carlos All of the isnan functions are in libc.so due to printf_fp, so move __isnanf128 there too for consistency. --- sysdeps/ieee754/float128/Versions | 2 +- sysdeps/mach/hurd/i386/libc.abilist | 1 + sysdeps/mach/hurd/i386/libm.abilist | 1 - sysdeps/unix/sysv/linux/i386/libc.abilist | 1 + sysdeps/unix/sysv/linux/i386/libm.abilist | 1 - sysdeps/unix/sysv/linux/ia64/libc.abilist | 1 + sysdeps/unix/sysv/linux/ia64/libm.abilist | 1 - sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist | 1 + sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist | 1 - sysdeps/unix/sysv/linux/x86_64/64/libc.abilist | 1 + sysdeps/unix/sysv/linux/x86_64/64/libm.abilist | 1 - sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist | 1 + sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist | 1 - 13 files changed, 7 insertions(+), 7 deletions(-) diff --git a/sysdeps/ieee754/float128/Versions b/sysdeps/ieee754/float128/Versions index 2eebc6f1b0..8e644385f4 100644 --- a/sysdeps/ieee754/float128/Versions +++ b/sysdeps/ieee754/float128/Versions @@ -4,6 +4,7 @@ %endif libc { FLOAT128_VERSION { + __isnanf128; __strtof128_internal; __wcstof128_internal; } @@ -30,7 +31,6 @@ libm { __hypotf128_finite; __iseqsigf128; __isinff128; - __isnanf128; __issignalingf128; __j0f128_finite; __j1f128_finite; diff --git a/sysdeps/mach/hurd/i386/libc.abilist b/sysdeps/mach/hurd/i386/libc.abilist index 509e9b7cb0..58b0120d58 100644 --- a/sysdeps/mach/hurd/i386/libc.abilist +++ b/sysdeps/mach/hurd/i386/libc.abilist @@ -1995,6 +1995,7 @@ GLIBC_2.25 gnu_dev_minor F GLIBC_2.25 strfromd F GLIBC_2.25 strfromf F GLIBC_2.25 strfroml F +GLIBC_2.26 __isnanf128 F GLIBC_2.26 __strtof128_internal F GLIBC_2.26 __wcstof128_internal F GLIBC_2.26 _hurd_exec_paths F diff --git a/sysdeps/mach/hurd/i386/libm.abilist b/sysdeps/mach/hurd/i386/libm.abilist index a19a69ce6a..bb077b9030 100644 --- a/sysdeps/mach/hurd/i386/libm.abilist +++ b/sysdeps/mach/hurd/i386/libm.abilist @@ -474,7 +474,6 @@ GLIBC_2.26 __gammaf128_r_finite F GLIBC_2.26 __hypotf128_finite F GLIBC_2.26 __iseqsigf128 F GLIBC_2.26 __isinff128 F -GLIBC_2.26 __isnanf128 F GLIBC_2.26 __issignalingf128 F GLIBC_2.26 __j0f128_finite F GLIBC_2.26 __j1f128_finite F diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist index ddc5837059..ed631c0423 100644 --- a/sysdeps/unix/sysv/linux/i386/libc.abilist +++ b/sysdeps/unix/sysv/linux/i386/libc.abilist @@ -2002,6 +2002,7 @@ GLIBC_2.25 getrandom F GLIBC_2.25 strfromd F GLIBC_2.25 strfromf F GLIBC_2.25 strfroml F +GLIBC_2.26 __isnanf128 F GLIBC_2.26 __strtof128_internal F GLIBC_2.26 __wcstof128_internal F GLIBC_2.26 preadv2 F diff --git a/sysdeps/unix/sysv/linux/i386/libm.abilist b/sysdeps/unix/sysv/linux/i386/libm.abilist index 0ab740dd97..335b5e7aa2 100644 --- a/sysdeps/unix/sysv/linux/i386/libm.abilist +++ b/sysdeps/unix/sysv/linux/i386/libm.abilist @@ -481,7 +481,6 @@ GLIBC_2.26 __gammaf128_r_finite F GLIBC_2.26 __hypotf128_finite F GLIBC_2.26 __iseqsigf128 F GLIBC_2.26 __isinff128 F -GLIBC_2.26 __isnanf128 F GLIBC_2.26 __issignalingf128 F GLIBC_2.26 __j0f128_finite F GLIBC_2.26 __j1f128_finite F diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist index e3b345b803..e4e0bfb2b8 100644 --- a/sysdeps/unix/sysv/linux/ia64/libc.abilist +++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist @@ -1872,6 +1872,7 @@ GLIBC_2.25 getrandom F GLIBC_2.25 strfromd F GLIBC_2.25 strfromf F GLIBC_2.25 strfroml F +GLIBC_2.26 __isnanf128 F GLIBC_2.26 __strtof128_internal F GLIBC_2.26 __wcstof128_internal F GLIBC_2.26 preadv2 F diff --git a/sysdeps/unix/sysv/linux/ia64/libm.abilist b/sysdeps/unix/sysv/linux/ia64/libm.abilist index c8e8fd7142..ec82b83e6f 100644 --- a/sysdeps/unix/sysv/linux/ia64/libm.abilist +++ b/sysdeps/unix/sysv/linux/ia64/libm.abilist @@ -411,7 +411,6 @@ GLIBC_2.26 __gammaf128_r_finite F GLIBC_2.26 __hypotf128_finite F GLIBC_2.26 __iseqsigf128 F GLIBC_2.26 __isinff128 F -GLIBC_2.26 __isnanf128 F GLIBC_2.26 __issignalingf128 F GLIBC_2.26 __j0f128_finite F GLIBC_2.26 __j1f128_finite F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist index 0ea50dc851..d89e2ca6bb 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist @@ -2183,6 +2183,7 @@ GLIBC_2.25 getrandom F GLIBC_2.25 strfromd F GLIBC_2.25 strfromf F GLIBC_2.25 strfroml F +GLIBC_2.26 __isnanf128 F GLIBC_2.26 __strtof128_internal F GLIBC_2.26 __wcstof128_internal F GLIBC_2.26 preadv2 F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist index 4f8d3c1191..8266bc32f4 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist @@ -478,7 +478,6 @@ GLIBC_2.26 __gammaf128_r_finite F GLIBC_2.26 __hypotf128_finite F GLIBC_2.26 __iseqsigf128 F GLIBC_2.26 __isinff128 F -GLIBC_2.26 __isnanf128 F GLIBC_2.26 __issignalingf128 F GLIBC_2.26 __j0f128_finite F GLIBC_2.26 __j1f128_finite F diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist index 2744bba4af..4e4682c657 100644 --- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist @@ -1853,6 +1853,7 @@ GLIBC_2.25 getrandom F GLIBC_2.25 strfromd F GLIBC_2.25 strfromf F GLIBC_2.25 strfroml F +GLIBC_2.26 __isnanf128 F GLIBC_2.26 __strtof128_internal F GLIBC_2.26 __wcstof128_internal F GLIBC_2.26 preadv2 F diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist index 89c4ac484d..b6a088ca64 100644 --- a/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist @@ -472,7 +472,6 @@ GLIBC_2.26 __gammaf128_r_finite F GLIBC_2.26 __hypotf128_finite F GLIBC_2.26 __iseqsigf128 F GLIBC_2.26 __isinff128 F -GLIBC_2.26 __isnanf128 F GLIBC_2.26 __issignalingf128 F GLIBC_2.26 __j0f128_finite F GLIBC_2.26 __j1f128_finite F diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist index ce2f4fb72b..8151ac474e 100644 --- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist @@ -2106,6 +2106,7 @@ GLIBC_2.25 getrandom F GLIBC_2.25 strfromd F GLIBC_2.25 strfromf F GLIBC_2.25 strfroml F +GLIBC_2.26 __isnanf128 F GLIBC_2.26 __strtof128_internal F GLIBC_2.26 __wcstof128_internal F GLIBC_2.26 preadv2 F diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist index d3c9cec71a..dfb5a7fa79 100644 --- a/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist @@ -472,7 +472,6 @@ GLIBC_2.26 __gammaf128_r_finite F GLIBC_2.26 __hypotf128_finite F GLIBC_2.26 __iseqsigf128 F GLIBC_2.26 __isinff128 F -GLIBC_2.26 __isnanf128 F GLIBC_2.26 __issignalingf128 F GLIBC_2.26 __j0f128_finite F GLIBC_2.26 __j1f128_finite F -- 2.29.2 ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH 1/2] Move __isnanf128 to libc.so 2021-02-11 10:19 ` [PATCH 1/2] Move __isnanf128 to libc.so Siddhesh Poyarekar @ 2021-02-11 10:27 ` Florian Weimer 2021-02-11 14:14 ` [PATCH v2 " Siddhesh Poyarekar 0 siblings, 1 reply; 15+ messages in thread From: Florian Weimer @ 2021-02-11 10:27 UTC (permalink / raw) To: Siddhesh Poyarekar; +Cc: libc-alpha, carlos * Siddhesh Poyarekar: > All of the isnan functions are in libc.so due to printf_fp, so move > __isnanf128 there too for consistency. This needs to add a new symbol version in libc, so that newly linked binaries fail to load immediately with an older libc.so.6. Thanks, Florian -- Red Hat GmbH, https://de.redhat.com/ , Registered seat: Grasbrunn, Commercial register: Amtsgericht Muenchen, HRB 153243, Managing Directors: Charles Cachera, Brian Klemm, Laurie Krebs, Michael O'Neill ^ permalink raw reply [flat|nested] 15+ messages in thread
* [PATCH v2 1/2] Move __isnanf128 to libc.so 2021-02-11 10:27 ` Florian Weimer @ 2021-02-11 14:14 ` Siddhesh Poyarekar 2021-02-11 16:03 ` Florian Weimer 2021-03-29 13:57 ` Siddhesh Poyarekar 0 siblings, 2 replies; 15+ messages in thread From: Siddhesh Poyarekar @ 2021-02-11 14:14 UTC (permalink / raw) To: libc-alpha; +Cc: fweimer, carlos All of the isnan functions are in libc.so due to printf_fp, so move __isnanf128 there too for consistency. --- Changes from v1: - Added __isnanf128@@GLIBC_2_34 default symbol. sysdeps/ia64/float128-abi.h | 1 + sysdeps/ieee754/float128/Versions | 5 ++++- sysdeps/ieee754/float128/s_isnanf128.c | 19 +++++++++++++++++++ sysdeps/ieee754/ldbl-128/float128-abi.h | 1 + sysdeps/mach/hurd/i386/libc.abilist | 2 ++ sysdeps/mach/hurd/i386/libm.abilist | 1 - sysdeps/unix/sysv/linux/i386/libc.abilist | 2 ++ sysdeps/unix/sysv/linux/i386/libm.abilist | 1 - sysdeps/unix/sysv/linux/ia64/libc.abilist | 2 ++ sysdeps/unix/sysv/linux/ia64/libm.abilist | 1 - .../linux/powerpc/powerpc64/le/float128-abi.h | 1 + .../linux/powerpc/powerpc64/le/libc.abilist | 2 ++ .../linux/powerpc/powerpc64/le/libm.abilist | 1 - .../unix/sysv/linux/x86_64/64/libc.abilist | 2 ++ .../unix/sysv/linux/x86_64/64/libm.abilist | 1 - .../unix/sysv/linux/x86_64/x32/libc.abilist | 2 ++ .../unix/sysv/linux/x86_64/x32/libm.abilist | 1 - sysdeps/x86/float128-abi.h | 1 + 18 files changed, 39 insertions(+), 7 deletions(-) diff --git a/sysdeps/ia64/float128-abi.h b/sysdeps/ia64/float128-abi.h index 6b954cc673..8e7616bc7e 100644 --- a/sysdeps/ia64/float128-abi.h +++ b/sysdeps/ia64/float128-abi.h @@ -1,2 +1,3 @@ /* ABI version for _Float128 ABI introduction. */ #define FLOAT128_VERSION GLIBC_2.26 +#define FLOAT128_VERSION_M GLIBC_2_26 diff --git a/sysdeps/ieee754/float128/Versions b/sysdeps/ieee754/float128/Versions index 2eebc6f1b0..2be97f8564 100644 --- a/sysdeps/ieee754/float128/Versions +++ b/sysdeps/ieee754/float128/Versions @@ -4,9 +4,13 @@ %endif libc { FLOAT128_VERSION { + __isnanf128; __strtof128_internal; __wcstof128_internal; } + GLIBC_2.34 { + __isnanf128; + } GLIBC_PRIVATE { # For __nanf128. __strtof128_nan; @@ -30,7 +34,6 @@ libm { __hypotf128_finite; __iseqsigf128; __isinff128; - __isnanf128; __issignalingf128; __j0f128_finite; __j1f128_finite; diff --git a/sysdeps/ieee754/float128/s_isnanf128.c b/sysdeps/ieee754/float128/s_isnanf128.c index efba24059a..59f71533ce 100644 --- a/sysdeps/ieee754/float128/s_isnanf128.c +++ b/sysdeps/ieee754/float128/s_isnanf128.c @@ -1,2 +1,21 @@ +#include <shlib-compat.h> #include <float128_private.h> +#if !IS_IN (libm) +#undef __isnanl +#define __isnanl __isnanf128_impl +#undef weak_alias +#define weak_alias(n,a) +#undef mathx_hidden_def +#define mathx_hidden_def(x) +#endif #include "../ldbl-128/s_isnanl.c" +#if !IS_IN (libm) +#include <float128-abi.h> +hidden_ver (__isnanf128_impl, __isnanf128) +_weak_alias (__isnanf128_impl, isnanl) +versioned_symbol (libc, __isnanf128_impl, __isnanf128, GLIBC_2_34); +#if (SHLIB_COMPAT (libc, FLOAT128_VERSION_M, GLIBC_2_34)) +strong_alias (__isnanf128_impl, __isnanf128_alias) +compat_symbol (libc, __isnanf128_alias, __isnanf128, FLOAT128_VERSION_M); +#endif +#endif diff --git a/sysdeps/ieee754/ldbl-128/float128-abi.h b/sysdeps/ieee754/ldbl-128/float128-abi.h index 3077ffc7fe..8251ce841f 100644 --- a/sysdeps/ieee754/ldbl-128/float128-abi.h +++ b/sysdeps/ieee754/ldbl-128/float128-abi.h @@ -1,2 +1,3 @@ /* ABI version for _Float128 ABI introduction. */ #define FLOAT128_VERSION GLIBC_2.27 +#define FLOAT128_VERSION_M GLIBC_2_27 diff --git a/sysdeps/mach/hurd/i386/libc.abilist b/sysdeps/mach/hurd/i386/libc.abilist index 509e9b7cb0..cfdff6eaa7 100644 --- a/sysdeps/mach/hurd/i386/libc.abilist +++ b/sysdeps/mach/hurd/i386/libc.abilist @@ -1995,6 +1995,7 @@ GLIBC_2.25 gnu_dev_minor F GLIBC_2.25 strfromd F GLIBC_2.25 strfromf F GLIBC_2.25 strfroml F +GLIBC_2.26 __isnanf128 F GLIBC_2.26 __strtof128_internal F GLIBC_2.26 __wcstof128_internal F GLIBC_2.26 _hurd_exec_paths F @@ -2203,6 +2204,7 @@ GLIBC_2.33 mknod F GLIBC_2.33 mknodat F GLIBC_2.33 stat F GLIBC_2.33 stat64 F +GLIBC_2.34 __isnanf128 F GLIBC_2.4 __confstr_chk F GLIBC_2.4 __fgets_chk F GLIBC_2.4 __fgets_unlocked_chk F diff --git a/sysdeps/mach/hurd/i386/libm.abilist b/sysdeps/mach/hurd/i386/libm.abilist index a19a69ce6a..bb077b9030 100644 --- a/sysdeps/mach/hurd/i386/libm.abilist +++ b/sysdeps/mach/hurd/i386/libm.abilist @@ -474,7 +474,6 @@ GLIBC_2.26 __gammaf128_r_finite F GLIBC_2.26 __hypotf128_finite F GLIBC_2.26 __iseqsigf128 F GLIBC_2.26 __isinff128 F -GLIBC_2.26 __isnanf128 F GLIBC_2.26 __issignalingf128 F GLIBC_2.26 __j0f128_finite F GLIBC_2.26 __j1f128_finite F diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist index ddc5837059..3bbc28c88f 100644 --- a/sysdeps/unix/sysv/linux/i386/libc.abilist +++ b/sysdeps/unix/sysv/linux/i386/libc.abilist @@ -2002,6 +2002,7 @@ GLIBC_2.25 getrandom F GLIBC_2.25 strfromd F GLIBC_2.25 strfromf F GLIBC_2.25 strfroml F +GLIBC_2.26 __isnanf128 F GLIBC_2.26 __strtof128_internal F GLIBC_2.26 __wcstof128_internal F GLIBC_2.26 preadv2 F @@ -2241,6 +2242,7 @@ GLIBC_2.33 mknod F GLIBC_2.33 mknodat F GLIBC_2.33 stat F GLIBC_2.33 stat64 F +GLIBC_2.34 __isnanf128 F GLIBC_2.4 __confstr_chk F GLIBC_2.4 __fgets_chk F GLIBC_2.4 __fgets_unlocked_chk F diff --git a/sysdeps/unix/sysv/linux/i386/libm.abilist b/sysdeps/unix/sysv/linux/i386/libm.abilist index 0ab740dd97..335b5e7aa2 100644 --- a/sysdeps/unix/sysv/linux/i386/libm.abilist +++ b/sysdeps/unix/sysv/linux/i386/libm.abilist @@ -481,7 +481,6 @@ GLIBC_2.26 __gammaf128_r_finite F GLIBC_2.26 __hypotf128_finite F GLIBC_2.26 __iseqsigf128 F GLIBC_2.26 __isinff128 F -GLIBC_2.26 __isnanf128 F GLIBC_2.26 __issignalingf128 F GLIBC_2.26 __j0f128_finite F GLIBC_2.26 __j1f128_finite F diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist index e3b345b803..563e17b69c 100644 --- a/sysdeps/unix/sysv/linux/ia64/libc.abilist +++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist @@ -1872,6 +1872,7 @@ GLIBC_2.25 getrandom F GLIBC_2.25 strfromd F GLIBC_2.25 strfromf F GLIBC_2.25 strfroml F +GLIBC_2.26 __isnanf128 F GLIBC_2.26 __strtof128_internal F GLIBC_2.26 __wcstof128_internal F GLIBC_2.26 preadv2 F @@ -2106,6 +2107,7 @@ GLIBC_2.33 mknod F GLIBC_2.33 mknodat F GLIBC_2.33 stat F GLIBC_2.33 stat64 F +GLIBC_2.34 __isnanf128 F GLIBC_2.4 __confstr_chk F GLIBC_2.4 __fgets_chk F GLIBC_2.4 __fgets_unlocked_chk F diff --git a/sysdeps/unix/sysv/linux/ia64/libm.abilist b/sysdeps/unix/sysv/linux/ia64/libm.abilist index c8e8fd7142..ec82b83e6f 100644 --- a/sysdeps/unix/sysv/linux/ia64/libm.abilist +++ b/sysdeps/unix/sysv/linux/ia64/libm.abilist @@ -411,7 +411,6 @@ GLIBC_2.26 __gammaf128_r_finite F GLIBC_2.26 __hypotf128_finite F GLIBC_2.26 __iseqsigf128 F GLIBC_2.26 __isinff128 F -GLIBC_2.26 __isnanf128 F GLIBC_2.26 __issignalingf128 F GLIBC_2.26 __j0f128_finite F GLIBC_2.26 __j1f128_finite F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/float128-abi.h b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/float128-abi.h index 6b954cc673..8e7616bc7e 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/float128-abi.h +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/float128-abi.h @@ -1,2 +1,3 @@ /* ABI version for _Float128 ABI introduction. */ #define FLOAT128_VERSION GLIBC_2.26 +#define FLOAT128_VERSION_M GLIBC_2_26 diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist index 0ea50dc851..a9ba6c7db4 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist @@ -2183,6 +2183,7 @@ GLIBC_2.25 getrandom F GLIBC_2.25 strfromd F GLIBC_2.25 strfromf F GLIBC_2.25 strfroml F +GLIBC_2.26 __isnanf128 F GLIBC_2.26 __strtof128_internal F GLIBC_2.26 __wcstof128_internal F GLIBC_2.26 preadv2 F @@ -2366,3 +2367,4 @@ GLIBC_2.33 mknod F GLIBC_2.33 mknodat F GLIBC_2.33 stat F GLIBC_2.33 stat64 F +GLIBC_2.34 __isnanf128 F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist index 4f8d3c1191..8266bc32f4 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist @@ -478,7 +478,6 @@ GLIBC_2.26 __gammaf128_r_finite F GLIBC_2.26 __hypotf128_finite F GLIBC_2.26 __iseqsigf128 F GLIBC_2.26 __isinff128 F -GLIBC_2.26 __isnanf128 F GLIBC_2.26 __issignalingf128 F GLIBC_2.26 __j0f128_finite F GLIBC_2.26 __j1f128_finite F diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist index 2744bba4af..7c62419232 100644 --- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist @@ -1853,6 +1853,7 @@ GLIBC_2.25 getrandom F GLIBC_2.25 strfromd F GLIBC_2.25 strfromf F GLIBC_2.25 strfroml F +GLIBC_2.26 __isnanf128 F GLIBC_2.26 __strtof128_internal F GLIBC_2.26 __wcstof128_internal F GLIBC_2.26 preadv2 F @@ -2088,6 +2089,7 @@ GLIBC_2.33 mknod F GLIBC_2.33 mknodat F GLIBC_2.33 stat F GLIBC_2.33 stat64 F +GLIBC_2.34 __isnanf128 F GLIBC_2.4 __confstr_chk F GLIBC_2.4 __fgets_chk F GLIBC_2.4 __fgets_unlocked_chk F diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist index 89c4ac484d..b6a088ca64 100644 --- a/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist @@ -472,7 +472,6 @@ GLIBC_2.26 __gammaf128_r_finite F GLIBC_2.26 __hypotf128_finite F GLIBC_2.26 __iseqsigf128 F GLIBC_2.26 __isinff128 F -GLIBC_2.26 __isnanf128 F GLIBC_2.26 __issignalingf128 F GLIBC_2.26 __j0f128_finite F GLIBC_2.26 __j1f128_finite F diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist index ce2f4fb72b..ff6b0d3d53 100644 --- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist @@ -2106,6 +2106,7 @@ GLIBC_2.25 getrandom F GLIBC_2.25 strfromd F GLIBC_2.25 strfromf F GLIBC_2.25 strfroml F +GLIBC_2.26 __isnanf128 F GLIBC_2.26 __strtof128_internal F GLIBC_2.26 __wcstof128_internal F GLIBC_2.26 preadv2 F @@ -2185,3 +2186,4 @@ GLIBC_2.33 mknod F GLIBC_2.33 mknodat F GLIBC_2.33 stat F GLIBC_2.33 stat64 F +GLIBC_2.34 __isnanf128 F diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist index d3c9cec71a..dfb5a7fa79 100644 --- a/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist @@ -472,7 +472,6 @@ GLIBC_2.26 __gammaf128_r_finite F GLIBC_2.26 __hypotf128_finite F GLIBC_2.26 __iseqsigf128 F GLIBC_2.26 __isinff128 F -GLIBC_2.26 __isnanf128 F GLIBC_2.26 __issignalingf128 F GLIBC_2.26 __j0f128_finite F GLIBC_2.26 __j1f128_finite F diff --git a/sysdeps/x86/float128-abi.h b/sysdeps/x86/float128-abi.h index 6b954cc673..8e7616bc7e 100644 --- a/sysdeps/x86/float128-abi.h +++ b/sysdeps/x86/float128-abi.h @@ -1,2 +1,3 @@ /* ABI version for _Float128 ABI introduction. */ #define FLOAT128_VERSION GLIBC_2.26 +#define FLOAT128_VERSION_M GLIBC_2_26 -- 2.29.2 ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH v2 1/2] Move __isnanf128 to libc.so 2021-02-11 14:14 ` [PATCH v2 " Siddhesh Poyarekar @ 2021-02-11 16:03 ` Florian Weimer 2021-03-29 13:57 ` Siddhesh Poyarekar 1 sibling, 0 replies; 15+ messages in thread From: Florian Weimer @ 2021-02-11 16:03 UTC (permalink / raw) To: Siddhesh Poyarekar; +Cc: libc-alpha, carlos * Siddhesh Poyarekar: > All of the isnan functions are in libc.so due to printf_fp, so move > __isnanf128 there too for consistency. I can't comment on the mechanics to get there, but the result looks as expected to me. Thanks, Florian -- Red Hat GmbH, https://de.redhat.com/ , Registered seat: Grasbrunn, Commercial register: Amtsgericht Muenchen, HRB 153243, Managing Directors: Charles Cachera, Brian Klemm, Laurie Krebs, Michael O'Neill ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH v2 1/2] Move __isnanf128 to libc.so 2021-02-11 14:14 ` [PATCH v2 " Siddhesh Poyarekar 2021-02-11 16:03 ` Florian Weimer @ 2021-03-29 13:57 ` Siddhesh Poyarekar 2021-03-29 22:02 ` Tulio Magno Quites Machado Filho 1 sibling, 1 reply; 15+ messages in thread From: Siddhesh Poyarekar @ 2021-03-29 13:57 UTC (permalink / raw) To: Siddhesh Poyarekar, libc-alpha; +Cc: fweimer, Tulio Magno Quites Machado Filho +Tulio Tulio, could you please take a look at this, specifically the macro soup I've come up with for ppc64le to get the symbols in the right places? Thanks, Siddhesh On 2/11/21 7:44 PM, Siddhesh Poyarekar via Libc-alpha wrote: > All of the isnan functions are in libc.so due to printf_fp, so move > __isnanf128 there too for consistency. > --- > Changes from v1: > > - Added __isnanf128@@GLIBC_2_34 default symbol. > > sysdeps/ia64/float128-abi.h | 1 + > sysdeps/ieee754/float128/Versions | 5 ++++- > sysdeps/ieee754/float128/s_isnanf128.c | 19 +++++++++++++++++++ > sysdeps/ieee754/ldbl-128/float128-abi.h | 1 + > sysdeps/mach/hurd/i386/libc.abilist | 2 ++ > sysdeps/mach/hurd/i386/libm.abilist | 1 - > sysdeps/unix/sysv/linux/i386/libc.abilist | 2 ++ > sysdeps/unix/sysv/linux/i386/libm.abilist | 1 - > sysdeps/unix/sysv/linux/ia64/libc.abilist | 2 ++ > sysdeps/unix/sysv/linux/ia64/libm.abilist | 1 - > .../linux/powerpc/powerpc64/le/float128-abi.h | 1 + > .../linux/powerpc/powerpc64/le/libc.abilist | 2 ++ > .../linux/powerpc/powerpc64/le/libm.abilist | 1 - > .../unix/sysv/linux/x86_64/64/libc.abilist | 2 ++ > .../unix/sysv/linux/x86_64/64/libm.abilist | 1 - > .../unix/sysv/linux/x86_64/x32/libc.abilist | 2 ++ > .../unix/sysv/linux/x86_64/x32/libm.abilist | 1 - > sysdeps/x86/float128-abi.h | 1 + > 18 files changed, 39 insertions(+), 7 deletions(-) > > diff --git a/sysdeps/ia64/float128-abi.h b/sysdeps/ia64/float128-abi.h > index 6b954cc673..8e7616bc7e 100644 > --- a/sysdeps/ia64/float128-abi.h > +++ b/sysdeps/ia64/float128-abi.h > @@ -1,2 +1,3 @@ > /* ABI version for _Float128 ABI introduction. */ > #define FLOAT128_VERSION GLIBC_2.26 > +#define FLOAT128_VERSION_M GLIBC_2_26 > diff --git a/sysdeps/ieee754/float128/Versions b/sysdeps/ieee754/float128/Versions > index 2eebc6f1b0..2be97f8564 100644 > --- a/sysdeps/ieee754/float128/Versions > +++ b/sysdeps/ieee754/float128/Versions > @@ -4,9 +4,13 @@ > %endif > libc { > FLOAT128_VERSION { > + __isnanf128; > __strtof128_internal; > __wcstof128_internal; > } > + GLIBC_2.34 { > + __isnanf128; > + } > GLIBC_PRIVATE { > # For __nanf128. > __strtof128_nan; > @@ -30,7 +34,6 @@ libm { > __hypotf128_finite; > __iseqsigf128; > __isinff128; > - __isnanf128; > __issignalingf128; > __j0f128_finite; > __j1f128_finite; > diff --git a/sysdeps/ieee754/float128/s_isnanf128.c b/sysdeps/ieee754/float128/s_isnanf128.c > index efba24059a..59f71533ce 100644 > --- a/sysdeps/ieee754/float128/s_isnanf128.c > +++ b/sysdeps/ieee754/float128/s_isnanf128.c > @@ -1,2 +1,21 @@ > +#include <shlib-compat.h> > #include <float128_private.h> > +#if !IS_IN (libm) > +#undef __isnanl > +#define __isnanl __isnanf128_impl > +#undef weak_alias > +#define weak_alias(n,a) > +#undef mathx_hidden_def > +#define mathx_hidden_def(x) > +#endif > #include "../ldbl-128/s_isnanl.c" > +#if !IS_IN (libm) > +#include <float128-abi.h> > +hidden_ver (__isnanf128_impl, __isnanf128) > +_weak_alias (__isnanf128_impl, isnanl) > +versioned_symbol (libc, __isnanf128_impl, __isnanf128, GLIBC_2_34); > +#if (SHLIB_COMPAT (libc, FLOAT128_VERSION_M, GLIBC_2_34)) > +strong_alias (__isnanf128_impl, __isnanf128_alias) > +compat_symbol (libc, __isnanf128_alias, __isnanf128, FLOAT128_VERSION_M); > +#endif > +#endif > diff --git a/sysdeps/ieee754/ldbl-128/float128-abi.h b/sysdeps/ieee754/ldbl-128/float128-abi.h > index 3077ffc7fe..8251ce841f 100644 > --- a/sysdeps/ieee754/ldbl-128/float128-abi.h > +++ b/sysdeps/ieee754/ldbl-128/float128-abi.h > @@ -1,2 +1,3 @@ > /* ABI version for _Float128 ABI introduction. */ > #define FLOAT128_VERSION GLIBC_2.27 > +#define FLOAT128_VERSION_M GLIBC_2_27 > diff --git a/sysdeps/mach/hurd/i386/libc.abilist b/sysdeps/mach/hurd/i386/libc.abilist > index 509e9b7cb0..cfdff6eaa7 100644 > --- a/sysdeps/mach/hurd/i386/libc.abilist > +++ b/sysdeps/mach/hurd/i386/libc.abilist > @@ -1995,6 +1995,7 @@ GLIBC_2.25 gnu_dev_minor F > GLIBC_2.25 strfromd F > GLIBC_2.25 strfromf F > GLIBC_2.25 strfroml F > +GLIBC_2.26 __isnanf128 F > GLIBC_2.26 __strtof128_internal F > GLIBC_2.26 __wcstof128_internal F > GLIBC_2.26 _hurd_exec_paths F > @@ -2203,6 +2204,7 @@ GLIBC_2.33 mknod F > GLIBC_2.33 mknodat F > GLIBC_2.33 stat F > GLIBC_2.33 stat64 F > +GLIBC_2.34 __isnanf128 F > GLIBC_2.4 __confstr_chk F > GLIBC_2.4 __fgets_chk F > GLIBC_2.4 __fgets_unlocked_chk F > diff --git a/sysdeps/mach/hurd/i386/libm.abilist b/sysdeps/mach/hurd/i386/libm.abilist > index a19a69ce6a..bb077b9030 100644 > --- a/sysdeps/mach/hurd/i386/libm.abilist > +++ b/sysdeps/mach/hurd/i386/libm.abilist > @@ -474,7 +474,6 @@ GLIBC_2.26 __gammaf128_r_finite F > GLIBC_2.26 __hypotf128_finite F > GLIBC_2.26 __iseqsigf128 F > GLIBC_2.26 __isinff128 F > -GLIBC_2.26 __isnanf128 F > GLIBC_2.26 __issignalingf128 F > GLIBC_2.26 __j0f128_finite F > GLIBC_2.26 __j1f128_finite F > diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist > index ddc5837059..3bbc28c88f 100644 > --- a/sysdeps/unix/sysv/linux/i386/libc.abilist > +++ b/sysdeps/unix/sysv/linux/i386/libc.abilist > @@ -2002,6 +2002,7 @@ GLIBC_2.25 getrandom F > GLIBC_2.25 strfromd F > GLIBC_2.25 strfromf F > GLIBC_2.25 strfroml F > +GLIBC_2.26 __isnanf128 F > GLIBC_2.26 __strtof128_internal F > GLIBC_2.26 __wcstof128_internal F > GLIBC_2.26 preadv2 F > @@ -2241,6 +2242,7 @@ GLIBC_2.33 mknod F > GLIBC_2.33 mknodat F > GLIBC_2.33 stat F > GLIBC_2.33 stat64 F > +GLIBC_2.34 __isnanf128 F > GLIBC_2.4 __confstr_chk F > GLIBC_2.4 __fgets_chk F > GLIBC_2.4 __fgets_unlocked_chk F > diff --git a/sysdeps/unix/sysv/linux/i386/libm.abilist b/sysdeps/unix/sysv/linux/i386/libm.abilist > index 0ab740dd97..335b5e7aa2 100644 > --- a/sysdeps/unix/sysv/linux/i386/libm.abilist > +++ b/sysdeps/unix/sysv/linux/i386/libm.abilist > @@ -481,7 +481,6 @@ GLIBC_2.26 __gammaf128_r_finite F > GLIBC_2.26 __hypotf128_finite F > GLIBC_2.26 __iseqsigf128 F > GLIBC_2.26 __isinff128 F > -GLIBC_2.26 __isnanf128 F > GLIBC_2.26 __issignalingf128 F > GLIBC_2.26 __j0f128_finite F > GLIBC_2.26 __j1f128_finite F > diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist > index e3b345b803..563e17b69c 100644 > --- a/sysdeps/unix/sysv/linux/ia64/libc.abilist > +++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist > @@ -1872,6 +1872,7 @@ GLIBC_2.25 getrandom F > GLIBC_2.25 strfromd F > GLIBC_2.25 strfromf F > GLIBC_2.25 strfroml F > +GLIBC_2.26 __isnanf128 F > GLIBC_2.26 __strtof128_internal F > GLIBC_2.26 __wcstof128_internal F > GLIBC_2.26 preadv2 F > @@ -2106,6 +2107,7 @@ GLIBC_2.33 mknod F > GLIBC_2.33 mknodat F > GLIBC_2.33 stat F > GLIBC_2.33 stat64 F > +GLIBC_2.34 __isnanf128 F > GLIBC_2.4 __confstr_chk F > GLIBC_2.4 __fgets_chk F > GLIBC_2.4 __fgets_unlocked_chk F > diff --git a/sysdeps/unix/sysv/linux/ia64/libm.abilist b/sysdeps/unix/sysv/linux/ia64/libm.abilist > index c8e8fd7142..ec82b83e6f 100644 > --- a/sysdeps/unix/sysv/linux/ia64/libm.abilist > +++ b/sysdeps/unix/sysv/linux/ia64/libm.abilist > @@ -411,7 +411,6 @@ GLIBC_2.26 __gammaf128_r_finite F > GLIBC_2.26 __hypotf128_finite F > GLIBC_2.26 __iseqsigf128 F > GLIBC_2.26 __isinff128 F > -GLIBC_2.26 __isnanf128 F > GLIBC_2.26 __issignalingf128 F > GLIBC_2.26 __j0f128_finite F > GLIBC_2.26 __j1f128_finite F > diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/float128-abi.h b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/float128-abi.h > index 6b954cc673..8e7616bc7e 100644 > --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/float128-abi.h > +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/float128-abi.h > @@ -1,2 +1,3 @@ > /* ABI version for _Float128 ABI introduction. */ > #define FLOAT128_VERSION GLIBC_2.26 > +#define FLOAT128_VERSION_M GLIBC_2_26 > diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist > index 0ea50dc851..a9ba6c7db4 100644 > --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist > +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist > @@ -2183,6 +2183,7 @@ GLIBC_2.25 getrandom F > GLIBC_2.25 strfromd F > GLIBC_2.25 strfromf F > GLIBC_2.25 strfroml F > +GLIBC_2.26 __isnanf128 F > GLIBC_2.26 __strtof128_internal F > GLIBC_2.26 __wcstof128_internal F > GLIBC_2.26 preadv2 F > @@ -2366,3 +2367,4 @@ GLIBC_2.33 mknod F > GLIBC_2.33 mknodat F > GLIBC_2.33 stat F > GLIBC_2.33 stat64 F > +GLIBC_2.34 __isnanf128 F > diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist > index 4f8d3c1191..8266bc32f4 100644 > --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist > +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist > @@ -478,7 +478,6 @@ GLIBC_2.26 __gammaf128_r_finite F > GLIBC_2.26 __hypotf128_finite F > GLIBC_2.26 __iseqsigf128 F > GLIBC_2.26 __isinff128 F > -GLIBC_2.26 __isnanf128 F > GLIBC_2.26 __issignalingf128 F > GLIBC_2.26 __j0f128_finite F > GLIBC_2.26 __j1f128_finite F > diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist > index 2744bba4af..7c62419232 100644 > --- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist > +++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist > @@ -1853,6 +1853,7 @@ GLIBC_2.25 getrandom F > GLIBC_2.25 strfromd F > GLIBC_2.25 strfromf F > GLIBC_2.25 strfroml F > +GLIBC_2.26 __isnanf128 F > GLIBC_2.26 __strtof128_internal F > GLIBC_2.26 __wcstof128_internal F > GLIBC_2.26 preadv2 F > @@ -2088,6 +2089,7 @@ GLIBC_2.33 mknod F > GLIBC_2.33 mknodat F > GLIBC_2.33 stat F > GLIBC_2.33 stat64 F > +GLIBC_2.34 __isnanf128 F > GLIBC_2.4 __confstr_chk F > GLIBC_2.4 __fgets_chk F > GLIBC_2.4 __fgets_unlocked_chk F > diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist > index 89c4ac484d..b6a088ca64 100644 > --- a/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist > +++ b/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist > @@ -472,7 +472,6 @@ GLIBC_2.26 __gammaf128_r_finite F > GLIBC_2.26 __hypotf128_finite F > GLIBC_2.26 __iseqsigf128 F > GLIBC_2.26 __isinff128 F > -GLIBC_2.26 __isnanf128 F > GLIBC_2.26 __issignalingf128 F > GLIBC_2.26 __j0f128_finite F > GLIBC_2.26 __j1f128_finite F > diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist > index ce2f4fb72b..ff6b0d3d53 100644 > --- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist > +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist > @@ -2106,6 +2106,7 @@ GLIBC_2.25 getrandom F > GLIBC_2.25 strfromd F > GLIBC_2.25 strfromf F > GLIBC_2.25 strfroml F > +GLIBC_2.26 __isnanf128 F > GLIBC_2.26 __strtof128_internal F > GLIBC_2.26 __wcstof128_internal F > GLIBC_2.26 preadv2 F > @@ -2185,3 +2186,4 @@ GLIBC_2.33 mknod F > GLIBC_2.33 mknodat F > GLIBC_2.33 stat F > GLIBC_2.33 stat64 F > +GLIBC_2.34 __isnanf128 F > diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist > index d3c9cec71a..dfb5a7fa79 100644 > --- a/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist > +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist > @@ -472,7 +472,6 @@ GLIBC_2.26 __gammaf128_r_finite F > GLIBC_2.26 __hypotf128_finite F > GLIBC_2.26 __iseqsigf128 F > GLIBC_2.26 __isinff128 F > -GLIBC_2.26 __isnanf128 F > GLIBC_2.26 __issignalingf128 F > GLIBC_2.26 __j0f128_finite F > GLIBC_2.26 __j1f128_finite F > diff --git a/sysdeps/x86/float128-abi.h b/sysdeps/x86/float128-abi.h > index 6b954cc673..8e7616bc7e 100644 > --- a/sysdeps/x86/float128-abi.h > +++ b/sysdeps/x86/float128-abi.h > @@ -1,2 +1,3 @@ > /* ABI version for _Float128 ABI introduction. */ > #define FLOAT128_VERSION GLIBC_2.26 > +#define FLOAT128_VERSION_M GLIBC_2_26 > ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH v2 1/2] Move __isnanf128 to libc.so 2021-03-29 13:57 ` Siddhesh Poyarekar @ 2021-03-29 22:02 ` Tulio Magno Quites Machado Filho 2021-03-30 9:31 ` [COMMITTED] " Siddhesh Poyarekar 0 siblings, 1 reply; 15+ messages in thread From: Tulio Magno Quites Machado Filho @ 2021-03-29 22:02 UTC (permalink / raw) To: Siddhesh Poyarekar, Siddhesh Poyarekar, libc-alpha; +Cc: fweimer Siddhesh Poyarekar <siddhesh@gotplt.org> writes: > Tulio, could you please take a look at this, specifically the macro soup > I've come up with for ppc64le to get the symbols in the right places? They seem alright. LGTM. I had to solve a few minor conflicts. I pushed the patch I tested to https://github.com/tuliom/glibc/commit/cb3b6053b60dce5c5aee11bc2cc528f8e9551e06 -- Tulio Magno ^ permalink raw reply [flat|nested] 15+ messages in thread
* [COMMITTED] Move __isnanf128 to libc.so 2021-03-29 22:02 ` Tulio Magno Quites Machado Filho @ 2021-03-30 9:31 ` Siddhesh Poyarekar 0 siblings, 0 replies; 15+ messages in thread From: Siddhesh Poyarekar @ 2021-03-30 9:31 UTC (permalink / raw) To: libc-alpha; +Cc: Tulio Magno Quites Machado Filho, Florian Weimer All of the isnan functions are in libc.so due to printf_fp, so move __isnanf128 there too for consistency. Reviewed-by: Tulio Magno Quites Machado Filho <tuliom@ascii.art.br> Reviewed-by: Florian Weimer <fweimer@redhat.com> --- sysdeps/ia64/float128-abi.h | 1 + sysdeps/ieee754/float128/Versions | 5 ++++- sysdeps/ieee754/float128/s_isnanf128.c | 19 +++++++++++++++++++ sysdeps/ieee754/ldbl-128/float128-abi.h | 1 + sysdeps/mach/hurd/i386/libc.abilist | 2 ++ sysdeps/mach/hurd/i386/libm.abilist | 1 - sysdeps/unix/sysv/linux/i386/libc.abilist | 2 ++ sysdeps/unix/sysv/linux/i386/libm.abilist | 1 - sysdeps/unix/sysv/linux/ia64/libc.abilist | 2 ++ sysdeps/unix/sysv/linux/ia64/libm.abilist | 1 - .../linux/powerpc/powerpc64/le/float128-abi.h | 1 + .../linux/powerpc/powerpc64/le/libc.abilist | 2 ++ .../linux/powerpc/powerpc64/le/libm.abilist | 1 - .../unix/sysv/linux/x86_64/64/libc.abilist | 2 ++ .../unix/sysv/linux/x86_64/64/libm.abilist | 1 - .../unix/sysv/linux/x86_64/x32/libc.abilist | 2 ++ .../unix/sysv/linux/x86_64/x32/libm.abilist | 1 - sysdeps/x86/float128-abi.h | 1 + 18 files changed, 39 insertions(+), 7 deletions(-) diff --git a/sysdeps/ia64/float128-abi.h b/sysdeps/ia64/float128-abi.h index 6b954cc673..8e7616bc7e 100644 --- a/sysdeps/ia64/float128-abi.h +++ b/sysdeps/ia64/float128-abi.h @@ -1,2 +1,3 @@ /* ABI version for _Float128 ABI introduction. */ #define FLOAT128_VERSION GLIBC_2.26 +#define FLOAT128_VERSION_M GLIBC_2_26 diff --git a/sysdeps/ieee754/float128/Versions b/sysdeps/ieee754/float128/Versions index 2eebc6f1b0..2be97f8564 100644 --- a/sysdeps/ieee754/float128/Versions +++ b/sysdeps/ieee754/float128/Versions @@ -4,9 +4,13 @@ %endif libc { FLOAT128_VERSION { + __isnanf128; __strtof128_internal; __wcstof128_internal; } + GLIBC_2.34 { + __isnanf128; + } GLIBC_PRIVATE { # For __nanf128. __strtof128_nan; @@ -30,7 +34,6 @@ libm { __hypotf128_finite; __iseqsigf128; __isinff128; - __isnanf128; __issignalingf128; __j0f128_finite; __j1f128_finite; diff --git a/sysdeps/ieee754/float128/s_isnanf128.c b/sysdeps/ieee754/float128/s_isnanf128.c index efba24059a..59f71533ce 100644 --- a/sysdeps/ieee754/float128/s_isnanf128.c +++ b/sysdeps/ieee754/float128/s_isnanf128.c @@ -1,2 +1,21 @@ +#include <shlib-compat.h> #include <float128_private.h> +#if !IS_IN (libm) +#undef __isnanl +#define __isnanl __isnanf128_impl +#undef weak_alias +#define weak_alias(n,a) +#undef mathx_hidden_def +#define mathx_hidden_def(x) +#endif #include "../ldbl-128/s_isnanl.c" +#if !IS_IN (libm) +#include <float128-abi.h> +hidden_ver (__isnanf128_impl, __isnanf128) +_weak_alias (__isnanf128_impl, isnanl) +versioned_symbol (libc, __isnanf128_impl, __isnanf128, GLIBC_2_34); +#if (SHLIB_COMPAT (libc, FLOAT128_VERSION_M, GLIBC_2_34)) +strong_alias (__isnanf128_impl, __isnanf128_alias) +compat_symbol (libc, __isnanf128_alias, __isnanf128, FLOAT128_VERSION_M); +#endif +#endif diff --git a/sysdeps/ieee754/ldbl-128/float128-abi.h b/sysdeps/ieee754/ldbl-128/float128-abi.h index 3077ffc7fe..8251ce841f 100644 --- a/sysdeps/ieee754/ldbl-128/float128-abi.h +++ b/sysdeps/ieee754/ldbl-128/float128-abi.h @@ -1,2 +1,3 @@ /* ABI version for _Float128 ABI introduction. */ #define FLOAT128_VERSION GLIBC_2.27 +#define FLOAT128_VERSION_M GLIBC_2_27 diff --git a/sysdeps/mach/hurd/i386/libc.abilist b/sysdeps/mach/hurd/i386/libc.abilist index e10a286d2e..7424dc9166 100644 --- a/sysdeps/mach/hurd/i386/libc.abilist +++ b/sysdeps/mach/hurd/i386/libc.abilist @@ -1995,6 +1995,7 @@ GLIBC_2.25 gnu_dev_minor F GLIBC_2.25 strfromd F GLIBC_2.25 strfromf F GLIBC_2.25 strfroml F +GLIBC_2.26 __isnanf128 F GLIBC_2.26 __strtof128_internal F GLIBC_2.26 __wcstof128_internal F GLIBC_2.26 _hurd_exec_paths F @@ -2203,6 +2204,7 @@ GLIBC_2.33 mknod F GLIBC_2.33 mknodat F GLIBC_2.33 stat F GLIBC_2.33 stat64 F +GLIBC_2.34 __isnanf128 F GLIBC_2.34 __libc_start_main F GLIBC_2.4 __confstr_chk F GLIBC_2.4 __fgets_chk F diff --git a/sysdeps/mach/hurd/i386/libm.abilist b/sysdeps/mach/hurd/i386/libm.abilist index a19a69ce6a..bb077b9030 100644 --- a/sysdeps/mach/hurd/i386/libm.abilist +++ b/sysdeps/mach/hurd/i386/libm.abilist @@ -474,7 +474,6 @@ GLIBC_2.26 __gammaf128_r_finite F GLIBC_2.26 __hypotf128_finite F GLIBC_2.26 __iseqsigf128 F GLIBC_2.26 __isinff128 F -GLIBC_2.26 __isnanf128 F GLIBC_2.26 __issignalingf128 F GLIBC_2.26 __j0f128_finite F GLIBC_2.26 __j1f128_finite F diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist index cdb6ec501a..cfd4e55e57 100644 --- a/sysdeps/unix/sysv/linux/i386/libc.abilist +++ b/sysdeps/unix/sysv/linux/i386/libc.abilist @@ -2011,6 +2011,7 @@ GLIBC_2.25 getrandom F GLIBC_2.25 strfromd F GLIBC_2.25 strfromf F GLIBC_2.25 strfroml F +GLIBC_2.26 __isnanf128 F GLIBC_2.26 __strtof128_internal F GLIBC_2.26 __wcstof128_internal F GLIBC_2.26 preadv2 F @@ -2250,6 +2251,7 @@ GLIBC_2.33 mknod F GLIBC_2.33 mknodat F GLIBC_2.33 stat F GLIBC_2.33 stat64 F +GLIBC_2.34 __isnanf128 F GLIBC_2.34 __libc_start_main F GLIBC_2.34 pthread_kill F GLIBC_2.4 __confstr_chk F diff --git a/sysdeps/unix/sysv/linux/i386/libm.abilist b/sysdeps/unix/sysv/linux/i386/libm.abilist index 0ab740dd97..335b5e7aa2 100644 --- a/sysdeps/unix/sysv/linux/i386/libm.abilist +++ b/sysdeps/unix/sysv/linux/i386/libm.abilist @@ -481,7 +481,6 @@ GLIBC_2.26 __gammaf128_r_finite F GLIBC_2.26 __hypotf128_finite F GLIBC_2.26 __iseqsigf128 F GLIBC_2.26 __isinff128 F -GLIBC_2.26 __isnanf128 F GLIBC_2.26 __issignalingf128 F GLIBC_2.26 __j0f128_finite F GLIBC_2.26 __j1f128_finite F diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist index d0424a8b1a..426e15f4f6 100644 --- a/sysdeps/unix/sysv/linux/ia64/libc.abilist +++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist @@ -1873,6 +1873,7 @@ GLIBC_2.25 getrandom F GLIBC_2.25 strfromd F GLIBC_2.25 strfromf F GLIBC_2.25 strfroml F +GLIBC_2.26 __isnanf128 F GLIBC_2.26 __strtof128_internal F GLIBC_2.26 __wcstof128_internal F GLIBC_2.26 preadv2 F @@ -2107,6 +2108,7 @@ GLIBC_2.33 mknod F GLIBC_2.33 mknodat F GLIBC_2.33 stat F GLIBC_2.33 stat64 F +GLIBC_2.34 __isnanf128 F GLIBC_2.34 __libc_start_main F GLIBC_2.34 pthread_kill F GLIBC_2.4 __confstr_chk F diff --git a/sysdeps/unix/sysv/linux/ia64/libm.abilist b/sysdeps/unix/sysv/linux/ia64/libm.abilist index c8e8fd7142..ec82b83e6f 100644 --- a/sysdeps/unix/sysv/linux/ia64/libm.abilist +++ b/sysdeps/unix/sysv/linux/ia64/libm.abilist @@ -411,7 +411,6 @@ GLIBC_2.26 __gammaf128_r_finite F GLIBC_2.26 __hypotf128_finite F GLIBC_2.26 __iseqsigf128 F GLIBC_2.26 __isinff128 F -GLIBC_2.26 __isnanf128 F GLIBC_2.26 __issignalingf128 F GLIBC_2.26 __j0f128_finite F GLIBC_2.26 __j1f128_finite F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/float128-abi.h b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/float128-abi.h index 6b954cc673..8e7616bc7e 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/float128-abi.h +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/float128-abi.h @@ -1,2 +1,3 @@ /* ABI version for _Float128 ABI introduction. */ #define FLOAT128_VERSION GLIBC_2.26 +#define FLOAT128_VERSION_M GLIBC_2_26 diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist index d99afb2f60..ec9ae25539 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist @@ -2184,6 +2184,7 @@ GLIBC_2.25 getrandom F GLIBC_2.25 strfromd F GLIBC_2.25 strfromf F GLIBC_2.25 strfroml F +GLIBC_2.26 __isnanf128 F GLIBC_2.26 __strtof128_internal F GLIBC_2.26 __wcstof128_internal F GLIBC_2.26 preadv2 F @@ -2367,5 +2368,6 @@ GLIBC_2.33 mknod F GLIBC_2.33 mknodat F GLIBC_2.33 stat F GLIBC_2.33 stat64 F +GLIBC_2.34 __isnanf128 F GLIBC_2.34 __libc_start_main F GLIBC_2.34 pthread_kill F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist index 4f8d3c1191..8266bc32f4 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist @@ -478,7 +478,6 @@ GLIBC_2.26 __gammaf128_r_finite F GLIBC_2.26 __hypotf128_finite F GLIBC_2.26 __iseqsigf128 F GLIBC_2.26 __isinff128 F -GLIBC_2.26 __isnanf128 F GLIBC_2.26 __issignalingf128 F GLIBC_2.26 __j0f128_finite F GLIBC_2.26 __j1f128_finite F diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist index dde107a249..da0974f11a 100644 --- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist @@ -1854,6 +1854,7 @@ GLIBC_2.25 getrandom F GLIBC_2.25 strfromd F GLIBC_2.25 strfromf F GLIBC_2.25 strfroml F +GLIBC_2.26 __isnanf128 F GLIBC_2.26 __strtof128_internal F GLIBC_2.26 __wcstof128_internal F GLIBC_2.26 preadv2 F @@ -2089,6 +2090,7 @@ GLIBC_2.33 mknod F GLIBC_2.33 mknodat F GLIBC_2.33 stat F GLIBC_2.33 stat64 F +GLIBC_2.34 __isnanf128 F GLIBC_2.34 __libc_start_main F GLIBC_2.34 pthread_kill F GLIBC_2.4 __confstr_chk F diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist index 89c4ac484d..b6a088ca64 100644 --- a/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist @@ -472,7 +472,6 @@ GLIBC_2.26 __gammaf128_r_finite F GLIBC_2.26 __hypotf128_finite F GLIBC_2.26 __iseqsigf128 F GLIBC_2.26 __isinff128 F -GLIBC_2.26 __isnanf128 F GLIBC_2.26 __issignalingf128 F GLIBC_2.26 __j0f128_finite F GLIBC_2.26 __j1f128_finite F diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist index dcea87ca22..d3d155e7c0 100644 --- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist @@ -2107,6 +2107,7 @@ GLIBC_2.25 getrandom F GLIBC_2.25 strfromd F GLIBC_2.25 strfromf F GLIBC_2.25 strfroml F +GLIBC_2.26 __isnanf128 F GLIBC_2.26 __strtof128_internal F GLIBC_2.26 __wcstof128_internal F GLIBC_2.26 preadv2 F @@ -2186,5 +2187,6 @@ GLIBC_2.33 mknod F GLIBC_2.33 mknodat F GLIBC_2.33 stat F GLIBC_2.33 stat64 F +GLIBC_2.34 __isnanf128 F GLIBC_2.34 __libc_start_main F GLIBC_2.34 pthread_kill F diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist index d3c9cec71a..dfb5a7fa79 100644 --- a/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist @@ -472,7 +472,6 @@ GLIBC_2.26 __gammaf128_r_finite F GLIBC_2.26 __hypotf128_finite F GLIBC_2.26 __iseqsigf128 F GLIBC_2.26 __isinff128 F -GLIBC_2.26 __isnanf128 F GLIBC_2.26 __issignalingf128 F GLIBC_2.26 __j0f128_finite F GLIBC_2.26 __j1f128_finite F diff --git a/sysdeps/x86/float128-abi.h b/sysdeps/x86/float128-abi.h index 6b954cc673..8e7616bc7e 100644 --- a/sysdeps/x86/float128-abi.h +++ b/sysdeps/x86/float128-abi.h @@ -1,2 +1,3 @@ /* ABI version for _Float128 ABI introduction. */ #define FLOAT128_VERSION GLIBC_2.26 +#define FLOAT128_VERSION_M GLIBC_2_26 -- 2.29.2 ^ permalink raw reply [flat|nested] 15+ messages in thread
* [PATCH 2/2] Avoid adding duplicated symbols into static libraries 2021-02-11 10:19 [PATCH 0/2] math symbols cleanup Siddhesh Poyarekar 2021-02-11 10:19 ` [PATCH 1/2] Move __isnanf128 to libc.so Siddhesh Poyarekar @ 2021-02-11 10:19 ` Siddhesh Poyarekar 2021-03-30 19:47 ` Adhemerval Zanella 2021-03-02 6:09 ` [PING][PATCH 0/2] math symbols cleanup Siddhesh Poyarekar 2021-03-22 4:36 ` Siddhesh Poyarekar 3 siblings, 1 reply; 15+ messages in thread From: Siddhesh Poyarekar @ 2021-02-11 10:19 UTC (permalink / raw) To: libc-alpha; +Cc: fweimer, carlos Some math functions (such as __isnan*) are built into both libm and libc because they are needed in libc. The symbol gets exported from libc.so and not libm.so, because of which dynamic linking works fine; the symbols are always resolved from libc.so and libm.so uses its internal copy of the same function if needed. When linking statically though, the libm variants get used throughout because the symbols are exported in both archives and libm.a is searched first. This patch removes these duplicate objects from the libm.a archive so that programs always link to libc in both, the static and dynamic case. The difference this will cause is that libm uses of these functions will start using the libc versions in the !SHARED case. This is harmless at the moment because the objects are identical except for their names. Some of these duplicates could be removed from libm.so too, but I avoided that in the interest of retaining an internal reference if at all those functions get used within libm in future. --- math/Makefile | 3 +++ 1 file changed, 3 insertions(+) diff --git a/math/Makefile b/math/Makefile index 687aa5d510..c4cc1b2068 100644 --- a/math/Makefile +++ b/math/Makefile @@ -196,6 +196,9 @@ calls = s_isinfF s_isnanF s_finiteF s_copysignF s_modfF s_scalbnF s_frexpF \ gen-calls = s_ldexpF generated += $(foreach s,.c .S,$(call type-foreach, $(calls:s_%=m_%$(s)))) routines = $(call type-foreach, $(calls)) +# The $(calls) that are shared between libm and libc are not included in static +# libm so the symbols end up in exactly one place. +libm-shared-only-routines = $(call type-foreach, $(calls:s_%=m_%)) ifeq ($(build-mathvec),yes) # We need to install libm.so and libm.a as linker scripts -- 2.29.2 ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH 2/2] Avoid adding duplicated symbols into static libraries 2021-02-11 10:19 ` [PATCH 2/2] Avoid adding duplicated symbols into static libraries Siddhesh Poyarekar @ 2021-03-30 19:47 ` Adhemerval Zanella 2021-03-31 2:57 ` Siddhesh Poyarekar 0 siblings, 1 reply; 15+ messages in thread From: Adhemerval Zanella @ 2021-03-30 19:47 UTC (permalink / raw) To: libc-alpha, Siddhesh Poyarekar On 11/02/2021 07:19, Siddhesh Poyarekar via Libc-alpha wrote: > Some math functions (such as __isnan*) are built into both libm and > libc because they are needed in libc. The symbol gets exported from > libc.so and not libm.so, because of which dynamic linking works fine; > the symbols are always resolved from libc.so and libm.so uses its > internal copy of the same function if needed. > > When linking statically though, the libm variants get used throughout > because the symbols are exported in both archives and libm.a is > searched first. > > This patch removes these duplicate objects from the libm.a archive so > that programs always link to libc in both, the static and dynamic > case. The difference this will cause is that libm uses of these > functions will start using the libc versions in the !SHARED case. > This is harmless at the moment because the objects are identical > except for their names. > > Some of these duplicates could be removed from libm.so too, but I > avoided that in the interest of retaining an internal reference if at > all those functions get used within libm in future. > --- > math/Makefile | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/math/Makefile b/math/Makefile > index 687aa5d510..c4cc1b2068 100644 > --- a/math/Makefile > +++ b/math/Makefile > @@ -196,6 +196,9 @@ calls = s_isinfF s_isnanF s_finiteF s_copysignF s_modfF s_scalbnF s_frexpF \ > gen-calls = s_ldexpF > generated += $(foreach s,.c .S,$(call type-foreach, $(calls:s_%=m_%$(s)))) > routines = $(call type-foreach, $(calls)) > +# The $(calls) that are shared between libm and libc are not included in static > +# libm so the symbols end up in exactly one place. > +libm-shared-only-routines = $(call type-foreach, $(calls:s_%=m_%)) > > ifeq ($(build-mathvec),yes) > # We need to install libm.so and libm.a as linker scripts > This broke powerpc64le static math tests: powerpc64le-linux-gnu]$ make math/tests [...] /home/azanella/toolchain/install/compilers/powerpc64le-linux-gnu/bin/powerpc64le-glibc-linux-gnu-gcc -nostdlib -nostartfiles -static -o /home/azanella/glibc/build/powerpc64le-linux-gnu/math/test-signgam-uchar-static /home/azanella/glibc/build/powerpc64le-linux-gnu/csu/crt1.o /home/azanella/glibc/build/powerpc64le-linux-gnu/csu/crti.o `/home/azanella/toolchain/install/compilers/powerpc64le-linux-gnu/bin/powerpc64le-glibc-linux-gnu-gcc --print-file-name=crtbeginT.o` /home/azanella/glibc/build/powerpc64le-linux-gnu/math/test-signgam-uchar-static.o /home/azanella/glibc/build/powerpc64le-linux-gnu/support/libsupport_nonshared.a /home/azanella/glibc/build/powerpc64le-linux-gnu/math/libm.a -Wl,--start-group /home/azanella/glibc/build/powerpc64le-linux-gnu/libc.a -lgcc -lgcc_eh -Wl,--end-group `/home/azanella/toolchain/install/compilers/powerpc64le-linux-gnu/bin/powerpc64le-glibc-linux-gnu-gcc --print-file-name=crtend.o` /home/azanella/glibc/build/powerpc64le-linux-gnu/csu/crtn.o /home/azanella/toolchain/install/compilers/powerpc64le-linux-gnu/lib/gcc/powerpc64le-glibc-linux-gnu/10.2.1/../../../../powerpc64le-glibc-linux-gnu/bin/ld: /home/azanella/glibc/build/powerpc64le-linux-gnu/math/libm.a(e_logf128.o): in function `__ieee754_logf128_power8': /home/azanella/glibc/glibc-git/math/../sysdeps/ieee754/float128/../ldbl-128/e_logl.c:217: undefined reference to `__frexpf128_power8' /home/azanella/toolchain/install/compilers/powerpc64le-linux-gnu/lib/gcc/powerpc64le-glibc-linux-gnu/10.2.1/../../../../powerpc64le-glibc-linux-gnu/bin/ld: /home/azanella/glibc/build/powerpc64le-linux-gnu/math/libm.a(s_log1pf128.o): in function `__log1pf128_power8': /home/azanella/glibc/glibc-git/math/../sysdeps/ieee754/float128/../ldbl-128/s_log1pl.c:166: undefined reference to `__frexpf128_power8' collect2: error: ld returned 1 exit status make[2]: *** [../Rules:264: /home/azanella/glibc/build/powerpc64le-linux-gnu/math/test-signgam-uchar-static] Error 1 ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH 2/2] Avoid adding duplicated symbols into static libraries 2021-03-30 19:47 ` Adhemerval Zanella @ 2021-03-31 2:57 ` Siddhesh Poyarekar 2021-03-31 13:54 ` Tulio Magno Quites Machado Filho 0 siblings, 1 reply; 15+ messages in thread From: Siddhesh Poyarekar @ 2021-03-31 2:57 UTC (permalink / raw) To: Adhemerval Zanella, libc-alpha On 3/31/21 1:17 AM, Adhemerval Zanella wrote: > This broke powerpc64le static math tests: > > powerpc64le-linux-gnu]$ make math/tests > [...] > /home/azanella/toolchain/install/compilers/powerpc64le-linux-gnu/bin/powerpc64le-glibc-linux-gnu-gcc -nostdlib -nostartfiles -static -o /home/azanella/glibc/build/powerpc64le-linux-gnu/math/test-signgam-uchar-static /home/azanella/glibc/build/powerpc64le-linux-gnu/csu/crt1.o /home/azanella/glibc/build/powerpc64le-linux-gnu/csu/crti.o `/home/azanella/toolchain/install/compilers/powerpc64le-linux-gnu/bin/powerpc64le-glibc-linux-gnu-gcc --print-file-name=crtbeginT.o` /home/azanella/glibc/build/powerpc64le-linux-gnu/math/test-signgam-uchar-static.o /home/azanella/glibc/build/powerpc64le-linux-gnu/support/libsupport_nonshared.a /home/azanella/glibc/build/powerpc64le-linux-gnu/math/libm.a -Wl,--start-group /home/azanella/glibc/build/powerpc64le-linux-gnu/libc.a -lgcc -lgcc_eh -Wl,--end-group `/home/azanella/toolchain/install/compilers/powerpc64le-linux-gnu/bin/powerpc64le-glibc-linux-gnu-gcc --print-file-name=crtend.o` /home/azanella/glibc/build/powerpc64le-linux-gnu/csu/crtn.o > /home/azanella/toolchain/install/compilers/powerpc64le-linux-gnu/lib/gcc/powerpc64le-glibc-linux-gnu/10.2.1/../../../../powerpc64le-glibc-linux-gnu/bin/ld: /home/azanella/glibc/build/powerpc64le-linux-gnu/math/libm.a(e_logf128.o): in function `__ieee754_logf128_power8': > /home/azanella/glibc/glibc-git/math/../sysdeps/ieee754/float128/../ldbl-128/e_logl.c:217: undefined reference to `__frexpf128_power8' > /home/azanella/toolchain/install/compilers/powerpc64le-linux-gnu/lib/gcc/powerpc64le-glibc-linux-gnu/10.2.1/../../../../powerpc64le-glibc-linux-gnu/bin/ld: /home/azanella/glibc/build/powerpc64le-linux-gnu/math/libm.a(s_log1pf128.o): in function `__log1pf128_power8': > /home/azanella/glibc/glibc-git/math/../sysdeps/ieee754/float128/../ldbl-128/s_log1pl.c:166: undefined reference to `__frexpf128_power8' > collect2: error: ld returned 1 exit status > make[2]: *** [../Rules:264: /home/azanella/glibc/build/powerpc64le-linux-gnu/math/test-signgam-uchar-static] Error 1 Sorry about that. I'll revert the patch if I'm unable to post a fix by the end of the day. Siddhesh ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH 2/2] Avoid adding duplicated symbols into static libraries 2021-03-31 2:57 ` Siddhesh Poyarekar @ 2021-03-31 13:54 ` Tulio Magno Quites Machado Filho 2021-03-31 14:05 ` Siddhesh Poyarekar 0 siblings, 1 reply; 15+ messages in thread From: Tulio Magno Quites Machado Filho @ 2021-03-31 13:54 UTC (permalink / raw) To: Siddhesh Poyarekar, Adhemerval Zanella, libc-alpha Siddhesh Poyarekar via Libc-alpha <libc-alpha@sourceware.org> writes: > On 3/31/21 1:17 AM, Adhemerval Zanella wrote: >> This broke powerpc64le static math tests: >> >> powerpc64le-linux-gnu]$ make math/tests >> [...] >> /home/azanella/toolchain/install/compilers/powerpc64le-linux-gnu/bin/powerpc64le-glibc-linux-gnu-gcc -nostdlib -nostartfiles -static -o /home/azanella/glibc/build/powerpc64le-linux-gnu/math/test-signgam-uchar-static /home/azanella/glibc/build/powerpc64le-linux-gnu/csu/crt1.o /home/azanella/glibc/build/powerpc64le-linux-gnu/csu/crti.o `/home/azanella/toolchain/install/compilers/powerpc64le-linux-gnu/bin/powerpc64le-glibc-linux-gnu-gcc --print-file-name=crtbeginT.o` /home/azanella/glibc/build/powerpc64le-linux-gnu/math/test-signgam-uchar-static.o /home/azanella/glibc/build/powerpc64le-linux-gnu/support/libsupport_nonshared.a /home/azanella/glibc/build/powerpc64le-linux-gnu/math/libm.a -Wl,--start-group /home/azanella/glibc/build/powerpc64le-linux-gnu/libc.a -lgcc -lgcc_eh -Wl,--end-group `/home/azanella/toolchain/install/compilers/powerpc64le-linux-gnu/bin/powerpc64le-glibc-linux-gnu-gcc --print-file-name=crtend.o` /home/azanella/glibc/build/powerpc64le-linux-gnu/csu/crtn.o >> /home/azanella/toolchain/install/compilers/powerpc64le-linux-gnu/lib/gcc/powerpc64le-glibc-linux-gnu/10.2.1/../../../../powerpc64le-glibc-linux-gnu/bin/ld: /home/azanella/glibc/build/powerpc64le-linux-gnu/math/libm.a(e_logf128.o): in function `__ieee754_logf128_power8': >> /home/azanella/glibc/glibc-git/math/../sysdeps/ieee754/float128/../ldbl-128/e_logl.c:217: undefined reference to `__frexpf128_power8' >> /home/azanella/toolchain/install/compilers/powerpc64le-linux-gnu/lib/gcc/powerpc64le-glibc-linux-gnu/10.2.1/../../../../powerpc64le-glibc-linux-gnu/bin/ld: /home/azanella/glibc/build/powerpc64le-linux-gnu/math/libm.a(s_log1pf128.o): in function `__log1pf128_power8': >> /home/azanella/glibc/glibc-git/math/../sysdeps/ieee754/float128/../ldbl-128/s_log1pl.c:166: undefined reference to `__frexpf128_power8' >> collect2: error: ld returned 1 exit status >> make[2]: *** [../Rules:264: /home/azanella/glibc/build/powerpc64le-linux-gnu/math/test-signgam-uchar-static] Error 1 > > Sorry about that. I'll revert the patch if I'm unable to post a fix by > the end of the day. I don't think we need to hurry and revert this. I'm also looking at this. It has to do with multiarch builds. I'm sorry for not taking a look at patch 2/2. :-( -- Tulio Magno ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH 2/2] Avoid adding duplicated symbols into static libraries 2021-03-31 13:54 ` Tulio Magno Quites Machado Filho @ 2021-03-31 14:05 ` Siddhesh Poyarekar 0 siblings, 0 replies; 15+ messages in thread From: Siddhesh Poyarekar @ 2021-03-31 14:05 UTC (permalink / raw) To: Tulio Magno Quites Machado Filho, Adhemerval Zanella, libc-alpha On 3/31/21 7:24 PM, Tulio Magno Quites Machado Filho via Libc-alpha wrote: > I don't think we need to hurry and revert this. > I'm also looking at this. It has to do with multiarch builds. > > I'm sorry for not taking a look at patch 2/2. :-( Sorry I rushed to push this :) I posted a fix to patch this up but I think Andreas may have a more complete fix. Could you please review that one? https://sourceware.org/pipermail/libc-alpha/2021-March/124602.html Thanks, Siddhesh ^ permalink raw reply [flat|nested] 15+ messages in thread
* [PING][PATCH 0/2] math symbols cleanup 2021-02-11 10:19 [PATCH 0/2] math symbols cleanup Siddhesh Poyarekar 2021-02-11 10:19 ` [PATCH 1/2] Move __isnanf128 to libc.so Siddhesh Poyarekar 2021-02-11 10:19 ` [PATCH 2/2] Avoid adding duplicated symbols into static libraries Siddhesh Poyarekar @ 2021-03-02 6:09 ` Siddhesh Poyarekar 2021-03-22 4:36 ` Siddhesh Poyarekar 3 siblings, 0 replies; 15+ messages in thread From: Siddhesh Poyarekar @ 2021-03-02 6:09 UTC (permalink / raw) To: Siddhesh Poyarekar, libc-alpha; +Cc: fweimer Ping! On 2/11/21 3:49 PM, Siddhesh Poyarekar via Libc-alpha wrote: > This patchset cleans up state of functions shared between libc and libm > so that they're consistent and avoid duplication where possible. > > Siddhesh Poyarekar (2): > Move __isnanf128 to libc.so > Avoid adding duplicated symbols into static libraries > > math/Makefile | 3 +++ > sysdeps/ieee754/float128/Versions | 2 +- > sysdeps/mach/hurd/i386/libc.abilist | 1 + > sysdeps/mach/hurd/i386/libm.abilist | 1 - > sysdeps/unix/sysv/linux/i386/libc.abilist | 1 + > sysdeps/unix/sysv/linux/i386/libm.abilist | 1 - > sysdeps/unix/sysv/linux/ia64/libc.abilist | 1 + > sysdeps/unix/sysv/linux/ia64/libm.abilist | 1 - > sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist | 1 + > sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist | 1 - > sysdeps/unix/sysv/linux/x86_64/64/libc.abilist | 1 + > sysdeps/unix/sysv/linux/x86_64/64/libm.abilist | 1 - > sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist | 1 + > sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist | 1 - > 14 files changed, 10 insertions(+), 7 deletions(-) > ^ permalink raw reply [flat|nested] 15+ messages in thread
* [PING][PATCH 0/2] math symbols cleanup 2021-02-11 10:19 [PATCH 0/2] math symbols cleanup Siddhesh Poyarekar ` (2 preceding siblings ...) 2021-03-02 6:09 ` [PING][PATCH 0/2] math symbols cleanup Siddhesh Poyarekar @ 2021-03-22 4:36 ` Siddhesh Poyarekar 3 siblings, 0 replies; 15+ messages in thread From: Siddhesh Poyarekar @ 2021-03-22 4:36 UTC (permalink / raw) To: libc-alpha Ping! Paul has tested [2/2] and Florian has reviewed the abilist files. Can someone please review the macro soup and ack the series? Thanks, Siddhesh On 2/11/21 3:49 PM, Siddhesh Poyarekar via Libc-alpha wrote: > This patchset cleans up state of functions shared between libc and libm > so that they're consistent and avoid duplication where possible. > > Siddhesh Poyarekar (2): > Move __isnanf128 to libc.so > Avoid adding duplicated symbols into static libraries > > math/Makefile | 3 +++ > sysdeps/ieee754/float128/Versions | 2 +- > sysdeps/mach/hurd/i386/libc.abilist | 1 + > sysdeps/mach/hurd/i386/libm.abilist | 1 - > sysdeps/unix/sysv/linux/i386/libc.abilist | 1 + > sysdeps/unix/sysv/linux/i386/libm.abilist | 1 - > sysdeps/unix/sysv/linux/ia64/libc.abilist | 1 + > sysdeps/unix/sysv/linux/ia64/libm.abilist | 1 - > sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist | 1 + > sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist | 1 - > sysdeps/unix/sysv/linux/x86_64/64/libc.abilist | 1 + > sysdeps/unix/sysv/linux/x86_64/64/libm.abilist | 1 - > sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist | 1 + > sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist | 1 - > 14 files changed, 10 insertions(+), 7 deletions(-) > ^ permalink raw reply [flat|nested] 15+ messages in thread
end of thread, other threads:[~2021-03-31 14:05 UTC | newest] Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2021-02-11 10:19 [PATCH 0/2] math symbols cleanup Siddhesh Poyarekar 2021-02-11 10:19 ` [PATCH 1/2] Move __isnanf128 to libc.so Siddhesh Poyarekar 2021-02-11 10:27 ` Florian Weimer 2021-02-11 14:14 ` [PATCH v2 " Siddhesh Poyarekar 2021-02-11 16:03 ` Florian Weimer 2021-03-29 13:57 ` Siddhesh Poyarekar 2021-03-29 22:02 ` Tulio Magno Quites Machado Filho 2021-03-30 9:31 ` [COMMITTED] " Siddhesh Poyarekar 2021-02-11 10:19 ` [PATCH 2/2] Avoid adding duplicated symbols into static libraries Siddhesh Poyarekar 2021-03-30 19:47 ` Adhemerval Zanella 2021-03-31 2:57 ` Siddhesh Poyarekar 2021-03-31 13:54 ` Tulio Magno Quites Machado Filho 2021-03-31 14:05 ` Siddhesh Poyarekar 2021-03-02 6:09 ` [PING][PATCH 0/2] math symbols cleanup Siddhesh Poyarekar 2021-03-22 4:36 ` Siddhesh Poyarekar
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).