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/features/i18n/mod.rs b/src/uucore/src/lib/features/i18n/mod.rs
index 282baf2e7..a38ccb30e 100644
--- a/src/uucore/src/lib/features/i18n/mod.rs
+++ b/src/uucore/src/lib/features/i18n/mod.rs
@@ -45,8 +45,21 @@ pub fn get_locale_from_env(locale_name: &str) -> (Locale, UEncoding) {
 
         if let Some(simple) = split.next() {
             // Handle explicit C and POSIX locales - these should always use byte comparison
+            let encoding = split.next();
+            let is_utf8 = encoding.is_some_and(|enc| {
+                let lower = enc.to_lowercase();
+                lower == "utf-8" || lower == "utf8"
+            });
+
             if simple == "C" || simple == "POSIX" {
-                return (DEFAULT_LOCALE, UEncoding::Ascii);
+                return (
+                    DEFAULT_LOCALE,
+                    if is_utf8 {
+                        UEncoding::Utf8
+                    } else {
+                        UEncoding::Ascii
+                    },
+                );
             }
 
             // Naively convert the locale name to BCP47 tag format.
@@ -55,14 +68,9 @@ pub fn get_locale_from_env(locale_name: &str) -> (Locale, UEncoding) {
             let bcp47 = simple.replace('_', "-");
             let locale = Locale::try_from_str(&bcp47).unwrap_or(DEFAULT_LOCALE);
 
-            // If locale parsing failed, parse the encoding part of the
-            // locale. Treat the special case of the given locale being "C"
-            // which becomes the default locale.
-            let encoding = if (locale != DEFAULT_LOCALE || bcp47 == "C")
-                && split.next().is_some_and(|enc| {
-                    let lower = enc.to_lowercase();
-                    lower == "utf-8" || lower == "utf8"
-                }) {
+            // If the locale name was parsed successfully, use the encoding suffix
+            // to decide whether filenames should be treated as UTF-8.
+            let encoding = if (locale != DEFAULT_LOCALE || bcp47 == "C") && is_utf8 {
                 UEncoding::Utf8
             } else {
                 UEncoding::Ascii
@@ -70,8 +78,12 @@ pub fn get_locale_from_env(locale_name: &str) -> (Locale, UEncoding) {
             return (locale, encoding);
         }
     }
-    // Default POSIX locale representing LC_ALL=C
-    (DEFAULT_LOCALE, UEncoding::Ascii)
+
+    #[cfg(target_os = "redox")]
+    return (DEFAULT_LOCALE, UEncoding::Utf8);
+
+    #[cfg(not(target_os = "redox"))]
+    return (DEFAULT_LOCALE, UEncoding::Ascii);
 }
 
 /// Get the collating locale from the environment
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(())
     }
 }
