]> git.ipfire.org Git - thirdparty/LuaJIT.git/commitdiff
OSX/iOS/ARM64: Fix bytecode embedding in Mach-O object file.
authorMike Pall <mike>
Tue, 12 Jul 2022 20:25:33 +0000 (22:25 +0200)
committerMike Pall <mike>
Tue, 12 Jul 2022 20:25:33 +0000 (22:25 +0200)
Thanks to Carlo Cabrera.

src/jit/bcsave.lua

index 6227d136b6c4c371f2d2ba3946719a295f1d0adf..adf197c68b0b08ed8340b3bba2cc132c4c5a0335 100644 (file)
@@ -501,6 +501,18 @@ typedef struct {
   mach_nlist sym_entry;
   uint8_t space[4096];
 } mach_fat_obj;
+typedef struct {
+  mach_fat_header fat;
+  mach_fat_arch fat_arch[2];
+  struct {
+    mach_header_64 hdr;
+    mach_segment_command_64 seg;
+    mach_section_64 sec;
+    mach_symtab_command sym;
+  } arch[2];
+  mach_nlist_64 sym_entry;
+  uint8_t space[4096];
+} mach_fat_obj_64;
 ]]
   local symname = '_'..LJBC_PREFIX..ctx.modname
   local isfat, is64, align, mobj = false, false, 4, "mach_obj"
@@ -509,7 +521,7 @@ typedef struct {
   elseif ctx.arch == "arm" then
     isfat, mobj = true, "mach_fat_obj"
   elseif ctx.arch == "arm64" then
-    is64, align, isfat, mobj = true, 8, true, "mach_fat_obj"
+    is64, align, isfat, mobj = true, 8, true, "mach_fat_obj_64"
   else
     check(ctx.arch == "x86", "unsupported architecture for OSX")
   end