<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://planeshift.top-ix.org//pswiki/index.php?action=history&amp;feed=atom&amp;title=Mac_ARM64_vs_X86</id>
	<title>Mac ARM64 vs X86 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://planeshift.top-ix.org//pswiki/index.php?action=history&amp;feed=atom&amp;title=Mac_ARM64_vs_X86"/>
	<link rel="alternate" type="text/html" href="https://planeshift.top-ix.org//pswiki/index.php?title=Mac_ARM64_vs_X86&amp;action=history"/>
	<updated>2026-10-26T01:50:45Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>https://planeshift.top-ix.org//pswiki/index.php?title=Mac_ARM64_vs_X86&amp;diff=25796&amp;oldid=prev</id>
		<title>Talad: Created page with &quot; = PlaneShift — Mac Shipping Build: ARM64 / x86_64 Architecture Issues = &#039;&#039;&#039;Environment:&#039;&#039;&#039; Unreal Engine 5.7.4, macOS Sonoma 14.6.1, Xcode 16.2, Apple Silicon M1.  == 1. Problem encountered — October 25, 2026 == When building the Mac Shipping client, Unreal Engine started failing during cooking:  &lt;code&gt;UnrealEditor-Cmd: Illegal instruction: 4  ExitCode=132  Cook failed&lt;/code&gt; Even running &lt;code&gt;UnrealEditor-Cmd -help&lt;/code&gt; produced the same error, before loading Pl...&quot;</title>
		<link rel="alternate" type="text/html" href="https://planeshift.top-ix.org//pswiki/index.php?title=Mac_ARM64_vs_X86&amp;diff=25796&amp;oldid=prev"/>
		<updated>2026-10-25T21:31:09Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot; = PlaneShift — Mac Shipping Build: ARM64 / x86_64 Architecture Issues = &amp;#039;&amp;#039;&amp;#039;Environment:&amp;#039;&amp;#039;&amp;#039; Unreal Engine 5.7.4, macOS Sonoma 14.6.1, Xcode 16.2, Apple Silicon M1.  == 1. Problem encountered — October 25, 2026 == When building the Mac Shipping client, Unreal Engine started failing during cooking:  &amp;lt;code&amp;gt;UnrealEditor-Cmd: Illegal instruction: 4  ExitCode=132  Cook failed&amp;lt;/code&amp;gt; Even running &amp;lt;code&amp;gt;UnrealEditor-Cmd -help&amp;lt;/code&amp;gt; produced the same error, before loading Pl...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&lt;br /&gt;
= PlaneShift — Mac Shipping Build: ARM64 / x86_64 Architecture Issues =&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Environment:&amp;#039;&amp;#039;&amp;#039; Unreal Engine 5.7.4, macOS Sonoma 14.6.1, Xcode 16.2, Apple Silicon M1.&lt;br /&gt;
&lt;br /&gt;
== 1. Problem encountered — October 25, 2026 ==&lt;br /&gt;
When building the Mac Shipping client, Unreal Engine started failing during cooking:&lt;br /&gt;
 &amp;lt;code&amp;gt;UnrealEditor-Cmd: Illegal instruction: 4&lt;br /&gt;
 ExitCode=132&lt;br /&gt;
 Cook failed&amp;lt;/code&amp;gt;&lt;br /&gt;
Even running &amp;lt;code&amp;gt;UnrealEditor-Cmd -help&amp;lt;/code&amp;gt; produced the same error, before loading PlaneShift.&lt;br /&gt;
&lt;br /&gt;
=== Root cause: conflicting architectures ===&lt;br /&gt;
The Mac Shipping script requested &amp;lt;code&amp;gt;x86_64&amp;lt;/code&amp;gt;:&lt;br /&gt;
 &amp;lt;code&amp;gt;-architecture=x86_64&lt;br /&gt;
 -specifiedarchitecture=x86_64&amp;lt;/code&amp;gt;&lt;br /&gt;
Without additional flags, UnrealBuildTool also rebuilt the &amp;#039;&amp;#039;&amp;#039;Unreal Editor for x86_64&amp;#039;&amp;#039;&amp;#039;, overwriting the working native ARM64 editor binaries.&lt;br /&gt;
&lt;br /&gt;
We confirmed this in the logs:&lt;br /&gt;
 &amp;lt;code&amp;gt;Building PSUnrealEditor, ShaderCompileWorker,&lt;br /&gt;
 UnrealPak and PSUnrealClient...&lt;br /&gt;
 &lt;br /&gt;
 [15/911] Link [Intel] UnrealEditor-Core.dylib&amp;lt;/code&amp;gt;&lt;br /&gt;
The resulting x86_64 editor crashed under Rosetta with &amp;lt;code&amp;gt;SIGILL&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Important:&amp;#039;&amp;#039;&amp;#039; The exact cause of the illegal instruction inside the Intel editor was not conclusively established. The last library initializer reported before the crash was &amp;lt;code&amp;gt;libembree4.4.dylib&amp;lt;/code&amp;gt;, making Embree a possible contributor.&lt;br /&gt;
&lt;br /&gt;
Rebuilding Unreal Engine in Xcode for ARM64 restored the working editor.&lt;br /&gt;
&lt;br /&gt;
== 2. Correct architecture configuration ==&lt;br /&gt;
The intended arrangement is:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Component&lt;br /&gt;
!Architecture&lt;br /&gt;
|-&lt;br /&gt;
|UnrealEditor&lt;br /&gt;
|ARM64&lt;br /&gt;
|-&lt;br /&gt;
|UnrealEditor-Cmd (cooker)&lt;br /&gt;
|ARM64&lt;br /&gt;
|-&lt;br /&gt;
|UnrealEditor-Core.dylib&lt;br /&gt;
|ARM64&lt;br /&gt;
|-&lt;br /&gt;
|UnrealEditor-PSUnreal.dylib&lt;br /&gt;
|ARM64&lt;br /&gt;
|-&lt;br /&gt;
|PSUnrealClient Shipping&lt;br /&gt;
|x86_64&lt;br /&gt;
|}&lt;br /&gt;
The cooking editor and its PlaneShift game module must have matching architectures. The packaged client can target a different architecture.&lt;br /&gt;
&lt;br /&gt;
== 3. Required Shipping build flags ==&lt;br /&gt;
Keep the existing x86_64 client options, but add:&lt;br /&gt;
 &amp;lt;code&amp;gt;-nocompileeditor -skipbuildeditor&amp;lt;/code&amp;gt;&lt;br /&gt;
Full command:&lt;br /&gt;
 &amp;lt;code&amp;gt;/Volumes/DATA-2TB/5.7.4-release/Engine/Build/BatchFiles/RunUAT.command \&lt;br /&gt;
 BuildCookRun \&lt;br /&gt;
 -project=&amp;quot;/Users/luke/PSUnreal511/PSUnreal.uproject&amp;quot; \&lt;br /&gt;
 -nop4 \&lt;br /&gt;
 -Prereqs \&lt;br /&gt;
 -package \&lt;br /&gt;
 -target=PSUnrealClient \&lt;br /&gt;
 -clientconfig=Shipping \&lt;br /&gt;
 -utf8output \&lt;br /&gt;
 -specifiedarchitecture=x86_64 \&lt;br /&gt;
 -platform=Mac \&lt;br /&gt;
 -architecture=x86_64 \&lt;br /&gt;
 -targetplatform=Mac \&lt;br /&gt;
 -build \&lt;br /&gt;
 -nocompileeditor \&lt;br /&gt;
 -skipbuildeditor \&lt;br /&gt;
 -cook \&lt;br /&gt;
 -allmaps \&lt;br /&gt;
 -pak \&lt;br /&gt;
 -stage \&lt;br /&gt;
 -archive \&lt;br /&gt;
 -archivedirectory=&amp;quot;/Users/luke/temp/PSUnreal_Ship&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
These flags successfully prevented AutomationTool from rebuilding &amp;lt;code&amp;gt;PSUnrealEditor&amp;lt;/code&amp;gt; for Intel in our tests.&lt;br /&gt;
&lt;br /&gt;
The build log should list:&lt;br /&gt;
 &amp;lt;code&amp;gt;Building UnrealPak and PSUnrealClient...&amp;lt;/code&amp;gt;&lt;br /&gt;
It should NOT list:&lt;br /&gt;
 &amp;lt;code&amp;gt;Building PSUnrealEditor...&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 4. Pre-build verification commands ==&lt;br /&gt;
Run these before creating a Shipping release.&lt;br /&gt;
&lt;br /&gt;
=== Check Unreal Editor executable ===&lt;br /&gt;
 &amp;lt;code&amp;gt;file /Volumes/DATA-2TB/5.7.4-release/Engine/Binaries/Mac/UnrealEditor-Cmd&amp;lt;/code&amp;gt;&lt;br /&gt;
Expected:&lt;br /&gt;
 &amp;lt;code&amp;gt;Mach-O 64-bit executable arm64&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Check engine Core library ===&lt;br /&gt;
 &amp;lt;code&amp;gt;file /Volumes/DATA-2TB/5.7.4-release/Engine/Binaries/Mac/UnrealEditor-Core.dylib&amp;lt;/code&amp;gt;&lt;br /&gt;
Expected:&lt;br /&gt;
 &amp;lt;code&amp;gt;Mach-O 64-bit dynamically linked shared library arm64&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Check PlaneShift editor module ===&lt;br /&gt;
 &amp;lt;code&amp;gt;file /Users/luke/PSUnreal511/Binaries/Mac/UnrealEditor-PSUnreal.dylib&amp;lt;/code&amp;gt;&lt;br /&gt;
Expected:&lt;br /&gt;
 &amp;lt;code&amp;gt;Mach-O 64-bit dynamically linked shared library arm64&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Check Shipping client architecture ===&lt;br /&gt;
 &amp;lt;code&amp;gt;file /Users/luke/PSUnreal511/Binaries/Mac/PSUnrealClient-Mac-Shipping&amp;lt;/code&amp;gt;&lt;br /&gt;
Expected:&lt;br /&gt;
 &amp;lt;code&amp;gt;Mach-O 64-bit executable x86_64&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Check installed build tools ===&lt;br /&gt;
 &amp;lt;code&amp;gt;uname -m&lt;br /&gt;
 sw_vers&lt;br /&gt;
 xcodebuild -version&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 5. Repairing the project editor module ==&lt;br /&gt;
If cooking fails with:&lt;br /&gt;
 &amp;lt;code&amp;gt;The game module &amp;#039;PSUnreal&amp;#039; could not be found.&lt;br /&gt;
 Please ensure that this module exists and that it is compiled.&amp;lt;/code&amp;gt;&lt;br /&gt;
First check &amp;lt;code&amp;gt;UnrealEditor-PSUnreal.dylib&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
In our case, this file was x86_64 while the engine was ARM64, so Unreal couldn&amp;#039;t load it.&lt;br /&gt;
&lt;br /&gt;
Rebuild the project editor module for ARM64:&lt;br /&gt;
 &amp;lt;code&amp;gt;cd /Volumes/DATA-2TB/5.7.4-release&lt;br /&gt;
 &lt;br /&gt;
 ./Engine/Build/BatchFiles/Mac/Build.sh \&lt;br /&gt;
 PSUnrealEditor Mac Development \&lt;br /&gt;
 -Project=&amp;quot;/Users/luke/PSUnreal511/PSUnreal.uproject&amp;quot; \&lt;br /&gt;
 -architecture=arm64&amp;lt;/code&amp;gt;&lt;br /&gt;
Verify the architecture again before launching the Shipping build.&lt;br /&gt;
&lt;br /&gt;
== 6. If UnrealEditor-Cmd crashes again ==&lt;br /&gt;
Test the editor independently:&lt;br /&gt;
 &amp;lt;code&amp;gt;/Volumes/DATA-2TB/5.7.4-release/Engine/Binaries/Mac/UnrealEditor-Cmd -help&lt;br /&gt;
 &lt;br /&gt;
 echo &amp;quot;Exit code: $?&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
If the result is &amp;lt;code&amp;gt;Illegal instruction: 4&amp;lt;/code&amp;gt; (exit code 132):&lt;br /&gt;
&lt;br /&gt;
# Check whether the editor binaries became x86_64.&lt;br /&gt;
# Inspect the build logs for &amp;lt;code&amp;gt;PSUnrealEditor Mac Development -architecture=x64&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Rebuild the editor for ARM64 in Xcode.&lt;br /&gt;
# Verify the PlaneShift editor module is also ARM64.&lt;br /&gt;
# Ensure the Shipping script contains &amp;lt;code&amp;gt;-nocompileeditor -skipbuildeditor&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
An x86_64 editor is not automatically invalid, but that configuration caused startup crashes on this Mac.&lt;br /&gt;
&lt;br /&gt;
== 7. Where to find cooking logs ==&lt;br /&gt;
AutomationTool logs are stored in:&lt;br /&gt;
 &amp;lt;code&amp;gt;~/Library/Logs/Unreal Engine/LocalBuildLogs/&amp;lt;/code&amp;gt;&lt;br /&gt;
The cooking log filename can change when AutomationTool copies it from the engine directory.&lt;br /&gt;
&lt;br /&gt;
Find the latest logs:&lt;br /&gt;
 &amp;lt;code&amp;gt;ls -lt &amp;quot;$HOME/Library/Logs/Unreal Engine/LocalBuildLogs/&amp;quot; | head -20&amp;lt;/code&amp;gt;&lt;br /&gt;
To inspect the latest Cook log:&lt;br /&gt;
 &amp;lt;code&amp;gt;LOG=$(ls -t &amp;quot;$HOME/Library/Logs/Unreal Engine/LocalBuildLogs/&amp;quot;/Cook-*.txt | head -1)&lt;br /&gt;
 tail -n 120 &amp;quot;$LOG&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 8. Final notes ==&lt;br /&gt;
&lt;br /&gt;
* Don&amp;#039;t force the entire build environment into x86_64 using the old &amp;lt;code&amp;gt;arch -x86_64&amp;lt;/code&amp;gt; shell workaround.&lt;br /&gt;
* Don&amp;#039;t rebuild the Intel editor just because the game client targets Intel.&lt;br /&gt;
* Avoid running Xcode editor builds and Shipping builds simultaneously.&lt;br /&gt;
* Always verify both the engine and game-module architecture after rebuilding.&lt;br /&gt;
* The compilation phase can succeed even when the resulting editor cannot run.&lt;br /&gt;
* The ARM64 editor successfully progressed into static-mesh processing and Metal shader compilation after these fixes.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Resolution status:&amp;#039;&amp;#039;&amp;#039; The ARM64 editor and matching PlaneShift editor module successfully reached the cooking stage with the new Shipping flags.&lt;/div&gt;</summary>
		<author><name>Talad</name></author>
	</entry>
</feed>