mirror of
https://git.yoctoproject.org/poky
synced 2026-04-18 21:32:12 +02:00
bluez: Fix mesh builds on musl
When mesh is enabled on musl the build fails with conflicting basename calls. (From OE-Core rev: 2db90c6508e350d35782db973291bbf5ffdfd3a5) 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://0001-Provide-GNU-basename-compatible-implementation.patch \
|
||||
file://0001-mesh-Move-local-basename-into-utility-file.patch \
|
||||
"
|
||||
S = "${WORKDIR}/bluez-${PV}"
|
||||
|
||||
|
||||
@@ -0,0 +1,114 @@
|
||||
From e64c2e70a74da452b0ee147350c4ce93e1db8d2f Mon Sep 17 00:00:00 2001
|
||||
From: Khem Raj <raj.khem@gmail.com>
|
||||
Date: Mon, 16 Sep 2024 15:11:01 -0700
|
||||
Subject: [PATCH v2] mesh: Move local basename into utility file
|
||||
|
||||
Defining an override via a missing.h can prove difficult when a file
|
||||
needs to use basename and dirname both the APIs and needs to include
|
||||
libgen.h for them, in such situations there will be signature clash
|
||||
for basename function.
|
||||
|
||||
Upstream-Status: Submitted [https://lore.kernel.org/linux-bluetooth/20240917031745.1641153-1-raj.khem@gmail.com/T/#u]
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
|
||||
---
|
||||
v2: Remove reference to missing.h in Makefile.mesh
|
||||
|
||||
Makefile.mesh | 2 +-
|
||||
mesh/mesh-config-json.c | 3 +--
|
||||
mesh/missing.h | 21 ---------------------
|
||||
mesh/rpl.c | 3 +--
|
||||
mesh/util.c | 10 ++++++++++
|
||||
mesh/util.h | 5 +++++
|
||||
6 files changed, 18 insertions(+), 26 deletions(-)
|
||||
delete mode 100644 mesh/missing.h
|
||||
|
||||
--- a/mesh/mesh-config-json.c
|
||||
+++ b/mesh/mesh-config-json.c
|
||||
@@ -28,7 +28,6 @@
|
||||
#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"
|
||||
@@ -2708,7 +2707,7 @@ void mesh_config_destroy_nvm(struct mesh
|
||||
if (!hex2str(cfg->uuid, 16, uuid, sizeof(uuid)))
|
||||
return;
|
||||
|
||||
- node_name = basename(node_dir);
|
||||
+ node_name = mesh_basename(node_dir);
|
||||
|
||||
/* Make sure path name of node follows expected guidelines */
|
||||
if (strcmp(node_name, uuid))
|
||||
--- a/mesh/missing.h
|
||||
+++ /dev/null
|
||||
@@ -1,21 +0,0 @@
|
||||
-// 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
|
||||
--- a/mesh/rpl.c
|
||||
+++ b/mesh/rpl.c
|
||||
@@ -24,7 +24,6 @@
|
||||
|
||||
#include <ell/ell.h>
|
||||
|
||||
-#include "mesh/missing.h"
|
||||
#include "mesh/mesh-defs.h"
|
||||
|
||||
#include "mesh/node.h"
|
||||
@@ -147,7 +146,7 @@ static void get_entries(const char *iv_p
|
||||
if (!dir)
|
||||
return;
|
||||
|
||||
- iv_txt = basename(iv_path);
|
||||
+ iv_txt = mesh_basename(iv_path);
|
||||
if (sscanf(iv_txt, "%08x", &iv_index) != 1) {
|
||||
closedir(dir);
|
||||
return;
|
||||
--- a/mesh/util.c
|
||||
+++ b/mesh/util.c
|
||||
@@ -161,3 +161,13 @@ void enable_debug(void)
|
||||
debug_enabled = true;
|
||||
l_debug_enable("*");
|
||||
}
|
||||
+
|
||||
+#if !HAVE_DECL_BASENAME
|
||||
+#include <string.h>
|
||||
+const char *mesh_basename(const char *path)
|
||||
+{
|
||||
+ const char *base = strrchr(path, '/');
|
||||
+
|
||||
+ return base ? base + 1 : path;
|
||||
+}
|
||||
+#endif
|
||||
--- a/mesh/util.h
|
||||
+++ b/mesh/util.h
|
||||
@@ -16,3 +16,8 @@ void print_packet(const char *label, con
|
||||
int create_dir(const char *dir_name);
|
||||
void del_path(const char *path);
|
||||
void enable_debug(void);
|
||||
+#if !HAVE_DECL_BASENAME
|
||||
+const char *mesh_basename(const char *path);
|
||||
+#else
|
||||
+#define mesh_basename basename
|
||||
+#endif
|
||||
Reference in New Issue
Block a user