Hi again, just as an extension. On the same M1, I’ve Ubuntu ARM64 running using Parallels VM.
Same issue: Host CPU Type detected as „x86_64“ and compilation stops at same file —> see below. Issue seems to be not specific to MacOS M1, but rather generic to ARM64 host systems. /Piet ————— AR (create): libdrivers.a bchlib_setup.o bchlib_teardown.o bchlib_read.o bchlib_write.o bchlib_cache.o bchlib_sem.o bchdev_register.o bchdev_unregister.o bchdev_driver.o ioe_dummy.o gpio.o gpio_lower_half.o loop.o losetup.o pipe.o fifo.o pipe_common.o serial.o serial_io.o vsyslog.o syslog_stream.o syslog_channel.o syslog_putc.o syslog_write.o syslog_force.o syslog_flush.o syslog_initialize.o syslog_device.o oneshot.o arch_alarm.o hid_parser.o dev_null.o dev_zero.o ramdisk.o mkrd.o make[1]: Leaving directory '/home/piet/Projects/NuttX/ptka/nuttx/drivers' IN: drivers/libdrivers.a -> staging/libdrivers.a make[1]: Entering directory '/home/piet/Projects/NuttX/ptka/nuttx/boards' CC: boardctl.c AR (create): libboards.a dummy.o boardctl.o make[1]: Leaving directory '/home/piet/Projects/NuttX/ptka/nuttx/boards' IN: boards/libboards.a -> staging/libboards.a make[1]: Entering directory '/home/piet/Projects/NuttX/ptka/nuttx/libs/libc' AS: machine/sim/arch_setjmp_arm.S machine/sim/arch_setjmp_arm.S: Assembler messages: machine/sim/arch_setjmp_arm.S:39: Error: unknown pseudo-op: `.syntax' machine/sim/arch_setjmp_arm.S:43: Error: operand 1 must be an integer register -- `mov ip,r0' machine/sim/arch_setjmp_arm.S:44: Error: unknown mnemonic `stmia' -- `stmia ip!,{v1,v2,v3,v4,v5,v6,sl,fp}' machine/sim/arch_setjmp_arm.S:45: Error: operand 1 must be an integer register -- `mov r2,sp' machine/sim/arch_setjmp_arm.S:46: Error: unknown mnemonic `stmia' -- `stmia ip!,{r2,lr}' machine/sim/arch_setjmp_arm.S:47: Error: operand 1 must be an integer register -- `mov r0,#0' machine/sim/arch_setjmp_arm.S:75: Error: unknown mnemonic `bx' -- `bx lr' machine/sim/arch_setjmp_arm.S:77: Error: unknown pseudo-op: `.syntax' machine/sim/arch_setjmp_arm.S:81: Error: operand 1 must be an integer register -- `mov ip,r0' machine/sim/arch_setjmp_arm.S:82: Error: operand 1 must be an SVE predicate register -- `movs r0,r1' machine/sim/arch_setjmp_arm.S:83: Error: unknown mnemonic `moveq' -- `moveq r0,#1' machine/sim/arch_setjmp_arm.S:84: Error: unknown mnemonic `ldmia' -- `ldmia ip!,{v1,v2,v3,v4,v5,v6,sl,fp}' machine/sim/arch_setjmp_arm.S:85: Error: unknown mnemonic `ldmia' -- `ldmia ip!,{r2,lr}' machine/sim/arch_setjmp_arm.S:103: Error: unknown mnemonic `bx' -- `bx lr' machine/sim/arch_setjmp_arm.S:86: Error: undefined symbol r2 used as an immediate value make[1]: *** [Makefile:130: bin/arch_setjmp_arm.o] Error 1 make[1]: Leaving directory '/home/piet/Projects/NuttX/ptka/nuttx/libs/libc' make: *** [tools/LibTargets.mk:168: libs/libc/libc.a] Error 2 ———— > Am 29.01.2022 um 19:00 schrieb Peter Kalbus <p...@mailbox.org.INVALID>: > > Config and log from my M1: > > —————————————— > > # > # This file is autogenerated: PLEASE DO NOT EDIT IT. > # > # You can use "make menuconfig" to make any modifications to the installed > .config file. > # You can then do "make savedefconfig" to generate a new defconfig file that > includes your > # modifications. > # > # CONFIG_NSH_CMDOPT_HEXDUMP is not set > CONFIG_ARCH="sim" > CONFIG_ARCH_BOARD="sim" > CONFIG_ARCH_BOARD_SIM=y > CONFIG_ARCH_CHIP="sim" > CONFIG_ARCH_SIM=y > CONFIG_BOARDCTL_APP_SYMTAB=y > CONFIG_BOARDCTL_POWEROFF=y > CONFIG_BOARD_LOOPSPERMSEC=0 > CONFIG_BOOT_RUNFROMEXTSRAM=y > CONFIG_BUILTIN=y > CONFIG_DEBUG_SYMBOLS=y > CONFIG_DEV_GPIO=y > CONFIG_DEV_LOOP=y > CONFIG_DEV_ZERO=y > CONFIG_EXAMPLES_GPIO=y > CONFIG_EXAMPLES_HELLO=y > CONFIG_FAT_LCNAMES=y > CONFIG_FAT_LFN=y > CONFIG_FSUTILS_PASSWD=y > CONFIG_FSUTILS_PASSWD_READONLY=y > CONFIG_FS_BINFS=y > CONFIG_FS_FAT=y > CONFIG_FS_PROCFS=y > CONFIG_FS_RAMMAP=y > CONFIG_FS_ROMFS=y > CONFIG_GPIO_LOWER_HALF=y > CONFIG_HOST_ARM=y > CONFIG_HOST_MACOS=y > CONFIG_IDLETHREAD_STACKSIZE=4096 > CONFIG_INIT_ENTRYPOINT="nsh_main" > CONFIG_IOEXPANDER=y > CONFIG_IOEXPANDER_DUMMY=y > CONFIG_LIBC_ENVPATH=y > CONFIG_LIBC_EXECFUNCS=y > CONFIG_LIBC_LOCALE=y > CONFIG_LIBC_LOCALE_CATALOG=y > CONFIG_LIBC_LOCALE_GETTEXT=y > CONFIG_NSH_ARCHINIT=y > CONFIG_NSH_ARCHROMFS=y > CONFIG_NSH_BUILTIN_APPS=y > CONFIG_NSH_CONSOLE_LOGIN=y > CONFIG_NSH_FATDEVNO=2 > CONFIG_NSH_FILE_APPS=y > CONFIG_NSH_MOTD=y > CONFIG_NSH_MOTD_STRING="MOTD: username=admin password=Administrator" > CONFIG_NSH_READLINE=y > CONFIG_NSH_ROMFSDEVNO=1 > CONFIG_NSH_ROMFSETC=y > CONFIG_PATH_INITIAL="/bin" > CONFIG_POSIX_SPAWN_PROXY_STACKSIZE=2048 > CONFIG_PSEUDOFS_ATTRIBUTES=y > CONFIG_PSEUDOFS_SOFTLINKS=y > CONFIG_READLINE_TABCOMPLETION=y > CONFIG_SCHED_HAVE_PARENT=y > CONFIG_SCHED_HPWORK=y > CONFIG_SCHED_ONEXIT=y > CONFIG_SCHED_WAITPID=y > CONFIG_SDCLONE_DISABLE=y > CONFIG_START_MONTH=6 > CONFIG_START_YEAR=2008 > CONFIG_SYSTEM_NSH=y > > —————————————— > > for dir in /Users/piet/Projects/NuttX/feature-sim-macos-m1-support/apps > sched drivers boards arch/sim/src fs binfmt libs/libc mm ; do \ > /Applications/Xcode.app/Contents/Developer/usr/bin/make -C $dir > EXTRAFLAGS="-D__KERNEL__ " depend || exit; \ > done > /Applications/Xcode.app/Contents/Developer/usr/bin/make -C > /Users/piet/Projects/NuttX/feature-sim-macos-m1-support/apps/builtin depend > APPDIR="/Users/piet/Projects/NuttX/feature-sim-macos-m1-support/apps" > make[2]: Nothing to be done for `depend'. > /Applications/Xcode.app/Contents/Developer/usr/bin/make -C > /Users/piet/Projects/NuttX/feature-sim-macos-m1-support/apps/examples/gpio > depend APPDIR="/Users/piet/Projects/NuttX/feature-sim-macos-m1-support/apps" > make[2]: Nothing to be done for `depend'. > /Applications/Xcode.app/Contents/Developer/usr/bin/make -C > /Users/piet/Projects/NuttX/feature-sim-macos-m1-support/apps/examples/hello > depend APPDIR="/Users/piet/Projects/NuttX/feature-sim-macos-m1-support/apps" > make[2]: Nothing to be done for `depend'. > /Applications/Xcode.app/Contents/Developer/usr/bin/make -C > /Users/piet/Projects/NuttX/feature-sim-macos-m1-support/apps/fsutils/mkfatfs > depend APPDIR="/Users/piet/Projects/NuttX/feature-sim-macos-m1-support/apps" > make[2]: Nothing to be done for `depend'. > /Applications/Xcode.app/Contents/Developer/usr/bin/make -C > /Users/piet/Projects/NuttX/feature-sim-macos-m1-support/apps/fsutils/passwd > depend APPDIR="/Users/piet/Projects/NuttX/feature-sim-macos-m1-support/apps" > make[2]: Nothing to be done for `depend'. > /Applications/Xcode.app/Contents/Developer/usr/bin/make -C > /Users/piet/Projects/NuttX/feature-sim-macos-m1-support/apps/nshlib depend > APPDIR="/Users/piet/Projects/NuttX/feature-sim-macos-m1-support/apps" > make[2]: Nothing to be done for `depend'. > /Applications/Xcode.app/Contents/Developer/usr/bin/make -C > /Users/piet/Projects/NuttX/feature-sim-macos-m1-support/apps/platform depend > APPDIR="/Users/piet/Projects/NuttX/feature-sim-macos-m1-support/apps" > make[2]: Nothing to be done for `depend'. > /Applications/Xcode.app/Contents/Developer/usr/bin/make -C > /Users/piet/Projects/NuttX/feature-sim-macos-m1-support/apps/system/nsh > depend APPDIR="/Users/piet/Projects/NuttX/feature-sim-macos-m1-support/apps" > make[2]: Nothing to be done for `depend'. > /Applications/Xcode.app/Contents/Developer/usr/bin/make -C > /Users/piet/Projects/NuttX/feature-sim-macos-m1-support/apps/system/readline > depend APPDIR="/Users/piet/Projects/NuttX/feature-sim-macos-m1-support/apps" > make[2]: Nothing to be done for `depend'. > touch .depend > make[1]: Nothing to be done for `depend'. > make[1]: Nothing to be done for `depend'. > make[1]: Nothing to be done for `depend'. > make[1]: Nothing to be done for `depend'. > make[1]: Nothing to be done for `depend'. > make[1]: Nothing to be done for `depend'. > make[1]: Nothing to be done for `depend'. > make[1]: Nothing to be done for `depend'. > /Applications/Xcode.app/Contents/Developer/usr/bin/make -C sched libsched.a > EXTRAFLAGS="-D__KERNEL__ " > make[1]: `libsched.a' is up to date. > /Applications/Xcode.app/Contents/Developer/usr/bin/make -C drivers > libdrivers.a EXTRAFLAGS="-D__KERNEL__ " > make[1]: `libdrivers.a' is up to date. > /Applications/Xcode.app/Contents/Developer/usr/bin/make -C boards libboards.a > EXTRAFLAGS="-D__KERNEL__ " > make[1]: `libboards.a' is up to date. > /Applications/Xcode.app/Contents/Developer/usr/bin/make -C libs/libc libc.a > EXTRAFLAGS="" > AS: machine/sim/arch_setjmp_arm.S > cc -c -Wall -Wstrict-prototypes -Wshadow -Wundef -g -fno-builtin > -fvisibility=hidden -fno-common -isystem > "/Users/piet/Projects/NuttX/feature-sim-macos-m1-support/nuttx/include" > -D__NuttX__ -U_AIX -U_WIN32 -U__APPLE__ -U__FreeBSD__ -U__NetBSD__ > -U__linux__ -U__sun__ -U__unix__ > -U__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ -pipe -D__ASSEMBLY__ > machine/sim/arch_setjmp_arm.S -o bin/arch_setjmp_arm.o > machine/sim/arch_setjmp_arm.S:38:1: error: unknown directive > .syntax unified > ^ > machine/sim/arch_setjmp_arm.S:40:1: error: unknown directive > .type setjmp,%function > ^ > machine/sim/arch_setjmp_arm.S:42:6: error: invalid operand for instruction > mov ip,r0 > ^ > machine/sim/arch_setjmp_arm.S:43:31: error: vector register expected > stmia ip!,{v1,v2,v3,v4,v5,v6,sl,fp} > ^ > machine/sim/arch_setjmp_arm.S:44:6: error: invalid operand for instruction > mov r2,sp > ^ > machine/sim/arch_setjmp_arm.S:45:13: error: vector register expected > stmia ip!,{r2,lr} > ^ > machine/sim/arch_setjmp_arm.S:46:6: error: invalid operand for instruction > mov r0,#0 > ^ > machine/sim/arch_setjmp_arm.S:48:4: error: unrecognized instruction mnemonic, > did you mean: b, bcax, bl, br, sb, tbx? > 3: bx lr > ^ > machine/sim/arch_setjmp_arm.S:50:1: error: unknown directive > .syntax unified > ^ > machine/sim/arch_setjmp_arm.S:52:1: error: unknown directive > .type longjmp,%function > ^ > machine/sim/arch_setjmp_arm.S:54:6: error: invalid operand for instruction > mov ip,r0 > ^ > machine/sim/arch_setjmp_arm.S:55:7: error: invalid operand for instruction > movs r0,r1 > ^ > machine/sim/arch_setjmp_arm.S:56:2: error: unrecognized instruction mnemonic, > did you mean: mov? > moveq r0,#1 > ^ > machine/sim/arch_setjmp_arm.S:57:32: error: vector register expected > ldmia ip!, {v1,v2,v3,v4,v5,v6,sl,fp} > ^ > machine/sim/arch_setjmp_arm.S:58:14: error: vector register expected > ldmia ip!, {r2,lr} > ^ > machine/sim/arch_setjmp_arm.S:59:9: error: expected compatible register or > logical immediate > mov sp,r2 > ^ > machine/sim/arch_setjmp_arm.S:61:4: error: unrecognized instruction mnemonic, > did you mean: b, bcax, bl, br, sb, tbx? > 3: bx lr > ^ > make[1]: *** [bin/arch_setjmp_arm.o] Error 1 > make: *** [libs/libc/libc.a] Error 2 > > > >> Am 29.01.2022 um 18:40 schrieb Peter Kalbus <p...@mailbox.org.INVALID>: >> >> Hi, >> >> I’m using NuttX on a M1 MacBook Air since a couple of months. >> I’ve no issues to get NuttX compiled for my RP2040 based targets. >> >> But I can confirm, that the Sim configuration sim:nsh not working. >> >> Currently, I see there are two issues: >> >> /1/ M1 „Host CPU Type“ is detected as x86_64, but not as „arm“ >> Workarround for this is, to set it manually in the configuration >> >> /2/ At least the following files are not compilable >> arch/sim/src/sim/up_vfork_arm.S >> <https://github.com/ptka/incubator-nuttx#diff-fd079323b0636ac4012f50afe8c5555656d7a760b0429f46188919fe7807f8a5> >> libs/libc/machine/sim/arch_setjmp_arm.S >> <https://github.com/ptka/incubator-nuttx#diff-cffded10274b4845aae8c75bd91550d140214585ea17d47f2cf01dd021a16abe> >> libs/libc/stdio/lib_libvsprintf.c >> <https://github.com/ptka/incubator-nuttx#diff-befc8e04ddb3722f024f65ffd7648aac1cb24846d2b80fff6328e3cb5862220f> >> >> The 2nd point could be related to a wrong compiler/assembler selected >> or the way, the compiler is invoked. In worst case, it’s there code itself. >> >> I would be very interested helping to find a solution on this topic. >> >> /Piet >> >>> Am 29.01.2022 um 17:33 schrieb Tomasz CEDRO <to...@cedro.info>: >>> >>> macOS is a BSD.. very close to FreeBSD: >>> 1. Use gmake. >>> 2. Make sure you have the right version of kconfig-frontends package >>> installed. If you installed it locally make sure path to your local >>> binary is in the first place. >>> >>> -- >>> CeDeROM, SQ7MHZ, http://www.tomek.cedro.info >> >