@retrovm/nobj 0.1.4 → 0.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/nobj.ts +4 -2
  2. package/package.json +1 -1
package/nobj.ts CHANGED
@@ -177,11 +177,13 @@ function doObjectWindows(symbols: ObjSymbol[], arch: TargetArch): Uint8Array {
177
177
  hddv.setUint32(COFF_HDR_SZ + 36, 0x00100a00, true); // flags
178
178
 
179
179
  // CoffSection[1]: .rdata @ 60
180
- const rdataPtr = al(COFF_TOTAL_SZ + symd.length + tsd.length + tsed.length, 8);
180
+ // ARM64 ldr/str require 8-byte alignment; x64 works fine with 4-byte but 8 is harmless.
181
+ const rdataPtr = al(COFF_TOTAL_SZ + symd.length + tsd.length + tsed.length, 8);
182
+ const rdataFlags = arch === 'arm64' ? 0x40400040 : 0x40300040; // ALIGN_8BYTES vs ALIGN_4BYTES
181
183
  setStr(hd, COFF_HDR_SZ + COFF_SECT_SZ, '.rdata', 8);
182
184
  hddv.setUint32(COFF_HDR_SZ + COFF_SECT_SZ + 16, dsd.length, true);
183
185
  hddv.setUint32(COFF_HDR_SZ + COFF_SECT_SZ + 20, rdataPtr, true);
184
- hddv.setUint32(COFF_HDR_SZ + COFF_SECT_SZ + 36, 0x40300040, true);
186
+ hddv.setUint32(COFF_HDR_SZ + COFF_SECT_SZ + 36, rdataFlags, true);
185
187
 
186
188
  // CoffSymbol: .rdata section symbol @ 100
187
189
  setStr(hd, 100, '.rdata', 8);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@retrovm/nobj",
3
- "version": "0.1.4",
3
+ "version": "0.1.5",
4
4
  "description": "Generate native linkable object files (COFF, Mach-O, ELF64) from TypeScript/Bun — zero native dependencies",
5
5
  "license": "MIT",
6
6
  "author": "Juan Carlos González Amestoy",