Created PR to detect host CPU type: https://github.com/apache/incubator-nuttx/pull/5374 <https://github.com/apache/incubator-nuttx/pull/5374>
/Piet > Am 29.01.2022 um 19:12 schrieb Peter Kalbus <p...@mailbox.org>: > > 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 >> <mailto: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 >>> <mailto: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 >>> >>> <https://github.com/ptka/incubator-nuttx#diff-fd079323b0636ac4012f50afe8c5555656d7a760b0429f46188919fe7807f8a5>> >>> libs/libc/machine/sim/arch_setjmp_arm.S >>> <https://github.com/ptka/incubator-nuttx#diff-cffded10274b4845aae8c75bd91550d140214585ea17d47f2cf01dd021a16abe >>> >>> <https://github.com/ptka/incubator-nuttx#diff-cffded10274b4845aae8c75bd91550d140214585ea17d47f2cf01dd021a16abe>> >>> libs/libc/stdio/lib_libvsprintf.c >>> <https://github.com/ptka/incubator-nuttx#diff-befc8e04ddb3722f024f65ffd7648aac1cb24846d2b80fff6328e3cb5862220f >>> >>> <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 >>>> <mailto: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 <http://www.tomek.cedro.info/> >>> >> >