[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: getrandom.c doesn't compile on x86_64-pc-linux-uclibc
From: |
Bruno Haible |
Subject: |
Re: getrandom.c doesn't compile on x86_64-pc-linux-uclibc |
Date: |
Thu, 13 Aug 2020 17:50:41 +0200 |
User-agent: |
KMail/5.1.3 (Linux/4.4.0-186-generic; KDE/5.18.0; x86_64; ; ) |
Hi,
Stefan Kangas wrote:
> Please see the below bug report regarding Gnulib compatibility with
> x86_64-pc-linux-uclibc.
When a system - in this case, uClibc - provides a header file that cannot
be included on its own, it's a bug in that system.
Gnulib can only provide a workaround.
2020-08-13 Bruno Haible <bruno@clisp.org>
sys_random: Work around an uClibc bug.
Reported by akater <nuclearspace@gmail.com>
via Stefan Kangas <stefan@marxist.se>
in <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=42236>.
* lib/sys_random.in.h: On uClibc, include <stddef.h> first.
* m4/sys_random_h.m4 (gl_HEADER_SYS_RANDOM): Update comment.
* m4/getrandom.m4 (gl_FUNC_GETRANDOM): Likewise.
* doc/glibc-headers/sys_random.texi: Mention the uClibc bug.
diff --git a/doc/glibc-headers/sys_random.texi
b/doc/glibc-headers/sys_random.texi
index f533a7a..df5d684 100644
--- a/doc/glibc-headers/sys_random.texi
+++ b/doc/glibc-headers/sys_random.texi
@@ -25,7 +25,7 @@ This header file is missing on some platforms:
glibc 2.24, NetBSD 9.0, OpenBSD 3.8, Minix 3.1.8, AIX 7.1, HP-UX 11.11, IRIX
6.5, Cygwin 2.6.x, mingw, MSVC 14.
@item
This header file is not self-contained on some platforms:
-Mac OS X 10.13.
+uClibc, Mac OS X 10.13.
@end itemize
Portability problems not fixed by Gnulib:
diff --git a/lib/sys_random.in.h b/lib/sys_random.in.h
index 290fa39..a8469cf 100644
--- a/lib/sys_random.in.h
+++ b/lib/sys_random.in.h
@@ -23,6 +23,10 @@
#if @HAVE_SYS_RANDOM_H@
+/* On uClibc, <sys/random.h> assumes prior inclusion of <stddef.h>. */
+# if defined __UCLIBC__
+# include <stddef.h>
+# endif
/* On Mac OS X 10.5, <sys/random.h> assumes prior inclusion of <sys/types.h>.
On Max OS X 10.13, <sys/random.h> assumes prior inclusion of a file that
includes <Availability.h>, such as <stdlib.h> or <unistd.h>. */
diff --git a/m4/getrandom.m4 b/m4/getrandom.m4
index 424c2fa..d6da71a 100644
--- a/m4/getrandom.m4
+++ b/m4/getrandom.m4
@@ -1,4 +1,4 @@
-# getrandom.m4 serial 7
+# getrandom.m4 serial 8
dnl Copyright 2020 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
@@ -18,7 +18,8 @@ AC_DEFUN([gl_FUNC_GETRANDOM],
[gl_cv_func_getrandom_ok],
[AC_COMPILE_IFELSE(
[AC_LANG_PROGRAM(
- [[/* Additional includes are needed before <sys/random.h> on Mac
OS X. */
+ [[/* Additional includes are needed before <sys/random.h> on uClibc
+ and Mac OS X. */
#include <sys/types.h>
#include <stdlib.h>
#include <sys/random.h>
diff --git a/m4/sys_random_h.m4 b/m4/sys_random_h.m4
index a964b15..8c5d537 100644
--- a/m4/sys_random_h.m4
+++ b/m4/sys_random_h.m4
@@ -1,4 +1,4 @@
-# sys_random_h.m4 serial 4
+# sys_random_h.m4 serial 5
dnl Copyright (C) 2020 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
@@ -25,7 +25,8 @@ AC_DEFUN([gl_HEADER_SYS_RANDOM],
dnl corresponding gnulib module is not in use.
gl_WARN_ON_USE_PREPARE([[
#if HAVE_SYS_RANDOM_H
-/* Additional includes are needed before <sys/random.h> on Mac OS X. */
+/* Additional includes are needed before <sys/random.h> on uClibc
+ and Mac OS X. */
# include <sys/types.h>
# include <stdlib.h>
# include <sys/random.h>