On Mar 14 13:48, Christian Franke via Cygwin wrote: > Corinna Vinschen via Cygwin wrote: > > On Mar 13 08:59, Christian Franke via Cygwin wrote: > > > Problem introduced in a8891c93: > > > > > > $ cygcheck -f /usr/include/stdlib.h > > > cygwin-devel-3.6.0-0.430.ga942476236b5 > > > > > > $ cygcheck -f /usr/include/bsd/stdlib.h > > > libbsd-devel-0.12.2-2 > > > > > > $ gcc -c -xc - <<<'#include <bsd/stdlib.h>' > > > In file included from <stdin>:1: > > > /usr/include/bsd/stdlib.h:62:26: error: macro "arc4random_stir" passed 1 > > > arguments, but takes just 0 > > > 62 | void arc4random_stir(void); > > > | ^ > > > In file included from /usr/include/stdlib.h:26, > > > from /usr/include/bsd/stdlib.h:32: > > > /usr/include/cygwin/stdlib.h:26: note: macro "arc4random_stir" defined > > > here > > > 26 | #define arc4random_stir() > > Should work again with cygwin-3.6.0-0.431.gad29c33229e5 > > > > This fixes the problem, thanks. > > There are possibly still inconsistencies: > > $ gcc -E -xc - <<<'#include <stdlib.h>' | grep arc4random_stir > void arc4random_stir(void); > > $ gcc -E -xc - <<<'#include <bsd/stdlib.h>' | grep arc4random_stir > void arc4random_stir(void); // from cygwin/stdlib.h > void arc4random_stir(void); // from bsd/stdlib.h
Yes, that's ok. We could drop the declarations in bsd/stdlib.h, but they are equivalent, so they don't hurt. > $ gcc -E -xc - <<<'#include <stdlib.h>' | grep arc4random_addrandom > > $ gcc -E -xc - <<<'#include <bsd/stdlib.h>' | grep arc4random_addrandom > void arc4random_addrandom(unsigned char *dat, int datlen); Yes, that's deliberate. arc4random_addrandom() shouldn't be used. Well, arc4random_stir() shouldn't be used either, but there's the autoconf problem with OpenSSH. > $ gcc -E -xc - <<<'#include <bsd/stdlib.h>' | grep arc4random_buf > void arc4random_buf (void *, size_t); // from stdlib.h > void arc4random_buf(void *_buf, size_t n); // from bsd/stdlib.h Equivalent, no worries. > $ nm /usr/lib/libcygwin.a | grep ' arc4random' > 0000000000000000 T arc4random > 0000000000000000 T arc4random_addrandom > 0000000000000000 T arc4random_buf > 0000000000000000 T arc4random_stir > 0000000000000000 T arc4random_uniform > > $ 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) > - all arc4random*() should be hidden for __CYGWIN__ in bsd/stdlib.h. This, we can do. Let me check. Corinna -- 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