mirror of
https://git.yoctoproject.org/poky
synced 2026-05-30 12:29:55 +00:00
bluez5: Fix build with musl
(From OE-Core rev: e5f9870757bf7ffd009ce4ba999d37e41274982c) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
@@ -70,6 +70,7 @@ SRC_URI = "${KERNELORG_MIRROR}/linux/bluetooth/bluez-${PV}.tar.xz \
|
|||||||
file://0001-tests-add-a-target-for-building-tests-without-runnin.patch \
|
file://0001-tests-add-a-target-for-building-tests-without-runnin.patch \
|
||||||
file://0001-test-gatt-Fix-hung-issue.patch \
|
file://0001-test-gatt-Fix-hung-issue.patch \
|
||||||
file://0004-src-shared-util.c-include-linux-limits.h.patch \
|
file://0004-src-shared-util.c-include-linux-limits.h.patch \
|
||||||
|
file://0001-Provide-GNU-basename-compatible-implementation.patch \
|
||||||
"
|
"
|
||||||
S = "${WORKDIR}/bluez-${PV}"
|
S = "${WORKDIR}/bluez-${PV}"
|
||||||
|
|
||||||
|
|||||||
+143
@@ -0,0 +1,143 @@
|
|||||||
|
From 9000923c07a68857e8ea32a49bfca660b1d1001a Mon Sep 17 00:00:00 2001
|
||||||
|
From: Khem Raj <raj.khem@gmail.com>
|
||||||
|
Date: Mon, 26 Aug 2024 09:55:03 -0700
|
||||||
|
Subject: [PATCH BlueZ] Provide GNU basename compatible implementation
|
||||||
|
|
||||||
|
Call to basename() relies on a GNU extension
|
||||||
|
to take a const char * vs a char *. Let's define
|
||||||
|
a trivial helper function to ensure compatibility
|
||||||
|
with musl.
|
||||||
|
|
||||||
|
Fixes Issue: https://github.com/bluez/bluez/issues/843
|
||||||
|
|
||||||
|
Upstream-Status: Submitted [https://lore.kernel.org/linux-bluetooth/20240826173844.2918630-1-raj.khem@gmail.com/T/#u]
|
||||||
|
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||||
|
---
|
||||||
|
Makefile.mesh | 2 ++
|
||||||
|
Makefile.tools | 3 ++-
|
||||||
|
mesh/mesh-config-json.c | 6 ++++--
|
||||||
|
mesh/rpl.c | 3 ++-
|
||||||
|
src/shared/util.h | 7 +++++++
|
||||||
|
tools/hex2hcd.c | 3 ++-
|
||||||
|
6 files changed, 19 insertions(+), 5 deletions(-)
|
||||||
|
|
||||||
|
Index: bluez-5.77/mesh/mesh-config-json.c
|
||||||
|
===================================================================
|
||||||
|
--- bluez-5.77.orig/mesh/mesh-config-json.c
|
||||||
|
+++ bluez-5.77/mesh/mesh-config-json.c
|
||||||
|
@@ -28,6 +28,7 @@
|
||||||
|
#include <ell/ell.h>
|
||||||
|
#include <json-c/json.h>
|
||||||
|
|
||||||
|
+#include "mesh/missing.h"
|
||||||
|
#include "mesh/mesh-defs.h"
|
||||||
|
#include "mesh/util.h"
|
||||||
|
#include "mesh/mesh-config.h"
|
||||||
|
@@ -2694,7 +2695,8 @@ bool mesh_config_load_nodes(const char *
|
||||||
|
|
||||||
|
void mesh_config_destroy_nvm(struct mesh_config *cfg)
|
||||||
|
{
|
||||||
|
- char *node_dir, *node_name;
|
||||||
|
+ char *node_dir;
|
||||||
|
+ const char* node_name;
|
||||||
|
char uuid[33];
|
||||||
|
|
||||||
|
if (!cfg)
|
||||||
|
Index: bluez-5.77/mesh/rpl.c
|
||||||
|
===================================================================
|
||||||
|
--- bluez-5.77.orig/mesh/rpl.c
|
||||||
|
+++ bluez-5.77/mesh/rpl.c
|
||||||
|
@@ -24,6 +24,7 @@
|
||||||
|
|
||||||
|
#include <ell/ell.h>
|
||||||
|
|
||||||
|
+#include "mesh/missing.h"
|
||||||
|
#include "mesh/mesh-defs.h"
|
||||||
|
|
||||||
|
#include "mesh/node.h"
|
||||||
|
Index: bluez-5.77/tools/hex2hcd.c
|
||||||
|
===================================================================
|
||||||
|
--- bluez-5.77.orig/tools/hex2hcd.c
|
||||||
|
+++ bluez-5.77/tools/hex2hcd.c
|
||||||
|
@@ -24,6 +24,7 @@
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <stdbool.h>
|
||||||
|
#include <sys/stat.h>
|
||||||
|
+#include "tools/missing.h"
|
||||||
|
|
||||||
|
static ssize_t process_record(int fd, const char *line, uint16_t *upper_addr)
|
||||||
|
{
|
||||||
|
Index: bluez-5.77/configure.ac
|
||||||
|
===================================================================
|
||||||
|
--- bluez-5.77.orig/configure.ac
|
||||||
|
+++ bluez-5.77/configure.ac
|
||||||
|
@@ -70,7 +70,16 @@ AC_CHECK_LIB(pthread, pthread_create, du
|
||||||
|
AC_CHECK_LIB(dl, dlopen, dummy=yes,
|
||||||
|
AC_MSG_ERROR(dynamic linking loader is required))
|
||||||
|
|
||||||
|
-AC_CHECK_HEADERS(linux/types.h linux/if_alg.h linux/uinput.h linux/uhid.h sys/random.h)
|
||||||
|
+AC_CHECK_HEADERS(string.h linux/types.h linux/if_alg.h linux/uinput.h linux/uhid.h sys/random.h)
|
||||||
|
+
|
||||||
|
+# basename may be only available in libgen.h with the POSIX behavior,
|
||||||
|
+# not desired here
|
||||||
|
+AC_CHECK_DECLS([basename], [],
|
||||||
|
+ AC_MSG_WARN([GNU basename extension not found]),
|
||||||
|
+ [#define _GNU_SOURCE 1
|
||||||
|
+ #include <string.h>
|
||||||
|
+ ])
|
||||||
|
+
|
||||||
|
|
||||||
|
PKG_CHECK_MODULES(GLIB, glib-2.0 >= 2.28)
|
||||||
|
|
||||||
|
Index: bluez-5.77/tools/missing.h
|
||||||
|
===================================================================
|
||||||
|
--- /dev/null
|
||||||
|
+++ bluez-5.77/tools/missing.h
|
||||||
|
@@ -0,0 +1,21 @@
|
||||||
|
+// SPDX-License-Identifier: LGPL-2.1-or-later
|
||||||
|
+/*
|
||||||
|
+ *
|
||||||
|
+ * BlueZ - Bluetooth protocol stack for Linux
|
||||||
|
+ *
|
||||||
|
+ * Copyright (C) 2024 Khem Raj <raj.khem@gmail.com>
|
||||||
|
+ *
|
||||||
|
+ */
|
||||||
|
+
|
||||||
|
+#ifdef HAVE_CONFIG_H
|
||||||
|
+#include <config.h>
|
||||||
|
+#endif
|
||||||
|
+#if !HAVE_DECL_BASENAME
|
||||||
|
+#include <string.h>
|
||||||
|
+static inline const char *basename(const char *path)
|
||||||
|
+{
|
||||||
|
+ const char *base = strrchr(path, '/');
|
||||||
|
+
|
||||||
|
+ return base ? base + 1 : path;
|
||||||
|
+}
|
||||||
|
+#endif
|
||||||
|
Index: bluez-5.77/mesh/missing.h
|
||||||
|
===================================================================
|
||||||
|
--- /dev/null
|
||||||
|
+++ bluez-5.77/mesh/missing.h
|
||||||
|
@@ -0,0 +1,21 @@
|
||||||
|
+// SPDX-License-Identifier: LGPL-2.1-or-later
|
||||||
|
+/*
|
||||||
|
+ *
|
||||||
|
+ * BlueZ - Bluetooth protocol stack for Linux
|
||||||
|
+ *
|
||||||
|
+ * Copyright (C) 2024 Khem Raj <raj.khem@gmail.com>
|
||||||
|
+ *
|
||||||
|
+ */
|
||||||
|
+
|
||||||
|
+#ifdef HAVE_CONFIG_H
|
||||||
|
+#include <config.h>
|
||||||
|
+#endif
|
||||||
|
+#if !HAVE_DECL_BASENAME
|
||||||
|
+#include <string.h>
|
||||||
|
+static inline const char *basename(const char *path)
|
||||||
|
+{
|
||||||
|
+ const char *base = strrchr(path, '/');
|
||||||
|
+
|
||||||
|
+ return base ? base + 1 : path;
|
||||||
|
+}
|
||||||
|
+#endif
|
||||||
Reference in New Issue
Block a user