diff mbox series

[meta-oe,1/2] ploate: Fix sys/stat.h and linux/stat.h conflicts with musl

Message ID 20240324014800.732601-1-raj.khem@gmail.com
State New
Headers show
Series [meta-oe,1/2] ploate: Fix sys/stat.h and linux/stat.h conflicts with musl | expand

Commit Message

Khem Raj March 24, 2024, 1:47 a.m. UTC
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
 ...at.h-only-when-sys-stat.h-is-not-inc.patch | 39 +++++++++++++++++++
 .../plocate/plocate_1.1.22.bb                 |  3 +-
 2 files changed, 41 insertions(+), 1 deletion(-)
 create mode 100644 meta-oe/recipes-extended/plocate/plocate/0001-Include-linux-stat.h-only-when-sys-stat.h-is-not-inc.patch
diff mbox series

Patch

diff --git a/meta-oe/recipes-extended/plocate/plocate/0001-Include-linux-stat.h-only-when-sys-stat.h-is-not-inc.patch b/meta-oe/recipes-extended/plocate/plocate/0001-Include-linux-stat.h-only-when-sys-stat.h-is-not-inc.patch
new file mode 100644
index 0000000000..7ba266f44a
--- /dev/null
+++ b/meta-oe/recipes-extended/plocate/plocate/0001-Include-linux-stat.h-only-when-sys-stat.h-is-not-inc.patch
@@ -0,0 +1,39 @@ 
+From 1d2197c195e19f1414afef75186bdd4c27b3ee5a Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 23 Mar 2024 18:16:19 -0700
+Subject: [PATCH] Include linux/stat.h only when sys/stat.h is not included
+
+This ends up providing certain functions from both headers e.g.
+statx and statx_timestamp since liburing.h forcefully defines _GNU_SOURCE
+to help musl compile liburing, however, this define then causes these
+two files to conflict in plocate, it seems this file is redundant here
+when sys/stat.h is included anyway, mark it for conditional include
+
+Fixes
+| In file included from ../plocate-1.1.22/plocate.cpp:5:
+| In file included from ../plocate-1.1.22/io_uring_engine.h:14:
+| In file included from /mnt/b/yoe/master/build/tmp/work/core2-64-yoe-linux-musl/plocate/1.1.22/recipe-sysroot/usr/include/liburing.h:14:
+| /mnt/b/yoe/master/build/tmp/work/core2-64-yoe-linux-musl/plocate/1.1.22/recipe-sysroot/usr/include/sys/stat.h:124:8: error: redefinition of 'statx_timestamp'
+|   124 | struct statx_timestamp {
+|       |        ^
+| /mnt/b/yoe/master/build/tmp/work/core2-64-yoe-linux-musl/plocate/1.1.22/recipe-sysroot/usr/include/linux/stat.h:56:8: note: previous definition is here                                             |    56 | struct statx_timestamp {                                                                                                                                                                    |       |        ^                                                                                                                                                                                    | In file included from ../plocate-1.1.22/plocate.cpp:5:                                                                                                                                              | In file included from ../plocate-1.1.22/io_uring_engine.h:14:                                                                                                                                       | In file included from /mnt/b/yoe/master/build/tmp/work/core2-64-yoe-linux-musl/plocate/1.1.22/recipe-sysroot/usr/include/liburing.h:14:                                                             | /mnt/b/yoe/master/build/tmp/work/core2-64-yoe-linux-musl/plocate/1.1.22/recipe-sysroot/usr/include/sys/stat.h:129:8: error: redefinition of 'statx'                                                 |   129 | struct statx {                                                                                                                                                                              |       |        ^                                                                                                                                                                                    | /mnt/b/yoe/master/build/tmp/work/core2-64-yoe-linux-musl/plocate/1.1.22/recipe-sysroot/usr/include/linux/stat.h:99:8: note: previous definition is here
+|    99 | struct statx {
+|       |        ^
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ io_uring_engine.h | 2 ++
+ 1 file changed, 2 insertions(+)
+
+--- a/io_uring_engine.h
++++ b/io_uring_engine.h
+@@ -7,7 +7,6 @@
+ #include <string_view>
+ #include <sys/socket.h>
+ #include <sys/types.h>
+-#include <linux/stat.h>
+ 
+ struct io_uring_sqe;
+ #ifndef WITHOUT_URING
diff --git a/meta-oe/recipes-extended/plocate/plocate_1.1.22.bb b/meta-oe/recipes-extended/plocate/plocate_1.1.22.bb
index 07de357266..694c29776a 100644
--- a/meta-oe/recipes-extended/plocate/plocate_1.1.22.bb
+++ b/meta-oe/recipes-extended/plocate/plocate_1.1.22.bb
@@ -9,6 +9,7 @@  inherit meson pkgconfig
 
 DEPENDS = "zstd liburing"
 
-SRC_URI = "https://plocate.sesse.net/download/${BP}.tar.gz"
+SRC_URI = "https://plocate.sesse.net/download/${BP}.tar.gz \
+           file://0001-Include-linux-stat.h-only-when-sys-stat.h-is-not-inc.patch"
 
 SRC_URI[sha256sum] = "3b7e4741b4aa2ec044e53eff06474a32a3fb1e928b9382351fe79d4c27fb0049"