diff --git a/changelogs/unreleased/gh-10199-luajit-fixes.md b/changelogs/unreleased/gh-10199-luajit-fixes.md
new file mode 100644
index 0000000000000000000000000000000000000000..592d759022d75e9b54ce1558d47ae49e1f965899
--- /dev/null
+++ b/changelogs/unreleased/gh-10199-luajit-fixes.md
@@ -0,0 +1,17 @@
+## bugfix/luajit
+
+Backported patches from the vanilla LuaJIT trunk (gh-10199). The following
+issues were fixed as part of this activity:
+
+* Now 64-bit non-FAT Mach-O object files are generated via `-b -o osx`.
+* Fixed `string.format()` compilation with many elements.
+* Fixed `dlerror()` in FFI call returning `NULL`.
+* Fixed `__tostring` metamethod access to enum cdata value.
+* Fixed limit check in narrowing optimization.
+* Dropped finalizer table rehashing after GC cycle (gh-10290).
+* Fixed recording of `select(string, ...)`.
+* Fixed stack allocation after on-trace stack check.
+* Fixed recording of `__concat` metamethod that throws an error.
+* Fixed bit op coercion in `DUALNUM` builds.
+* Fixed 64-bit shift fold rules.
+* Fixed loop optimizations for cdata arguments of vararg FFI functions.
diff --git a/third_party/luajit b/third_party/luajit
index a7da08b2b15a0ef4afce4ee604dc02aa259ed8a8..abcf9f2ff50f336bb5c852170e8720fbff9ddb0e 160000
--- a/third_party/luajit
+++ b/third_party/luajit
@@ -1 +1 @@
-Subproject commit a7da08b2b15a0ef4afce4ee604dc02aa259ed8a8
+Subproject commit abcf9f2ff50f336bb5c852170e8720fbff9ddb0e