[Buildroot] [PATCH v1 2/2] package/pipewire: fix uclibc compile (getrandom related)

Peter Seiderer ps.report at gmx.net
Wed May 12 20:42:51 UTC 2021


The getrandom() detection from meson.build failes with the following error
message:

  .../host/x86_64-buildroot-linux-uclibc/sysroot/usr/include/sys/random.h:27:35: error: unknown type name 'size_t'
     27 | extern int getrandom(void *__buf, size_t count, unsigned int flags)
        |                                   ^~~~~~
  .../host/x86_64-buildroot-linux-uclibc/sysroot/usr/include/sys/random.h:8:1: note: 'size_t' is defined in header '<stddef.h>'; did you forget to '#include <stddef.h>'?

Fix it by adding stddef.h include to the meson getrandom() detection.

Fixes:

  - http://autobuild.buildroot.net/results/7e131bec458bf5c263ee1858d38ed5dc3cf704a6

  ../src/pipewire/impl-core.c:54:9: error: conflicting types for ‘getrandom’
     54 | ssize_t getrandom(void *buf, size_t buflen, unsigned int flags) {
        |         ^~~~~~~~~
  In file included from ../src/pipewire/impl-core.c:34:
  .../host/x86_64-buildroot-linux-uclibc/sysroot/usr/include/sys/random.h:27:12: note: previous declaration of ‘getrandom’ was here
     27 | extern int getrandom(void *__buf, size_t count, unsigned int flags)
        |            ^~~~~~~~~

Signed-off-by: Peter Seiderer <ps.report at gmx.net>
---
Notes:
  - maybe this failure is more a uclibc defect (missing include in
    sys/random.h) and should be fixed there?

  - fix for same/similare failure was suggested already here [1] (by
    adding -D_GNU_SOURCE), and suggestd patch is accepted/merged upstream
    and is already present in the 0.3.27 source code, but did not fix
    the failure...

[1] https://patchwork.ozlabs.org/project/buildroot/patch/20210504211016.1216759-1-fontaine.fabrice@gmail.com/
---
 ...n-fix-getrandom-detection-for-uclibc.patch | 49 +++++++++++++++++++
 1 file changed, 49 insertions(+)
 create mode 100644 package/pipewire/0002-meson-fix-getrandom-detection-for-uclibc.patch

diff --git a/package/pipewire/0002-meson-fix-getrandom-detection-for-uclibc.patch b/package/pipewire/0002-meson-fix-getrandom-detection-for-uclibc.patch
new file mode 100644
index 0000000000..e902869ce9
--- /dev/null
+++ b/package/pipewire/0002-meson-fix-getrandom-detection-for-uclibc.patch
@@ -0,0 +1,49 @@
+From a36bc959768e100d2d72e027746e3a9d95cf29af Mon Sep 17 00:00:00 2001
+From: Peter Seiderer <ps.report at gmx.net>
+Date: Wed, 12 May 2021 22:08:39 +0200
+Subject: [PATCH] meson: fix getrandom detection for uclibc
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+The getrandom() detection from meson.build failes with the following error
+message:
+
+  .../host/x86_64-buildroot-linux-uclibc/sysroot/usr/include/sys/random.h:27:35: error: unknown type name 'size_t'
+     27 | extern int getrandom(void *__buf, size_t count, unsigned int flags)
+        |                                   ^~~~~~
+  .../host/x86_64-buildroot-linux-uclibc/sysroot/usr/include/sys/random.h:8:1: note: 'size_t' is defined in header '<stddef.h>'; did you forget to '#include <stddef.h>'?
+
+Fix it by adding stddef.h include to the meson getrandom() detection.
+
+Fixes:
+
+  ../src/pipewire/impl-core.c:54:9: error: conflicting types for ‘getrandom’
+     54 | ssize_t getrandom(void *buf, size_t buflen, unsigned int flags) {
+        |         ^~~~~~~~~
+  In file included from ../src/pipewire/impl-core.c:34:
+  .../host/x86_64-buildroot-linux-uclibc/sysroot/usr/include/sys/random.h:27:12: note: previous declaration of ‘getrandom’ was here
+     27 | extern int getrandom(void *__buf, size_t count, unsigned int flags)
+        |            ^~~~~~~~~
+
+Signed-off-by: Peter Seiderer <ps.report at gmx.net>
+---
+ meson.build | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/meson.build b/meson.build
+index 03a9d174..01b4c7c8 100644
+--- a/meson.build
++++ b/meson.build
+@@ -274,7 +274,7 @@ if cc.has_function('memfd_create', prefix : '#include <sys/mman.h>', args : [ '-
+   cdata.set('HAVE_MEMFD_CREATE', 1)
+ endif
+ 
+-if cc.has_function('getrandom', prefix : '#include <sys/random.h>', args : [ '-D_GNU_SOURCE' ])
++if cc.has_function('getrandom', prefix : '#include <stddef.h>\n#include <sys/random.h>', args : [ '-D_GNU_SOURCE' ])
+   cdata.set('HAVE_GETRANDOM', 1)
+ endif
+ 
+-- 
+2.31.1
+
-- 
2.31.1



More information about the buildroot mailing list