Mac M3 can't build

Hello, I’m new around here so I wan’t to apologize if I selected the wrong topic.

Yesterday I bought a Mac with an M3 chip, and when I tried building a fresh pio project I got some errors that I’ve never seen before.

I’m guessing it has to do with the M3 chip due to the “Bad cpu type in executable” message…

Someone encountered this before and can help me fix it?

Processing d1_mini (platform: espressif8266; board: d1_mini; framework: arduino)
-------------------------------------------------------------------------------------------------------------------------------------------------------------
Verbose mode can be enabled via `-v, --verbose` option
CONFIGURATION: https://docs.platformio.org/page/boards/espressif8266/d1_mini.html
PLATFORM: Espressif 8266 (4.2.1) > WeMos D1 R2 and mini
HARDWARE: ESP8266 80MHz, 80KB RAM, 4MB Flash
PACKAGES: 
 - framework-arduinoespressif8266 @ 3.30102.0 (3.1.2) 
 - tool-esptool @ 1.413.0 (4.13) 
 - tool-esptoolpy @ 1.30000.201119 (3.0.0) 
 - toolchain-xtensa @ 2.100300.220621 (10.3.0)
LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf
LDF Modes: Finder ~ chain, Compatibility ~ soft
Found 37 compatible libraries
Scanning dependencies...
No dependencies
Building in release mode
Compiling .pio/build/d1_mini/src/main.cpp.o
sh: /Users/martin/.platformio/packages/toolchain-xtensa/bin/xtensa-lx106-elf-g++: Bad CPU type in executable
Generating LD script .pio/build/d1_mini/ld/local.eagle.app.v6.common.ld
Archiving .pio/build/d1_mini/libFrameworkArduinoVariant.a
sh: /Users/martin/.platformio/packages/toolchain-xtensa/bin/xtensa-lx106-elf-gcc: Bad CPU type in executable
sh: /Users/martin/.platformio/packages/toolchain-xtensa/bin/xtensa-lx106-elf-ar: Bad CPU type in executable
Compiling .pio/build/d1_mini/FrameworkArduino/Crypto.cpp.o
sh: /Users/martin/.platformio/packages/toolchain-xtensa/bin/xtensa-lx106-elf-g++: Bad CPU type in executable
Compiling .pio/build/d1_mini/FrameworkArduino/Esp-frag.cpp.o
sh: /Users/martin/.platformio/packages/toolchain-xtensa/bin/xtensa-lx106-elf-g++: Bad CPU type in executable
Compiling .pio/build/d1_mini/FrameworkArduino/Esp-version.cpp.o
sh: /Users/martin/.platformio/packages/toolchain-xtensa/bin/xtensa-lx106-elf-g++: Bad CPU type in executable
Compiling .pio/build/d1_mini/FrameworkArduino/Esp.cpp.o
sh: /Users/martin/.platformio/packages/toolchain-xtensa/bin/xtensa-lx106-elf-g++: Bad CPU type in executable
Compiling .pio/build/d1_mini/FrameworkArduino/FS.cpp.o
Compiling .pio/build/d1_mini/FrameworkArduino/FSnoop.cpp.o
sh: /Users/martin/.platformio/packages/toolchain-xtensa/bin/xtensa-lx106-elf-g++: Bad CPU type in executable
sh: /Users/martin/.platformio/packages/toolchain-xtensa/bin/xtensa-lx106-elf-g++: Bad CPU type in executable
Compiling .pio/build/d1_mini/FrameworkArduino/FunctionalInterrupt.cpp.o
*** [.pio/build/d1_mini/src/main.cpp.o] Error 126
*** [.pio/build/d1_mini/ld/local.eagle.app.v6.common.ld] Error 126
*** [.pio/build/d1_mini/libFrameworkArduinoVariant.a] Error 126
*** [.pio/build/d1_mini/FrameworkArduino/Crypto.cpp.o] Error 126
*** [.pio/build/d1_mini/FrameworkArduino/Esp-frag.cpp.o] Error 126
*** [.pio/build/d1_mini/FrameworkArduino/Esp-version.cpp.o] Error 126
*** [.pio/build/d1_mini/FrameworkArduino/Esp.cpp.o] Error 126
*** [.pio/build/d1_mini/FrameworkArduino/FS.cpp.o] Error 126
*** [.pio/build/d1_mini/FrameworkArduino/FSnoop.cpp.o] Error 126
Compiling .pio/build/d1_mini/FrameworkArduino/HardwareSerial.cpp.o
sh: /Users/martin/.platformio/packages/toolchain-xtensa/bin/xtensa-lx106-elf-g++: Bad CPU type in executable
*** [.pio/build/d1_mini/FrameworkArduino/FunctionalInterrupt.cpp.o] Error 126
sh: /Users/martin/.platformio/packages/toolchain-xtensa/bin/xtensa-lx106-elf-g++: Bad CPU type in executable
*** [.pio/build/d1_mini/FrameworkArduino/HardwareSerial.cpp.o] Error 126

Did you install Rosetta to get x64 emulation? All the “Mac ARM” packages are x64 binaries and rely on that emulation, barely any binary is native ARM.

1 Like

That fix it!! Thank you, first time on ARM :sweat_smile: