bug-gnulib
[Top][All Lists]
Advanced

[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>




reply via email to

[Prev in Thread] Current Thread [Next in Thread]