Corinna Vinschen via Cygwin wrote:
On Mar 14 17:12, Corinna Vinschen via Cygwin wrote:
On Mar 14 16:50, Corinna Vinschen via Cygwin wrote:
On Mar 14 13:48, Christian Franke via Cygwin wrote:
$ nm /usr/lib/libbsd.dll.a | grep ' arc4random' || echo not found
not found
I guess:
- arc4random_addrandom() should be removed from libcygwin.a or added to
cygwin/stdlib.h.
No, we can't do that (OpenSSH)
Ooooh, you mean arc4random_addrandom. My excuse for a brain was still
thinking of arc4random_stir *facepalm*
Hmm...
- all arc4random*() should be hidden for __CYGWIN__ in bsd/stdlib.h.
This, we can do. Let me check.
Check out cygwin-3.6.0-0.440.g5ec497dc80bc in conjunction with
libbsd-0.12.2-4, both building right now.
Looks good ...
$ nm /usr/lib/libcygwin.a | grep ' arc4random'
0000000000000000 T arc4random
0000000000000000 T arc4random_buf
0000000000000000 T arc4random_uniform
$ gcc -E -xc - <<<'#include <stdlib.h>' | grep arc4random
__uint32_t arc4random (void);
__uint32_t arc4random_uniform (__uint32_t);
void arc4random_buf (void *, size_t);
$ nm /usr/lib/libbsd.dll.a | grep ' arc4random' || echo not found
not found
... except that bsd/stdlib.h still advertises the functions which could
no longer be linked:
$ gcc -E -xc - <<<'#include <bsd/stdlib.h>' | grep arc4random
__uint32_t arc4random (void);
__uint32_t arc4random_uniform (__uint32_t);
void arc4random_buf (void *, size_t);
void arc4random_stir(void);
void arc4random_addrandom(unsigned char *dat, int datlen);
Mostly cosmetic as this would not result in false positive
AC_CHECK_FUNC*() results.
I would suggest to revert the recent bsd/stdlib.h change and move the
__CYGWIN__ check to the top level #if instead, see attached patch.
--
Thanks,
Christian
--- bsd/stdlib.h-0.12.2-4 2025-03-14 20:18:36.000000000 +0100
+++ bsd/stdlib.h 2025-03-15 12:35:53.465262000 +0100
@@ -51,12 +51,10 @@
#include <stdint.h>
__BEGIN_DECLS
-#if !defined(__APPLE__) && !defined(__sun)
-#if (!defined(__GLIBC__) || \
+#if !defined(__APPLE__) && !defined(__CYGWIN__) && !defined(__sun)
+#if !defined(__GLIBC__) || \
!__GLIBC_PREREQ(2, 36) || \
- !defined(_DEFAULT_SOURCE)) && \
- (!defined(__CYGWIN__) || \
- !__BSD_VISIBLE)
+ !defined(_DEFAULT_SOURCE)
uint32_t arc4random(void);
void arc4random_buf(void *_buf, size_t n);
uint32_t arc4random_uniform(uint32_t upper_bound);
--
Problem reports: https://cygwin.com/problems.html
FAQ: https://cygwin.com/faq/
Documentation: https://cygwin.com/docs.html
Unsubscribe info: https://cygwin.com/ml/#unsubscribe-simple