Files
RedBear-OS/recipes/core/uutils/redox.patch
T
vasilito 50b731f1b7 Red Bear OS — microkernel OS in Rust, based on Redox
Derivative of Redox OS (https://www.redox-os.org) adding:
- AMD GPU driver (amdgpu) via LinuxKPI compat layer
- ext4 filesystem support (ext4d scheme daemon)
- ACPI fixes for AMD bare metal (x2APIC, DMAR, IVRS, MCFG)
- Custom branding (hostname, os-release, boot identity)

Build system is full upstream Redox with RBOS overlay in local/.
Patches for kernel, base, and relibc are symlinked from local/patches/
and protected from make clean/distclean. Custom recipes live in
local/recipes/ with symlinks into the recipes/ search path.

Build:  make all CONFIG_NAME=redbear-full
Sync:   ./local/scripts/sync-upstream.sh
2026-04-12 19:05:00 +01:00

84 lines
2.7 KiB
Diff

diff --git a/Cargo.toml b/Cargo.toml
index 5f417bd42..b7b895a9c 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -326,6 +326,7 @@ feat_os_unix_redox = [
"feat_common_core",
#
"chmod",
+ "nproc",
"stat",
"uname",
]
diff --git a/src/uucore/src/lib/features/fs.rs b/src/uucore/src/lib/features/fs.rs
index fd1f30303..c508f6b9b 100644
--- a/src/uucore/src/lib/features/fs.rs
+++ b/src/uucore/src/lib/features/fs.rs
@@ -13,7 +13,7 @@ use libc::{
S_IRUSR, S_ISGID, S_ISUID, S_ISVTX, S_IWGRP, S_IWOTH, S_IWUSR, S_IXGRP, S_IXOTH, S_IXUSR,
mkfifo, mode_t,
};
-#[cfg(all(unix, not(target_os = "redox")))]
+#[cfg(unix)]
pub use libc::{major, makedev, minor};
use std::collections::HashSet;
use std::collections::VecDeque;
@@ -849,24 +849,6 @@ pub fn make_fifo(path: &Path) -> std::io::Result<()> {
}
}
-// Redox's libc appears not to include the following utilities
-
-#[cfg(target_os = "redox")]
-pub fn major(dev: libc::dev_t) -> libc::c_uint {
- (((dev >> 8) & 0xFFF) | ((dev >> 32) & 0xFFFFF000)) as _
-}
-
-#[cfg(target_os = "redox")]
-pub fn minor(dev: libc::dev_t) -> libc::c_uint {
- ((dev & 0xFF) | ((dev >> 12) & 0xFFFFF00)) as _
-}
-
-#[cfg(target_os = "redox")]
-pub fn makedev(maj: libc::c_uint, min: libc::c_uint) -> libc::dev_t {
- let [maj, min] = [maj as libc::dev_t, min as libc::dev_t];
- (min & 0xff) | ((maj & 0xfff) << 8) | ((min & !0xff) << 12) | ((maj & !0xfff) << 32)
-}
-
#[cfg(test)]
mod tests {
// Note this useful idiom: importing names from outer (for mod tests) scope.
diff --git a/src/uucore/src/lib/mods/locale.rs b/src/uucore/src/lib/mods/locale.rs
index b670f8976..a4ff9f983 100644
--- a/src/uucore/src/lib/mods/locale.rs
+++ b/src/uucore/src/lib/mods/locale.rs
@@ -211,10 +211,11 @@ fn init_localization(
}
};
- LOCALIZER.with(|lock| {
+ // TODO: In aarch64 redox OS, this lock (once cell) is already initialized out of nothing
+ let _ = LOCALIZER.with(|lock| {
lock.set(loc)
.map_err(|_| LocalizationError::Bundle("Localizer already initialized".into()))
- })?;
+ });
Ok(())
}
@@ -422,10 +423,12 @@ pub fn setup_localization(p: &str) -> Result<(), LocalizationError> {
let english_bundle = create_english_bundle_from_embedded(&default_locale, p)?;
let localizer = Localizer::new(english_bundle);
- LOCALIZER.with(|lock| {
+ // TODO: In aarch64 redox OS, this lock (once cell) is already initialized out of nothing
+ // TODO: When this code is used? Patching for keep sake
+ let _ = LOCALIZER.with(|lock| {
lock.set(localizer)
.map_err(|_| LocalizationError::Bundle("Localizer already initialized".into()))
- })?;
+ });
Ok(())
}
}