diff options
-rw-r--r-- | NEWS | 2 | ||||
-rw-r--r-- | stdlib/arc4random.c | 2 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-64-128/s_copysignl.c | 4 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-64-128/s_frexpl.c | 4 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-64-128/s_modfl.c | 4 |
5 files changed, 9 insertions, 7 deletions
diff --git a/NEWS b/NEWS index 2a40238d0a..4eadd9e51d 100644 --- a/NEWS +++ b/NEWS @@ -50,6 +50,8 @@ The following bugs are resolved with this release: saved registers [31429] build: Glibc failed to build with -march=x86-64-v3 [31501] dynamic-link: _dl_tlsdesc_dynamic_xsavec may clobber %rbx + [31612] libc: arc4random fails to fallback to /dev/urandom if + getrandom is not present [31640] dynamic-link: POWER10 ld.so crashes in elf_machine_load_address with GCC 14 [31676] Configuring with CC="gcc -march=x86-64-v3" diff --git a/stdlib/arc4random.c b/stdlib/arc4random.c index 3ae8fc1302..7818cb9cf6 100644 --- a/stdlib/arc4random.c +++ b/stdlib/arc4random.c @@ -51,7 +51,7 @@ __arc4random_buf (void *p, size_t n) n -= l; continue; /* Interrupted by a signal; keep going. */ } - else if (l == -ENOSYS) + else if (l < 0 && errno == ENOSYS) break; /* No syscall, so fallback to /dev/urandom. */ arc4random_getrandom_failure (); } diff --git a/sysdeps/ieee754/ldbl-64-128/s_copysignl.c b/sysdeps/ieee754/ldbl-64-128/s_copysignl.c index 11b42d04ba..80137847d3 100644 --- a/sysdeps/ieee754/ldbl-64-128/s_copysignl.c +++ b/sysdeps/ieee754/ldbl-64-128/s_copysignl.c @@ -1,10 +1,10 @@ #include <math_ldbl_opt.h> #include <libm-alias-ldouble.h> -#if IS_IN (libc) +#if IS_IN (libc) && defined SHARED # undef libm_alias_ldouble # define libm_alias_ldouble(from, to) #endif #include <sysdeps/ieee754/ldbl-128/s_copysignl.c> -#if IS_IN (libc) +#if IS_IN (libc) && defined SHARED long_double_symbol (libc, __copysignl, copysignl); #endif diff --git a/sysdeps/ieee754/ldbl-64-128/s_frexpl.c b/sysdeps/ieee754/ldbl-64-128/s_frexpl.c index 73ac41e40c..f5f7d349f7 100644 --- a/sysdeps/ieee754/ldbl-64-128/s_frexpl.c +++ b/sysdeps/ieee754/ldbl-64-128/s_frexpl.c @@ -1,10 +1,10 @@ #include <math_ldbl_opt.h> #include <libm-alias-ldouble.h> -#if IS_IN (libc) +#if IS_IN (libc) && defined SHARED # undef libm_alias_ldouble # define libm_alias_ldouble(from, to) #endif #include <sysdeps/ieee754/ldbl-128/s_frexpl.c> -#if IS_IN (libc) +#if IS_IN (libc) && defined SHARED long_double_symbol (libc, __frexpl, frexpl); #endif diff --git a/sysdeps/ieee754/ldbl-64-128/s_modfl.c b/sysdeps/ieee754/ldbl-64-128/s_modfl.c index 7d7aeae111..ba3d31334a 100644 --- a/sysdeps/ieee754/ldbl-64-128/s_modfl.c +++ b/sysdeps/ieee754/ldbl-64-128/s_modfl.c @@ -1,10 +1,10 @@ #include <math_ldbl_opt.h> #include <libm-alias-ldouble.h> -#if IS_IN (libc) +#if IS_IN (libc) && defined SHARED # undef libm_alias_ldouble # define libm_alias_ldouble(from, to) #endif #include <sysdeps/ieee754/ldbl-128/s_modfl.c> -#if IS_IN (libc) +#if IS_IN (libc) && defined SHARED long_double_symbol (libc, __modfl, modfl); #endif |