diff --git a/Cargo.lock b/Cargo.lock
index 933f2fbee128dc146fbf8c8f1b0300233de6b6be..4c53670b33978bcea4c3b4cc7aa3c661d20824a2 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -778,9 +778,9 @@ checksum = "55b672471b4e9f9e95499ea597ff64941a309b2cdbffcc46f2cc5e2d971fd335"
 
 [[package]]
 name = "compiler_builtins"
-version = "0.1.109"
+version = "0.1.130"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f11973008a8cf741fe6d22f339eba21fd0ca81e2760a769ba8243ed6c21edd7e"
+checksum = "e64c30475571756801eff60a811520c3d18e0ceb9c56c97bad2047ae601f6709"
 dependencies = [
  "cc",
  "rustc-std-workspace-core",
diff --git a/compiler/rustc_target/src/spec/mod.rs b/compiler/rustc_target/src/spec/mod.rs
index fc8223f21c1c3fc76947883a27f29138911f04ea..e563201050b3da3d774847a2d08efc30ecdfa523 100644
--- a/compiler/rustc_target/src/spec/mod.rs
+++ b/compiler/rustc_target/src/spec/mod.rs
@@ -1608,6 +1608,7 @@ fn $module() {
     ("aarch64-unknown-redox", aarch64_unknown_redox),
     ("i686-unknown-redox", i686_unknown_redox),
     ("x86_64-unknown-redox", x86_64_unknown_redox),
+    ("riscv64gc-unknown-redox", riscv64gc_unknown_redox),
 
     ("i386-apple-ios", i386_apple_ios),
     ("x86_64-apple-ios", x86_64_apple_ios),
diff --git a/compiler/rustc_target/src/spec/targets/riscv64gc_unknown_redox.rs b/compiler/rustc_target/src/spec/targets/riscv64gc_unknown_redox.rs
new file mode 100644
index 0000000000000000000000000000000000000000..359cb0fc159d8d0c2da4f33cf953106067771621
--- /dev/null
+++ b/compiler/rustc_target/src/spec/targets/riscv64gc_unknown_redox.rs
@@ -0,0 +1,25 @@
+use crate::spec::{base, CodeModel, Target};
+
+pub fn target() -> Target {
+    let mut base = base::redox::opts();
+    base.code_model = Some(CodeModel::Medium);
+    base.cpu = "generic-rv64".into();
+    base.features = "+m,+a,+f,+d,+c".into();
+    base.llvm_abiname = "lp64d".into();
+    base.plt_by_default = false;
+    base.max_atomic_width = Some(64);
+
+    Target {
+        llvm_target: "riscv64-unknown-redox".into(),
+        metadata: crate::spec::TargetMetadata {
+            description: None,
+            tier: None,
+            host_tools: None,
+            std: None,
+        },
+        pointer_width: 64,
+        data_layout: "e-m:e-p:64:64-i64:64-i128:128-n32:64-S128".into(),
+        arch: "riscv64".into(),
+        options: base
+    }
+}
diff --git a/library/alloc/Cargo.toml b/library/alloc/Cargo.toml
index e8afed6b35a83b332a230242c0ef3d6733301f35..9cda45781c3cc93d4c98f63fcb5add6dd1fe74a1 100644
--- a/library/alloc/Cargo.toml
+++ b/library/alloc/Cargo.toml
@@ -10,7 +10,7 @@ edition = "2021"
 
 [dependencies]
 core = { path = "../core" }
-compiler_builtins = { version = "0.1.40", features = ['rustc-dep-of-std'] }
+compiler_builtins = { version = "0.1.110", features = ['rustc-dep-of-std', 'no-f16-f128'] }
 
 [dev-dependencies]
 rand = { version = "0.8.5", default-features = false, features = ["alloc"] }
@@ -35,6 +35,5 @@ compiler-builtins-mem = ['compiler_builtins/mem']
 compiler-builtins-c = ["compiler_builtins/c"]
 compiler-builtins-no-asm = ["compiler_builtins/no-asm"]
 compiler-builtins-mangled-names = ["compiler_builtins/mangled-names"]
-compiler-builtins-weak-intrinsics = ["compiler_builtins/weak-intrinsics"]
 # Make panics and failed asserts immediately abort without formatting any message
 panic_immediate_abort = []
diff --git a/library/std/Cargo.toml b/library/std/Cargo.toml
index 52729ba1f84563d721bf901514bc8ba0200bda87..8a625938e71aec069ca1e14384300d9e4da8ba80 100644
--- a/library/std/Cargo.toml
+++ b/library/std/Cargo.toml
@@ -75,7 +75,6 @@ compiler-builtins-c = ["alloc/compiler-builtins-c"]
 compiler-builtins-mem = ["alloc/compiler-builtins-mem"]
 compiler-builtins-no-asm = ["alloc/compiler-builtins-no-asm"]
 compiler-builtins-mangled-names = ["alloc/compiler-builtins-mangled-names"]
-compiler-builtins-weak-intrinsics = ["alloc/compiler-builtins-weak-intrinsics"]
 llvm-libunwind = ["unwind/llvm-libunwind"]
 system-llvm-libunwind = ["unwind/system-llvm-libunwind"]
 
diff --git a/library/sysroot/Cargo.toml b/library/sysroot/Cargo.toml
index 6ff24a8db59c3126ed19862dbd2c8a1853f1e762..5356ee277cc2cfa309fd7e02c2b84a1b4cb5c19a 100644
--- a/library/sysroot/Cargo.toml
+++ b/library/sysroot/Cargo.toml
@@ -17,7 +17,6 @@ compiler-builtins-c = ["std/compiler-builtins-c"]
 compiler-builtins-mem = ["std/compiler-builtins-mem"]
 compiler-builtins-no-asm = ["std/compiler-builtins-no-asm"]
 compiler-builtins-mangled-names = ["std/compiler-builtins-mangled-names"]
-compiler-builtins-weak-intrinsics = ["std/compiler-builtins-weak-intrinsics"]
 llvm-libunwind = ["std/llvm-libunwind"]
 system-llvm-libunwind = ["std/system-llvm-libunwind"]
 panic-unwind = ["std/panic_unwind"]
diff --git a/src/bootstrap/src/core/sanity.rs b/src/bootstrap/src/core/sanity.rs
index bf965fc2e33c6caee525bb02f5919c75db9bb5c7..c4741c7651e5de7ffe7bda66ed515438feaa765d 100644
--- a/src/bootstrap/src/core/sanity.rs
+++ b/src/bootstrap/src/core/sanity.rs
@@ -36,6 +36,7 @@ pub struct Finder {
     "aarch64-apple-visionos",
     "aarch64-apple-visionos-sim",
     "i686-unknown-redox",
+    "riscv64gc-unknown-redox",
 ];
 
 impl Finder {
diff --git a/src/llvm-project b/src/llvm-project
index 2b9fcff380e76a143fafc793e81b34f33fc58819..60b00ef02ef972e5e33bdf1f4a0b576599c16de4 160000
--- a/src/llvm-project
+++ b/src/llvm-project
@@ -1 +1 @@
-Subproject commit 2b9fcff380e76a143fafc793e81b34f33fc58819
+Subproject commit 60b00ef02ef972e5e33bdf1f4a0b576599c16de4