diff options
author | Alan Coopersmith <alan.coopersmith@oracle.com> | 2022-02-23 13:09:09 -0800 |
---|---|---|
committer | Alan Coopersmith <alan.coopersmith@oracle.com> | 2022-02-23 13:16:32 -0800 |
commit | 4a71fdf6d34df67d3f1335590da6ae3050128fb2 (patch) | |
tree | dd611dc996ba1650b5eb416d14ac8ff451d8cbe8 | |
parent | 13b72ec5540757ccbb62c4b31961a556ab77d005 (diff) |
Fix build on Solaris 11.3.0 - 11.3.8
Solaris 11.3.0 added getentropy() to libc and <sys/random.h>
Solaris 11.3.9 added arc4random() to libc and <stdlib.h>
Solaris 11.4.16 added getentropy() to <stdlib.h>
So when building on Solaris releases from 11.3.0 to 11.3.8, libXdmcp
would not find arc4random(), and thus fallback to using getentropy(),
but was only looking for it in <stdlib.h>, resulting in a build error:
Key.c: In function ‘arc4random_buf’:
Key.c:86:5: error: implicit declaration of function ‘getentropy’ [-Werror=implicit-function-declaration]
ret = getentropy (auth, len);
^
Reported-by: https://gnats.netbsd.org/cgi-bin/query-pr-single.pl?number=54628
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
-rw-r--r-- | Key.c | 5 | ||||
-rw-r--r-- | configure.ac | 3 |
2 files changed, 8 insertions, 0 deletions
@@ -64,6 +64,11 @@ getbits (long data, unsigned char *dst) #ifndef HAVE_ARC4RANDOM_BUF +/* Solaris 11.3.0 - 11.4.15 only define getentropy() in <sys/random.h> */ +#if HAVE_GETENTROPY && HAVE_SYS_RANDOM_H +# include <sys/random.h> +#endif + static void insecure_getrandom_buf (unsigned char *auth, int len) { diff --git a/configure.ac b/configure.ac index 1c6292b..f79fb95 100644 --- a/configure.ac +++ b/configure.ac @@ -52,6 +52,9 @@ XORG_CHECK_SGML_DOCTOOLS(1.8) # Checks for programs. AC_PROG_LN_S +# Checks for header files. +AC_CHECK_HEADERS([sys/random.h]) + # Checks for libraries. AC_SEARCH_LIBS([recvfrom],[socket]) |