mirror of
git://git.openembedded.org/meta-openembedded
synced 2026-01-01 13:58:06 +00:00
libnvme: apply patch already upstream to fix build with musl
Build failure with musl due to conflicting definitions of ioctl()
between glibc and musl has been fixed by libnvme developers with this
commit:
* ca47ba3119
Signed-off-by: Christophe Vu-Brugier <christophe.vu-brugier@seagate.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
This commit is contained in:
parent
6ee4a15ce2
commit
8930d8798b
|
|
@ -1,38 +0,0 @@
|
|||
From ad1ac4215f051bd42b7ddf64dad63d8215cc3ac4 Mon Sep 17 00:00:00 2001
|
||||
From: Khem Raj <raj.khem@gmail.com>
|
||||
Date: Sat, 7 Oct 2023 17:50:54 -0700
|
||||
Subject: [PATCH] ioctl: Check for ioctl signature for musl
|
||||
|
||||
Fixes
|
||||
../git/test/ioctl/mock.c:117:5: error: conflicting types for 'ioctl'
|
||||
117 | int ioctl(int fd, unsigned long request, ...)
|
||||
| ^
|
||||
/mnt/b/yoe/master/build/tmp/work/cortexa15t2hf-neon-yoe-linux-musleabi/libnvme/1.6/recipe-sysroot/usr/include/sys/ioctl.h:115:5: note: previous declaration is here
|
||||
115 | int ioctl (int, int, ...);
|
||||
| ^
|
||||
|
||||
Upstream-Status: Pending
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
---
|
||||
test/ioctl/mock.c | 4 ++++
|
||||
1 file changed, 4 insertions(+)
|
||||
|
||||
diff --git a/test/ioctl/mock.c b/test/ioctl/mock.c
|
||||
index e917244..7d5c983 100644
|
||||
--- a/test/ioctl/mock.c
|
||||
+++ b/test/ioctl/mock.c
|
||||
@@ -114,7 +114,11 @@ void end_mock_cmds(void)
|
||||
} \
|
||||
})
|
||||
|
||||
+#if defined(__linux__) && !defined(__GLIBC__)
|
||||
+int ioctl(int fd, int request, ...)
|
||||
+#else
|
||||
int ioctl(int fd, unsigned long request, ...)
|
||||
+#endif
|
||||
{
|
||||
struct mock_cmds *mock_cmds;
|
||||
bool result64;
|
||||
--
|
||||
2.42.0
|
||||
|
||||
|
|
@ -0,0 +1,68 @@
|
|||
From ca47ba3119365eafac0ab25a86cab9d9a1b29bd4 Mon Sep 17 00:00:00 2001
|
||||
From: Sam James <sam@gentoo.org>
|
||||
Date: Sat, 30 Sep 2023 06:38:53 +0100
|
||||
Subject: [PATCH] test: handle POSIX ioctl prototype
|
||||
|
||||
glibc has the following prototype for ioctl: int ioctl(int fd, unsigned long request, ...)
|
||||
POSIX (inc. musl) has the following for ioctl: int ioctl(int fd, int request, ...)
|
||||
|
||||
Check which prototype is used in <sys/ioctl.h> to avoid a conflict and conditionally
|
||||
define the right one for the system.
|
||||
|
||||
Bug: https://bugs.gentoo.org/914921
|
||||
Signed-off-by: Sam James <sam@gentoo.org>
|
||||
Upstream-Status: Backport [https://github.com/linux-nvme/libnvme/commit/ca47ba3119365eafac0ab25a86cab9d9a1b29bd4]
|
||||
---
|
||||
meson.build | 10 ++++++++++
|
||||
test/ioctl/mock.c | 6 +++++-
|
||||
2 files changed, 15 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/meson.build b/meson.build
|
||||
index 6fcf1da..2c979cc 100644
|
||||
--- a/meson.build
|
||||
+++ b/meson.build
|
||||
@@ -230,6 +230,16 @@ conf.set(
|
||||
),
|
||||
description: 'Is network address and service translation available'
|
||||
)
|
||||
+conf.set(
|
||||
+ 'HAVE_GLIBC_IOCTL',
|
||||
+ cc.compiles(
|
||||
+ '''#include <sys/ioctl.h>
|
||||
+ int ioctl(int fd, unsigned long request, ...);
|
||||
+ ''',
|
||||
+ name: 'ioctl has glibc-style prototype'
|
||||
+ ),
|
||||
+ description: 'Is ioctl the glibc interface (rather than POSIX)'
|
||||
+)
|
||||
|
||||
if cc.has_function_attribute('fallthrough')
|
||||
conf.set('fallthrough', '__attribute__((__fallthrough__))')
|
||||
diff --git a/test/ioctl/mock.c b/test/ioctl/mock.c
|
||||
index e917244..5d2ac94 100644
|
||||
--- a/test/ioctl/mock.c
|
||||
+++ b/test/ioctl/mock.c
|
||||
@@ -114,7 +114,11 @@ void end_mock_cmds(void)
|
||||
} \
|
||||
})
|
||||
|
||||
+#ifdef HAVE_GLIBC_IOCTL
|
||||
int ioctl(int fd, unsigned long request, ...)
|
||||
+#else
|
||||
+int ioctl(int fd, int request, ...)
|
||||
+#endif
|
||||
{
|
||||
struct mock_cmds *mock_cmds;
|
||||
bool result64;
|
||||
@@ -141,7 +145,7 @@ int ioctl(int fd, unsigned long request, ...)
|
||||
result64 = true;
|
||||
break;
|
||||
default:
|
||||
- fail("unexpected %s %lu", __func__, request);
|
||||
+ fail("unexpected %s %lu", __func__, (unsigned long) request);
|
||||
}
|
||||
check(mock_cmds->remaining_cmds,
|
||||
"unexpected %s command", mock_cmds->name);
|
||||
--
|
||||
2.40.1
|
||||
|
||||
|
|
@ -14,7 +14,7 @@ DEPENDS = "json-c"
|
|||
SRCREV = "37a803cf77e224f66d86b1e1d9e74a15f55ea600"
|
||||
|
||||
SRC_URI = "git://github.com/linux-nvme/libnvme;protocol=https;branch=master \
|
||||
file://0001-ioctl-Check-for-ioctl-signature-for-musl.patch \
|
||||
file://0001-test-handle-POSIX-ioctl-prototype.patch \
|
||||
"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user