mirror of
https://github.com/openembedded/meta-openembedded.git
synced 2026-10-23 08:48:24 +00:00
librice: Fix build on targets without 64-bit atomics
rice-proto counts agents in a core AtomicU64, which is not available on targets without 64-bit atomics, so it fails to build for riscv32: error[E0432]: unresolved import `core::sync::atomic::AtomicU64` Add a patch that uses AtomicUsize for it, like the other id counters in rice-proto, keeping the u64 agent id. AI-Generated: Uses Claude Code Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
This commit is contained in:
2 files changed
+53
-1
No files matched your search
+50
@@ -0,0 +1,50 @@
|
||||
From: Khem Raj <khem.raj@oss.qualcomm.com>
|
||||
Date: Thu, 22 Oct 2026 14:00:00 -0700
|
||||
Subject: [PATCH] rice-proto: Use AtomicUsize for the agent counter
|
||||
|
||||
core only provides AtomicU64 on targets with 64-bit atomics, so
|
||||
rice-proto fails to build for e.g. riscv32:
|
||||
|
||||
error[E0432]: unresolved import `core::sync::atomic::AtomicU64`
|
||||
--> rice-proto/src/agent.rs:19:5
|
||||
|
||||
AGENT_COUNT only hands out agent ids, like the STUN agent, connection
|
||||
check and check list counters, which are already AtomicUsize. Use
|
||||
AtomicUsize for it as well and widen the value to the u64 id, so
|
||||
Agent::id() is unchanged.
|
||||
|
||||
Upstream-Status: Submitted [https://github.com/ystreet/librice/pull/202]
|
||||
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
|
||||
---
|
||||
rice-proto/src/agent.rs | 6 +++---
|
||||
1 file changed, 3 insertions(+), 3 deletions(-)
|
||||
|
||||
--- a/rice-proto/src/agent.rs
|
||||
+++ b/rice-proto/src/agent.rs
|
||||
@@ -16,7 +16,7 @@
|
||||
use core::error::Error;
|
||||
use core::fmt::Display;
|
||||
use core::net::SocketAddr;
|
||||
-use core::sync::atomic::AtomicU64;
|
||||
+use core::sync::atomic::AtomicUsize;
|
||||
use core::time::Duration;
|
||||
|
||||
use stun_proto::Instant;
|
||||
@@ -189,7 +189,7 @@
|
||||
turn_client_proto::types::debug_init();
|
||||
rice_stun_types::debug_init();
|
||||
|
||||
- let id = AGENT_COUNT.fetch_add(1, core::sync::atomic::Ordering::SeqCst);
|
||||
+ let id = AGENT_COUNT.fetch_add(1, core::sync::atomic::Ordering::SeqCst) as u64;
|
||||
let tie_breaker = rand_u64();
|
||||
let controlling = self.controlling;
|
||||
let mut checklistset = ConnCheckListSet::builder(tie_breaker, controlling)
|
||||
@@ -210,7 +210,7 @@
|
||||
}
|
||||
}
|
||||
|
||||
-static AGENT_COUNT: AtomicU64 = AtomicU64::new(0);
|
||||
+static AGENT_COUNT: AtomicUsize = AtomicUsize::new(0);
|
||||
|
||||
impl Default for Agent {
|
||||
fn default() -> Self {
|
||||
@@ -3,7 +3,9 @@ HOMEPAGE = "https://github.com/ystreet/librice"
|
||||
LICENSE = "MIT"
|
||||
LIC_FILES_CHKSUM = "file://LICENSE-MIT;md5=b377b220f43d747efdec40d69fcaa69d"
|
||||
|
||||
SRC_URI += " git://github.com/ystreet/librice.git;protocol=https;branch=main;tag=v${PV}"
|
||||
SRC_URI += " git://github.com/ystreet/librice.git;protocol=https;branch=main;tag=v${PV} \
|
||||
file://0001-rice-proto-Use-AtomicUsize-for-the-agent-counter.patch \
|
||||
"
|
||||
SRCREV = "afd70fdd7ca96a39824c55e6b373bac97311f2ba"
|
||||
|
||||
DEPENDS += "openssl clang-native"
|
||||
|
||||
Reference in new issue
Block a user