mirror of
git://git.openembedded.org/meta-openembedded
synced 2026-01-01 13:58:06 +00:00
networkmanager: Fix undefined symbol errors on musl+lld
Signed-off-by: Khem Raj <raj.khem@gmail.com>
This commit is contained in:
parent
2b33e916ff
commit
751cb7534c
|
|
@ -0,0 +1,65 @@
|
|||
From 34d7a6c9919a73c2e716835000944c17438b2ca1 Mon Sep 17 00:00:00 2001
|
||||
From: Khem Raj <raj.khem@gmail.com>
|
||||
Date: Fri, 7 Jun 2024 14:03:15 -0700
|
||||
Subject: [PATCH] libnm-systemd-core: Disable sd_dhcp6_client_set_duid_uuid
|
||||
function
|
||||
|
||||
When building on musl systems ( with out systemd ), and using LLD linker
|
||||
from LLVM project we fail to link with undefined symbols.
|
||||
|
||||
This symbol is in sd_id128.c but its disabled, so let disable the functions
|
||||
which need this function.
|
||||
|
||||
| x86_64-yoe-linux-musl-ld.lld: error: undefined symbol: sd_id128_get_machine_app_specific
|
||||
| >>> referenced by sd-dhcp-duid.c:202 (/usr/src/debug/networkmanager/1.48.0/../NetworkManager-1.48.0/src/libnm-systemd-core/src/libsystemd-network/sd-dhcp-duid.c:202)
|
||||
| >>> libnm-systemd-core.a.p/src_libsystemd-network_sd-dhcp-duid.c.o:(sd_dhcp_duid_set_uuid) in archive src/libnm-systemd-core/libnm-systemd-core.a
|
||||
| x86_64-yoe-linux-musl-clang: error: linker command failed with exit code 1 (use -v to see invocation)
|
||||
|
||||
Upstream-Status: Submitted [https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/1966]
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
---
|
||||
src/libnm-systemd-core/src/libsystemd-network/sd-dhcp-duid.c | 2 ++
|
||||
.../src/libsystemd-network/sd-dhcp6-client.c | 3 ++-
|
||||
2 files changed, 4 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/libnm-systemd-core/src/libsystemd-network/sd-dhcp-duid.c b/src/libnm-systemd-core/src/libsystemd-network/sd-dhcp-duid.c
|
||||
index e664a4a..7ba5020 100644
|
||||
--- a/src/libnm-systemd-core/src/libsystemd-network/sd-dhcp-duid.c
|
||||
+++ b/src/libnm-systemd-core/src/libsystemd-network/sd-dhcp-duid.c
|
||||
@@ -193,6 +193,7 @@ int sd_dhcp_duid_set_en(sd_dhcp_duid *duid) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
+#if 0
|
||||
int sd_dhcp_duid_set_uuid(sd_dhcp_duid *duid) {
|
||||
sd_id128_t machine_id;
|
||||
int r;
|
||||
@@ -209,6 +210,7 @@ int sd_dhcp_duid_set_uuid(sd_dhcp_duid *duid) {
|
||||
duid->size = offsetof(struct duid, uuid.uuid) + sizeof(machine_id);
|
||||
return 0;
|
||||
}
|
||||
+#endif
|
||||
|
||||
int dhcp_duid_to_string_internal(uint16_t type, const void *data, size_t data_size, char **ret) {
|
||||
_cleanup_free_ char *p = NULL, *x = NULL;
|
||||
diff --git a/src/libnm-systemd-core/src/libsystemd-network/sd-dhcp6-client.c b/src/libnm-systemd-core/src/libsystemd-network/sd-dhcp6-client.c
|
||||
index 7c20116..08c1e96 100644
|
||||
--- a/src/libnm-systemd-core/src/libsystemd-network/sd-dhcp6-client.c
|
||||
+++ b/src/libnm-systemd-core/src/libsystemd-network/sd-dhcp6-client.c
|
||||
@@ -244,6 +244,7 @@ int sd_dhcp6_client_set_duid_en(sd_dhcp6_client *client) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
+#if 0
|
||||
int sd_dhcp6_client_set_duid_uuid(sd_dhcp6_client *client) {
|
||||
int r;
|
||||
|
||||
@@ -256,7 +257,7 @@ int sd_dhcp6_client_set_duid_uuid(sd_dhcp6_client *client) {
|
||||
|
||||
return 0;
|
||||
}
|
||||
-
|
||||
+#endif
|
||||
int sd_dhcp6_client_set_duid_raw(sd_dhcp6_client *client, uint16_t duid_type, const uint8_t *duid, size_t duid_len) {
|
||||
int r;
|
||||
|
||||
|
|
@ -40,6 +40,7 @@ SRC_URI = " \
|
|||
file://${BPN}.initd \
|
||||
file://enable-dhcpcd.conf \
|
||||
file://enable-iwd.conf \
|
||||
file://0001-libnm-systemd-core-Disable-sd_dhcp6_client_set_duid_.patch \
|
||||
"
|
||||
SRC_URI:append:libc-musl = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-lld', ' file://0001-linker-scripts-Do-not-export-_IO_stdin_used.patch', '', d)}"
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user