mirror of
https://git.yoctoproject.org/poky
synced 2026-04-04 23:02:22 +02: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-test-gatt-Fix-hung-issue.patch \
|
||||
file://0004-src-shared-util.c-include-linux-limits.h.patch \
|
||||
file://0001-Provide-GNU-basename-compatible-implementation.patch \
|
||||
"
|
||||
S = "${WORKDIR}/bluez-${PV}"
|
||||
|
||||
|
||||
@@ -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