diff --git a/packages/lang/llvm/package.mk b/packages/lang/llvm/package.mk
index 1ee55f0825..14488dc739 100644
--- a/packages/lang/llvm/package.mk
+++ b/packages/lang/llvm/package.mk
@@ -3,16 +3,20 @@
 # Copyright (C) 2018-present Team LibreELEC (https://libreelec.tv)
 
 PKG_NAME="llvm"
-PKG_VERSION="15.0.7"
-PKG_SHA256="8b5fcb24b4128cf04df1b0b9410ce8b1a729cb3c544e6da885d234280dedeac6"
+PKG_VERSION="18.1.7"
+PKG_SHA256="74446ab6943f686391954cbda0d77ae92e8a60c432eff437b8666e121d748ec4"
 PKG_LICENSE="Apache-2.0"
 PKG_SITE="http://llvm.org/"
-PKG_URL="https://github.com/llvm/llvm-project/releases/download/llvmorg-${PKG_VERSION}/llvm-project-${PKG_VERSION}.src.tar.xz"
+PKG_URL="https://github.com/llvm/llvm-project/releases/download/llvmorg-${PKG_VERSION}/llvm-project-${PKG_VERSION/-/}.src.tar.xz"
 PKG_DEPENDS_HOST="toolchain:host"
 PKG_DEPENDS_TARGET="toolchain llvm:host zlib"
 PKG_LONGDESC="Low-Level Virtual Machine (LLVM) is a compiler infrastructure."
 PKG_TOOLCHAIN="cmake"
 
+if listcontains "${GRAPHIC_DRIVERS}" "iris"; then
+  PKG_DEPENDS_UNPACK="spirv-headers spirv-llvm-translator"
+fi
+
 PKG_CMAKE_OPTS_COMMON="-DLLVM_INCLUDE_TOOLS=ON \
                        -DLLVM_BUILD_TOOLS=OFF \
                        -DLLVM_BUILD_UTILS=OFF \
@@ -20,7 +24,6 @@ PKG_CMAKE_OPTS_COMMON="-DLLVM_INCLUDE_TOOLS=ON \
                        -DLLVM_INCLUDE_EXAMPLES=OFF \
                        -DLLVM_BUILD_TESTS=OFF \
                        -DLLVM_INCLUDE_TESTS=OFF \
-                       -DLLVM_INCLUDE_GO_TESTS=OFF \
                        -DLLVM_BUILD_BENCHMARKS=OFF \
                        -DLLVM_INCLUDE_BENCHMARKS=OFF \
                        -DLLVM_BUILD_DOCS=OFF \
@@ -42,22 +45,47 @@ PKG_CMAKE_OPTS_COMMON="-DLLVM_INCLUDE_TOOLS=ON \
                        -DLLVM_ENABLE_RTTI=ON \
                        -DLLVM_ENABLE_UNWIND_TABLES=OFF \
                        -DLLVM_ENABLE_Z3_SOLVER=OFF \
+                       -DLLVM_SPIRV_INCLUDE_TESTS=OFF \
                        -DCMAKE_SKIP_RPATH=ON"
 
+post_unpack() {
+  if listcontains "${GRAPHIC_DRIVERS}" "iris"; then
+    mkdir -p "${PKG_BUILD}"/llvm/projects/{SPIRV-Headers,SPIRV-LLVM-Translator}
+      tar --strip-components=1 \
+        -xf "${SOURCES}/spirv-headers/spirv-headers-$(get_pkg_version spirv-headers).tar.gz" \
+        -C "${PKG_BUILD}/llvm/projects/SPIRV-Headers"
+      tar --strip-components=1 \
+        -xf "${SOURCES}/spirv-llvm-translator/spirv-llvm-translator-$(get_pkg_version spirv-llvm-translator).tar.gz" \
+        -C "${PKG_BUILD}/llvm/projects/SPIRV-LLVM-Translator"
+  fi
+}
+
 pre_configure() {
   PKG_CMAKE_SCRIPT=${PKG_BUILD}/llvm/CMakeLists.txt
 }
 
 pre_configure_host() {
-  case "${TARGET_ARCH}" in
+  case "${MACHINE_HARDWARE_NAME}" in
+    "aarch64")
+      LLVM_BUILD_TARGETS="AArch64"
+      ;;
     "arm")
-      LLVM_BUILD_TARGETS="X86\;ARM"
+      LLVM_BUILD_TARGETS="ARM"
+      ;;
+    "x86_64")
+      LLVM_BUILD_TARGETS="X86"
       ;;
+  esac
+
+  case "${TARGET_ARCH}" in
     "aarch64")
-      LLVM_BUILD_TARGETS="X86\;AArch64"
+      LLVM_BUILD_TARGETS+="\;AArch64"
+      ;;
+    "arm")
+      LLVM_BUILD_TARGETS+="\;ARM"
       ;;
     "x86_64")
-      LLVM_BUILD_TARGETS="X86\;AMDGPU"
+      LLVM_BUILD_TARGETS+="\;X86\;AMDGPU"
       ;;
   esac
 
@@ -73,12 +101,20 @@ pre_configure_host() {
 
 post_make_host() {
   ninja ${NINJA_OPTS} llvm-config llvm-tblgen
+
+  if listcontains "${GRAPHIC_DRIVERS}" "iris"; then
+    ninja ${NINJA_OPTS} llvm-as llvm-link llvm-spirv opt
+  fi
 }
 
 post_makeinstall_host() {
   mkdir -p ${TOOLCHAIN}/bin
     cp -a bin/llvm-config ${TOOLCHAIN}/bin
     cp -a bin/llvm-tblgen ${TOOLCHAIN}/bin
+
+  if listcontains "${GRAPHIC_DRIVERS}" "iris"; then
+    cp -a bin/{llvm-as,llvm-link,llvm-spirv,opt} "${TOOLCHAIN}/bin"
+  fi
 }
 
 pre_configure_target() {
diff --git a/packages/lang/llvm/patches/llvm-15.0.0-D108864-misleading-indentation.patch b/packages/lang/llvm/patches/llvm-15.0.0-D108864-misleading-indentation.patch
deleted file mode 100644
index 5313baef8f..0000000000
--- a/packages/lang/llvm/patches/llvm-15.0.0-D108864-misleading-indentation.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-diff --git a/llvm/cmake/modules/HandleLLVMOptions.cmake b/llvm/cmake/modules/HandleLLVMOptions.cmake
---- a/llvm/cmake/modules/HandleLLVMOptions.cmake
-+++ b/llvm/cmake/modules/HandleLLVMOptions.cmake
-@@ -789,7 +789,11 @@
-   add_flag_if_supported("-Wstring-conversion" STRING_CONVERSION_FLAG)
- 
-   # Prevent bugs that can happen with llvm's brace style.
--  add_flag_if_supported("-Wmisleading-indentation" MISLEADING_INDENTATION_FLAG)
-+  if (CMAKE_COMPILER_IS_GNUCXX)
-+    add_flag_if_supported("-Wno-misleading-indentation" MISLEADING_INDENTATION_FLAG)
-+  else()
-+    add_flag_if_supported("-Wmisleading-indentation" MISLEADING_INDENTATION_FLAG)
-+  endif()
- endif (LLVM_ENABLE_WARNINGS AND (LLVM_COMPILER_IS_GCC_COMPATIBLE OR CLANG_CL))
- 
- if (LLVM_COMPILER_IS_GCC_COMPATIBLE AND NOT LLVM_ENABLE_WARNINGS)
-
diff --git a/packages/rust/cargo-snapshot/package.mk b/packages/rust/cargo-snapshot/package.mk
index ece75fc1e9..8aebbfb0ed 100644
--- a/packages/rust/cargo-snapshot/package.mk
+++ b/packages/rust/cargo-snapshot/package.mk
@@ -3,9 +3,23 @@
 
 PKG_NAME="cargo-snapshot"
 PKG_VERSION="$(get_pkg_version rust)"
-PKG_SHA256="e744dad75de8419e7fea530c29bd56cf931b4d4de62eb4bd442bfac7b54e61ed"
 PKG_LICENSE="MIT"
 PKG_SITE="https://www.rust-lang.org"
-PKG_URL="https://static.rust-lang.org/dist/cargo-${PKG_VERSION}-${MACHINE_HARDWARE_NAME}-unknown-linux-gnu.tar.xz"
 PKG_LONGDESC="cargo bootstrap package"
 PKG_TOOLCHAIN="manual"
+
+case "${MACHINE_HARDWARE_NAME}" in
+  "aarch64")
+    PKG_SHA256="4ca5e9bd141b0111387ea1aa0355f87eb8d0da52fbc616cefa4ecde4997aa65b"
+    PKG_URL="https://static.rust-lang.org/dist/cargo-${PKG_VERSION}-${MACHINE_HARDWARE_NAME}-unknown-linux-gnu.tar.xz"
+    ;;
+  "arm")
+    PKG_SHA256="60c8274fdfbf335f740fdb5987b5f2be24e74eda1ae40021ee94368999f29ed7"
+    PKG_URL="https://static.rust-lang.org/dist/cargo-${PKG_VERSION}-${MACHINE_HARDWARE_NAME}-unknown-linux-gnueabihf.tar.xz"
+    ;;
+  "x86_64")
+    PKG_SHA256="07fcadd27b645ad58ff4dae5ef166fd730311bbae8f25f6640fe1bfd2a1f3c3c"
+    PKG_URL="https://static.rust-lang.org/dist/cargo-${PKG_VERSION}-${MACHINE_HARDWARE_NAME}-unknown-linux-gnu.tar.xz"
+    ;;
+esac
+PKG_SOURCE_NAME="cargo-snapshot_${PKG_VERSION}_${ARCH}.tar.xz"
diff --git a/packages/rust/rust-std-snapshot/package.mk b/packages/rust/rust-std-snapshot/package.mk
index 1ba9f90ca5..e586841831 100644
--- a/packages/rust/rust-std-snapshot/package.mk
+++ b/packages/rust/rust-std-snapshot/package.mk
@@ -3,9 +3,23 @@
 
 PKG_NAME="rust-std-snapshot"
 PKG_VERSION="$(get_pkg_version rust)"
-PKG_SHA256="f4dc8468dfc1dbd86f865b10f06e0e4b4e76f5a3a1cc27317a520ab1660844e9"
 PKG_LICENSE="MIT"
 PKG_SITE="https://www.rust-lang.org"
-PKG_URL="https://static.rust-lang.org/dist/rust-std-${PKG_VERSION}-${MACHINE_HARDWARE_NAME}-unknown-linux-gnu.tar.xz"
 PKG_LONGDESC="rust std library bootstrap package"
 PKG_TOOLCHAIN="manual"
+
+case "${MACHINE_HARDWARE_NAME}" in
+  "aarch64")
+    PKG_SHA256="519abf4757fbd8d7e3bb4e4cfdc362ded972c1d95f04675684df2d31e8c0899b"
+    PKG_URL="https://static.rust-lang.org/dist/rust-std-${PKG_VERSION}-${MACHINE_HARDWARE_NAME}-unknown-linux-gnu.tar.xz"
+    ;;
+  "arm")
+    PKG_SHA256="fa6f5f03b68faf9b4449266e4836bcae24027fba7a3822a48822d772fc76c064"
+    PKG_URL="https://static.rust-lang.org/dist/rust-std-${PKG_VERSION}-${MACHINE_HARDWARE_NAME}-unknown-linux-gnueabihf.tar.xz"
+    ;;
+  "x86_64")
+    PKG_SHA256="2c914483c0882d44af2e50a181cbd2c953d672d50b31aa669ee2346cade1f108"
+    PKG_URL="https://static.rust-lang.org/dist/rust-std-${PKG_VERSION}-${MACHINE_HARDWARE_NAME}-unknown-linux-gnu.tar.xz"
+    ;;
+esac
+PKG_SOURCE_NAME="rust-std-snapshot_${PKG_VERSION}_${ARCH}.tar.xz"
diff --git a/packages/rust/rust/package.mk b/packages/rust/rust/package.mk
index 423c980191..50593e45f5 100644
--- a/packages/rust/rust/package.mk
+++ b/packages/rust/rust/package.mk
@@ -2,8 +2,8 @@
 # Copyright (C) 2017-present Team LibreELEC (https://libreelec.tv)
 
 PKG_NAME="rust"
-PKG_VERSION="1.67.1"
-PKG_SHA256="46483d3e5de85a3bd46f8e7a3ae1837496391067dbe713a25d3cf051b3d9ff6e"
+PKG_VERSION="1.79.0"
+PKG_SHA256="172ecf3c7d1f9d9fb16cd2a628869782670416ded0129e524a86751f961448c0"
 PKG_LICENSE="MIT"
 PKG_SITE="https://www.rust-lang.org"
 PKG_URL="https://static.rust-lang.org/dist/rustc-${PKG_VERSION}-src.tar.gz"
@@ -33,7 +33,7 @@ configure_host() {
   esac
 
   cat > ${PKG_BUILD}/config.toml <<END
-changelog-seen = 2
+change-id = 102579
 
 [target.${TARGET_NAME}]
 llvm-config = "${TOOLCHAIN}/bin/llvm-config"
diff --git a/packages/rust/rust/targets/x86_64-libreelec-linux-gnu.json b/packages/rust/rust/targets/x86_64-libreelec-linux-gnu.json
index f30f36ddcf..3a7af30d78 100644
--- a/packages/rust/rust/targets/x86_64-libreelec-linux-gnu.json
+++ b/packages/rust/rust/targets/x86_64-libreelec-linux-gnu.json
@@ -2,7 +2,7 @@
   "arch": "x86_64",
   "cpu": "x86-64",
   "crt-static-respected": true,
-  "data-layout": "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128",
+  "data-layout": "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128",
   "dynamic-linking": true,
   "env": "gnu",
   "executables": true,
diff --git a/packages/rust/rustc-snapshot/package.mk b/packages/rust/rustc-snapshot/package.mk
index 018de9e049..633629345f 100644
--- a/packages/rust/rustc-snapshot/package.mk
+++ b/packages/rust/rustc-snapshot/package.mk
@@ -3,9 +3,23 @@
 
 PKG_NAME="rustc-snapshot"
 PKG_VERSION="$(get_pkg_version rust)"
-PKG_SHA256="e27ec0c6d1a2b2b38e5258904c3741ddb246bff5715aa95e595f818aa77f7bee"
 PKG_LICENSE="MIT"
 PKG_SITE="https://www.rust-lang.org"
-PKG_URL="https://static.rust-lang.org/dist/rustc-${PKG_VERSION}-${MACHINE_HARDWARE_NAME}-unknown-linux-gnu.tar.xz"
 PKG_LONGDESC="rustc bootstrap compiler"
 PKG_TOOLCHAIN="manual"
+
+case "${MACHINE_HARDWARE_NAME}" in
+  "aarch64")
+    PKG_SHA256="9c847b42b81325d25a9240e33bf03fa8652f5dd321ae90a9a7a58b46bf124b17"
+    PKG_URL="https://static.rust-lang.org/dist/rustc-${PKG_VERSION}-${MACHINE_HARDWARE_NAME}-unknown-linux-gnu.tar.xz"
+    ;;
+  "arm")
+    PKG_SHA256="019a2b9792ee38a30823b96b6d63e5094b92a1dff197ab30b63f1a6568da533e"
+    PKG_URL="https://static.rust-lang.org/dist/rustc-${PKG_VERSION}-${MACHINE_HARDWARE_NAME}-unknown-linux-gnueabihf.tar.xz"
+    ;;
+  "x86_64")
+    PKG_SHA256="a04cf42022d0a5faf01c31082bfb1dde9c38409f0ca6da90a3e40faa03e797ae"
+    PKG_URL="https://static.rust-lang.org/dist/rustc-${PKG_VERSION}-${MACHINE_HARDWARE_NAME}-unknown-linux-gnu.tar.xz"
+    ;;
+esac
+PKG_SOURCE_NAME="rustc-snapshot_${PKG_VERSION}_${ARCH}.tar.xz"
