You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@nuttx.apache.org by Flavio de Castro Alves Filho <fl...@gmail.com> on 2022/01/29 13:49:51 UTC

Build Nuttx on MAC

Hello Guys,

I am trying to build NuttX on my MAC computer.

The computer is running Monterey MacOS version.

I followed the instructions from the website. I intend to build the simulator configuration.

Here are the messages from the terminal:

flavio@Flavios-MacBook-Pro nuttx % make distclean                 
make[2]: Nothing to be done for `clean'.
make[2]: Nothing to be done for `clean'.
make[2]: Nothing to be done for `clean'.
make[2]: Nothing to be done for `clean'.
make[2]: Nothing to be done for `clean'.
make[2]: Nothing to be done for `clean'.
make[2]: Nothing to be done for `clean'.
make[2]: Nothing to be done for `clean'.
make[2]: Nothing to be done for `clean'.
make[2]: Nothing to be done for `clean'.
make[2]: Nothing to be done for `clean'.
make[2]: Nothing to be done for `clean'.
make[2]: Nothing to be done for `clean'.
make[3]: Nothing to be done for `clean'.
make[2]: Nothing to be done for `clean'.
make[3]: Nothing to be done for `clean'.
make[3]: Nothing to be done for `clean'.
make[2]: Nothing to be done for `clean_context'.
flavio@Flavios-MacBook-Pro nuttx % ./tools/configure.sh -m sim:nsh
  Copy files
  Select CONFIG_HOST_MACOS=y
  Refreshing...
make[2]: Nothing to be done for `clean_context'.
CP: arch/dummy/Kconfig to /Users/flavio/mestrado/nuttx/nuttx/arch/dummy/dummy_kconfig
CP: boards/dummy/Kconfig to /Users/flavio/mestrado/nuttx/nuttx/boards/dummy/dummy_kconfig
LN: platform/board to /Users/flavio/mestrado/nuttx/apps/platform/dummy
LN: include/arch to arch/sim/include
LN: include/arch/board to /Users/flavio/mestrado/nuttx/nuttx/boards/sim/sim/sim/include
LN: drivers/platform to /Users/flavio/mestrado/nuttx/nuttx/drivers/dummy
LN: include/arch/chip to /Users/flavio/mestrado/nuttx/nuttx/arch/sim/include/sim
/Users/flavio/mestrado/nuttx/nuttx/tools/link.sh /Users/flavio/mestrado/nuttx/nuttx/arch/sim/include/sim include/arch/chip
LN: arch/sim/src/chip to /Users/flavio/mestrado/nuttx/nuttx/arch/sim/src/sim
LN: arch/sim/src/board to /Users/flavio/mestrado/nuttx/nuttx/boards/sim/sim/sim/src
touch .dirlinks
mkkconfig in /Users/flavio/mestrado/nuttx/apps/boot
mkkconfig in /Users/flavio/mestrado/nuttx/apps/canutils
mkkconfig in /Users/flavio/mestrado/nuttx/apps/crypto
mkkconfig in /Users/flavio/mestrado/nuttx/apps/examples
mkkconfig in /Users/flavio/mestrado/nuttx/apps/fsutils
mkkconfig in /Users/flavio/mestrado/nuttx/apps/gpsutils
mkkconfig in /Users/flavio/mestrado/nuttx/apps/graphics
mkkconfig in /Users/flavio/mestrado/nuttx/apps/industry
mkkconfig in /Users/flavio/mestrado/nuttx/apps/interpreters
mkkconfig in /Users/flavio/mestrado/nuttx/apps/math
mkkconfig in /Users/flavio/mestrado/nuttx/apps/mlearning
mkkconfig in /Users/flavio/mestrado/nuttx/apps/netutils
mkkconfig in /Users/flavio/mestrado/nuttx/apps/system/libuv
mkkconfig in /Users/flavio/mestrado/nuttx/apps/system
mkkconfig in /Users/flavio/mestrado/nuttx/apps/testing
mkkconfig in /Users/flavio/mestrado/nuttx/apps/wireless/bluetooth
mkkconfig in /Users/flavio/mestrado/nuttx/apps/wireless/ieee802154
mkkconfig in /Users/flavio/mestrado/nuttx/apps/wireless
mkkconfig in /Users/flavio/mestrado/nuttx/apps
arch/arm/src/imxrt/Kconfig:1504: syntax error
arch/arm/src/imxrt/Kconfig:1503: invalid option
arch/arm/src/stm32l4/Kconfig:5347: syntax error
arch/arm/src/stm32l4/Kconfig:5296: missing end statement for this entry
arch/arm/src/stm32l4/Kconfig:5164: missing end statement for this entry
arch/arm/src/stm32l4/Kconfig:8: missing end statement for this entry
arch/arm/Kconfig:1178: missing end statement for this entry
arch/arm/Kconfig:7: missing end statement for this entry
Kconfig:1957: missing end statement for this entry
arch/arm/src/stm32l4/Kconfig:5346: invalid statement
arch/arm/src/stm32l4/Kconfig:5356: unexpected end statement
arch/arm/src/stm32l4/Kconfig:5359: syntax error
arch/arm/src/stm32l4/Kconfig:5358: invalid statement
arch/arm/src/stm32l4/Kconfig:5368: unexpected end statement
arch/arm/src/stm32l4/Kconfig:5371: syntax error
arch/arm/src/stm32l4/Kconfig:5370: invalid statement
arch/arm/src/stm32l4/Kconfig:5380: unexpected end statement
arch/arm/src/stm32l4/Kconfig:5382: unexpected end statement
arch/arm/src/stm32l4/Kconfig:5384: unexpected end statement
arch/arm/src/stm32l4/Kconfig:6253: unexpected end statement
arch/arm/Kconfig:1179: unexpected end statement
arch/arm/Kconfig:1199: unexpected end statement
Kconfig:1959: unexpected end statement
boards/sim/sim/sim/Kconfig:58: syntax error
boards/sim/sim/sim/Kconfig:57: invalid option
drivers/note/Kconfig:80: syntax error
drivers/note/Kconfig:79: invalid option
drivers/sensors/Kconfig:308: syntax error
drivers/sensors/Kconfig:307: invalid option
drivers/syslog/Kconfig:317: syntax error
drivers/syslog/Kconfig:316: invalid option
make: *** [olddefconfig] Error 1
ERROR: failed to refresh


I would like to ask for help to figure out how to solve this issue.

Best regards,

Flavio


Re: Build Nuttx on MAC / ARM64 Ubuntu

Posted by Peter Kalbus <pt...@mailbox.org.INVALID>.
Hi,

please check https://github.com/apache/incubator-nuttx/pull/5401 <https://github.com/apache/incubator-nuttx/pull/5401> with initial support.

Feedback is highly appreciated.

/Piet


> Am 02.02.2022 um 08:57 schrieb Peter Kalbus <pt...@mailbox.org.INVALID>:
> 
> Hi Flavio,
> 
> let me share my latest findings.
> 
> I’m down to setjmp/longjmp, which needs to be adapted to AARCH64. A preliminary version is available, but not fully working, yet.
> 
> I can share my code, if you want to dig into that, too.
> 
> /Piet
> 
> 
> 
>> Am 31.01.2022 um 11:10 schrieb Flavio Castro Alves Filho <fl...@gmail.com>:
>> 
>> Hi Peter,
>> 
>> Yes, I intend to use it for simulation only.
>> 
>> It is for a personal project. I already have a Ubuntu based desktop
>> machine, which works fine. But for mobility, if I could work on my MAC, it
>> would be better.
>> 
>> I will try to figure out what is going on.
>> 
>> Thank you for all your help.
>> 
>> Best regards,
>> 
>> Flavio
>> 
>> 
>> Em dom., 30 de jan. de 2022 10:28, Kalbus, Peter <pt...@mailbox.org.invalid>
>> escreveu:
>> 
>>> Hi,
>>> 
>>> are you only interested in the simulation or also have a real target in
>>> mind?
>>> 
>>> Maybe you can try to get it working for your real target instead of the
>>> simulation. The simulation is definitely not working overall on M1 based
>>> host systems yet.
>>> 
>>> I‘m using RP2040 based targets and they are working using my M1 based host
>>> system.
>>> 
>>> /Piet
>>> 
>>> 
>>>> Am 30.01.2022 um 13:22 schrieb Flavio de Castro Alves Filho <
>>> flavio.alves@gmail.com>:
>>>> 
>>>> That’s what I did.
>>>> 
>>>> So it is not the problem.
>>>> 
>>>>> On 29 Jan 2022, at 19:43, Peter Kalbus <pt...@mailbox.org.INVALID>
>>> wrote:
>>>>> 
>>>>> Hi Flavio,
>>>>> 
>>>>> there’s an explanation in NuttX documentation:
>>> https://nuttx.apache.org/docs/latest/quickstart/install.html#kconfig-frontend
>>> <
>>> https://nuttx.apache.org/docs/latest/quickstart/install.html#kconfig-frontend
>>>> 
>>>>> Check for the „MacOS, Ubuntu 18.04 LTS and earlier“ tab.
>>>>> 
>>>>> It’s a couple of months back, as I did this … but I’m quite sure, that
>>> I followed that explanation.
>>>>> 
>>>>> /Piet
>>>>> 
>>>>> 
>>>>>>> Am 29.01.2022 um 23:17 schrieb Flavio de Castro Alves Filho <
>>> flavio.alves@gmail.com>:
>>>>>> 
>>>>>> Hi Peter,
>>>>>> 
>>>>>> How did you install kconfig-frontends on your machine?
>>>>>> 
>>>>>> Best regards,
>>>>>> 
>>>>>> Flavio
>>>>>> 
>>>>>>> On 29 Jan 2022, at 18:13, Kalbus, Peter <pt...@mailbox.org.INVALID>
>>> wrote:
>>>>>>> 
>>>>>>> Hi,
>>>>>>> 
>>>>>>> I know, it‘s not complete. But you should get a different error … I
>>> see, ARM based CPU is now detected … next step will take longer.
>>>>>>> 
>>>>>>> /Piet
>>>>>>> 
>>>>>>>> Am 29.01.2022 um 22:03 schrieb Flavio de Castro Alves Filho <
>>> flavio.alves@gmail.com>:
>>>>>>>> 
>>>>>>>> Hello Guys. Thank you for your fast response.
>>>>>>>> 
>>>>>>>> @Alan, indeed it is an ARM-based Mac.
>>>>>>>> 
>>>>>>>> @Peter, I added your patch in my NuttX project and ran again the
>>> configuration, but without success yet :-(
>>>>>>>> 
>>>>>>>> Here is the output
>>>>>>>> 
>>>>>>>> flavio@Flavios-MacBook-Pro nuttx % tools/configure.sh -m sim:nsh
>>>>>>>> Copy files
>>>>>>>> Select CONFIG_HOST_MACOS=y
>>>>>>>> Select CONFIG_HOST_ARM=y
>>>>>>>> Refreshing...
>>>>>>>> make[2]: Nothing to be done for `clean_context'.
>>>>>>>> CP: arch/dummy/Kconfig to
>>> /Users/flavio/mestrado/nuttx/nuttx/arch/dummy/dummy_kconfig
>>>>>>>> CP: boards/dummy/Kconfig to
>>> /Users/flavio/mestrado/nuttx/nuttx/boards/dummy/dummy_kconfig
>>>>>>>> LN: platform/board to
>>> /Users/flavio/mestrado/nuttx/apps/platform/dummy
>>>>>>>> LN: include/arch to arch/sim/include
>>>>>>>> LN: include/arch/board to
>>> /Users/flavio/mestrado/nuttx/nuttx/boards/sim/sim/sim/include
>>>>>>>> LN: drivers/platform to
>>> /Users/flavio/mestrado/nuttx/nuttx/drivers/dummy
>>>>>>>> LN: include/arch/chip to
>>> /Users/flavio/mestrado/nuttx/nuttx/arch/sim/include/sim
>>>>>>>> /Users/flavio/mestrado/nuttx/nuttx/tools/link.sh
>>> /Users/flavio/mestrado/nuttx/nuttx/arch/sim/include/sim include/arch/chip
>>>>>>>> LN: arch/sim/src/chip to
>>> /Users/flavio/mestrado/nuttx/nuttx/arch/sim/src/sim
>>>>>>>> LN: arch/sim/src/board to
>>> /Users/flavio/mestrado/nuttx/nuttx/boards/sim/sim/sim/src
>>>>>>>> touch .dirlinks
>>>>>>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/boot
>>>>>>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/canutils
>>>>>>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/crypto
>>>>>>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/examples
>>>>>>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/fsutils
>>>>>>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/gpsutils
>>>>>>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/graphics
>>>>>>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/industry
>>>>>>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/interpreters
>>>>>>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/math
>>>>>>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/mlearning
>>>>>>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/netutils
>>>>>>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/system/libuv
>>>>>>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/system
>>>>>>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/testing
>>>>>>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/wireless/bluetooth
>>>>>>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/wireless/ieee802154
>>>>>>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/wireless
>>>>>>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps
>>>>>>>> arch/arm/src/imxrt/Kconfig:1504: syntax error
>>>>>>>> arch/arm/src/imxrt/Kconfig:1503: invalid option
>>>>>>>> arch/arm/src/stm32l4/Kconfig:5347: syntax error
>>>>>>>> arch/arm/src/stm32l4/Kconfig:5296: missing end statement for this
>>> entry
>>>>>>>> arch/arm/src/stm32l4/Kconfig:5164: missing end statement for this
>>> entry
>>>>>>>> arch/arm/src/stm32l4/Kconfig:8: missing end statement for this entry
>>>>>>>> arch/arm/Kconfig:1178: missing end statement for this entry
>>>>>>>> arch/arm/Kconfig:7: missing end statement for this entry
>>>>>>>> Kconfig:1957: missing end statement for this entry
>>>>>>>> arch/arm/src/stm32l4/Kconfig:5346: invalid statement
>>>>>>>> arch/arm/src/stm32l4/Kconfig:5356: unexpected end statement
>>>>>>>> arch/arm/src/stm32l4/Kconfig:5359: syntax error
>>>>>>>> arch/arm/src/stm32l4/Kconfig:5358: invalid statement
>>>>>>>> arch/arm/src/stm32l4/Kconfig:5368: unexpected end statement
>>>>>>>> arch/arm/src/stm32l4/Kconfig:5371: syntax error
>>>>>>>> arch/arm/src/stm32l4/Kconfig:5370: invalid statement
>>>>>>>> arch/arm/src/stm32l4/Kconfig:5380: unexpected end statement
>>>>>>>> arch/arm/src/stm32l4/Kconfig:5382: unexpected end statement
>>>>>>>> arch/arm/src/stm32l4/Kconfig:5384: unexpected end statement
>>>>>>>> arch/arm/src/stm32l4/Kconfig:6253: unexpected end statement
>>>>>>>> arch/arm/Kconfig:1179: unexpected end statement
>>>>>>>> arch/arm/Kconfig:1199: unexpected end statement
>>>>>>>> Kconfig:1959: unexpected end statement
>>>>>>>> boards/sim/sim/sim/Kconfig:58: syntax error
>>>>>>>> boards/sim/sim/sim/Kconfig:57: invalid option
>>>>>>>> drivers/note/Kconfig:80: syntax error
>>>>>>>> drivers/note/Kconfig:79: invalid option
>>>>>>>> drivers/sensors/Kconfig:308: syntax error
>>>>>>>> drivers/sensors/Kconfig:307: invalid option
>>>>>>>> drivers/syslog/Kconfig:317: syntax error
>>>>>>>> drivers/syslog/Kconfig:316: invalid option
>>>>>>>> make: *** [olddefconfig] Error 1
>>>>>>>> ERROR: failed to refresh
>>>>>>>> flavio@Flavios-MacBook-Pro nuttx %
>>>>>>>> 
>>>>>>>> 
>>>>>>>> Is there any missing requirement from my environment?
>>>>>>>> 
>>>>>>>> How do I implement the manual architecture setup? I’m afraid that it
>>> won’t work either …
>>>>>>>> 
>>>>>>>> Best regards,
>>>>>>>> 
>>>>>>>> Flavio
>>>>>>>> 
>>>>>>>> 
>>>>>>>>> On 29 Jan 2022, at 17:53, Peter Kalbus <pt...@mailbox.org.INVALID>
>>> wrote:
>>>>>>>>> 
>>>>>>>>> Created PR to detect host CPU type:
>>> https://github.com/apache/incubator-nuttx/pull/5374 <
>>> https://github.com/apache/incubator-nuttx/pull/5374> <
>>> 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 <ptka@mailbox.org
>>> <ma...@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
>>> <ptka@mailbox.org.INVALID <ma...@mailbox.org.INVALID> <mailto:
>>> ptka@mailbox.org.INVALID <ma...@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
>>> <ptka@mailbox.org.INVALID <ma...@mailbox.org.INVALID> <mailto:
>>> ptka@mailbox.org.INVALID <ma...@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>
>>> <
>>> 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>
>>> <
>>> 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>
>>> <
>>> 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 <tomek@cedro.info
>>> <ma...@cedro.info> <mailto:tomek@cedro.info <mailto:
>>> tomek@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/> <http://www.tomek.cedro.info/ <
>>> http://www.tomek.cedro.info/>>
>>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> 
> 


Re: Build Nuttx on MAC / ARM64 Ubuntu

Posted by Peter Kalbus <pt...@mailbox.org.INVALID>.
Hi Flavio,

let me share my latest findings.

I’m down to setjmp/longjmp, which needs to be adapted to AARCH64. A preliminary version is available, but not fully working, yet.

I can share my code, if you want to dig into that, too.

/Piet



> Am 31.01.2022 um 11:10 schrieb Flavio Castro Alves Filho <fl...@gmail.com>:
> 
> Hi Peter,
> 
> Yes, I intend to use it for simulation only.
> 
> It is for a personal project. I already have a Ubuntu based desktop
> machine, which works fine. But for mobility, if I could work on my MAC, it
> would be better.
> 
> I will try to figure out what is going on.
> 
> Thank you for all your help.
> 
> Best regards,
> 
> Flavio
> 
> 
> Em dom., 30 de jan. de 2022 10:28, Kalbus, Peter <pt...@mailbox.org.invalid>
> escreveu:
> 
>> Hi,
>> 
>> are you only interested in the simulation or also have a real target in
>> mind?
>> 
>> Maybe you can try to get it working for your real target instead of the
>> simulation. The simulation is definitely not working overall on M1 based
>> host systems yet.
>> 
>> I‘m using RP2040 based targets and they are working using my M1 based host
>> system.
>> 
>> /Piet
>> 
>> 
>>> Am 30.01.2022 um 13:22 schrieb Flavio de Castro Alves Filho <
>> flavio.alves@gmail.com>:
>>> 
>>> That’s what I did.
>>> 
>>> So it is not the problem.
>>> 
>>>> On 29 Jan 2022, at 19:43, Peter Kalbus <pt...@mailbox.org.INVALID>
>> wrote:
>>>> 
>>>> Hi Flavio,
>>>> 
>>>> there’s an explanation in NuttX documentation:
>> https://nuttx.apache.org/docs/latest/quickstart/install.html#kconfig-frontend
>> <
>> https://nuttx.apache.org/docs/latest/quickstart/install.html#kconfig-frontend
>>> 
>>>> Check for the „MacOS, Ubuntu 18.04 LTS and earlier“ tab.
>>>> 
>>>> It’s a couple of months back, as I did this … but I’m quite sure, that
>> I followed that explanation.
>>>> 
>>>> /Piet
>>>> 
>>>> 
>>>>>> Am 29.01.2022 um 23:17 schrieb Flavio de Castro Alves Filho <
>> flavio.alves@gmail.com>:
>>>>> 
>>>>> Hi Peter,
>>>>> 
>>>>> How did you install kconfig-frontends on your machine?
>>>>> 
>>>>> Best regards,
>>>>> 
>>>>> Flavio
>>>>> 
>>>>>> On 29 Jan 2022, at 18:13, Kalbus, Peter <pt...@mailbox.org.INVALID>
>> wrote:
>>>>>> 
>>>>>> Hi,
>>>>>> 
>>>>>> I know, it‘s not complete. But you should get a different error … I
>> see, ARM based CPU is now detected … next step will take longer.
>>>>>> 
>>>>>> /Piet
>>>>>> 
>>>>>>> Am 29.01.2022 um 22:03 schrieb Flavio de Castro Alves Filho <
>> flavio.alves@gmail.com>:
>>>>>>> 
>>>>>>> Hello Guys. Thank you for your fast response.
>>>>>>> 
>>>>>>> @Alan, indeed it is an ARM-based Mac.
>>>>>>> 
>>>>>>> @Peter, I added your patch in my NuttX project and ran again the
>> configuration, but without success yet :-(
>>>>>>> 
>>>>>>> Here is the output
>>>>>>> 
>>>>>>> flavio@Flavios-MacBook-Pro nuttx % tools/configure.sh -m sim:nsh
>>>>>>> Copy files
>>>>>>> Select CONFIG_HOST_MACOS=y
>>>>>>> Select CONFIG_HOST_ARM=y
>>>>>>> Refreshing...
>>>>>>> make[2]: Nothing to be done for `clean_context'.
>>>>>>> CP: arch/dummy/Kconfig to
>> /Users/flavio/mestrado/nuttx/nuttx/arch/dummy/dummy_kconfig
>>>>>>> CP: boards/dummy/Kconfig to
>> /Users/flavio/mestrado/nuttx/nuttx/boards/dummy/dummy_kconfig
>>>>>>> LN: platform/board to
>> /Users/flavio/mestrado/nuttx/apps/platform/dummy
>>>>>>> LN: include/arch to arch/sim/include
>>>>>>> LN: include/arch/board to
>> /Users/flavio/mestrado/nuttx/nuttx/boards/sim/sim/sim/include
>>>>>>> LN: drivers/platform to
>> /Users/flavio/mestrado/nuttx/nuttx/drivers/dummy
>>>>>>> LN: include/arch/chip to
>> /Users/flavio/mestrado/nuttx/nuttx/arch/sim/include/sim
>>>>>>> /Users/flavio/mestrado/nuttx/nuttx/tools/link.sh
>> /Users/flavio/mestrado/nuttx/nuttx/arch/sim/include/sim include/arch/chip
>>>>>>> LN: arch/sim/src/chip to
>> /Users/flavio/mestrado/nuttx/nuttx/arch/sim/src/sim
>>>>>>> LN: arch/sim/src/board to
>> /Users/flavio/mestrado/nuttx/nuttx/boards/sim/sim/sim/src
>>>>>>> touch .dirlinks
>>>>>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/boot
>>>>>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/canutils
>>>>>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/crypto
>>>>>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/examples
>>>>>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/fsutils
>>>>>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/gpsutils
>>>>>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/graphics
>>>>>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/industry
>>>>>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/interpreters
>>>>>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/math
>>>>>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/mlearning
>>>>>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/netutils
>>>>>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/system/libuv
>>>>>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/system
>>>>>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/testing
>>>>>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/wireless/bluetooth
>>>>>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/wireless/ieee802154
>>>>>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/wireless
>>>>>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps
>>>>>>> arch/arm/src/imxrt/Kconfig:1504: syntax error
>>>>>>> arch/arm/src/imxrt/Kconfig:1503: invalid option
>>>>>>> arch/arm/src/stm32l4/Kconfig:5347: syntax error
>>>>>>> arch/arm/src/stm32l4/Kconfig:5296: missing end statement for this
>> entry
>>>>>>> arch/arm/src/stm32l4/Kconfig:5164: missing end statement for this
>> entry
>>>>>>> arch/arm/src/stm32l4/Kconfig:8: missing end statement for this entry
>>>>>>> arch/arm/Kconfig:1178: missing end statement for this entry
>>>>>>> arch/arm/Kconfig:7: missing end statement for this entry
>>>>>>> Kconfig:1957: missing end statement for this entry
>>>>>>> arch/arm/src/stm32l4/Kconfig:5346: invalid statement
>>>>>>> arch/arm/src/stm32l4/Kconfig:5356: unexpected end statement
>>>>>>> arch/arm/src/stm32l4/Kconfig:5359: syntax error
>>>>>>> arch/arm/src/stm32l4/Kconfig:5358: invalid statement
>>>>>>> arch/arm/src/stm32l4/Kconfig:5368: unexpected end statement
>>>>>>> arch/arm/src/stm32l4/Kconfig:5371: syntax error
>>>>>>> arch/arm/src/stm32l4/Kconfig:5370: invalid statement
>>>>>>> arch/arm/src/stm32l4/Kconfig:5380: unexpected end statement
>>>>>>> arch/arm/src/stm32l4/Kconfig:5382: unexpected end statement
>>>>>>> arch/arm/src/stm32l4/Kconfig:5384: unexpected end statement
>>>>>>> arch/arm/src/stm32l4/Kconfig:6253: unexpected end statement
>>>>>>> arch/arm/Kconfig:1179: unexpected end statement
>>>>>>> arch/arm/Kconfig:1199: unexpected end statement
>>>>>>> Kconfig:1959: unexpected end statement
>>>>>>> boards/sim/sim/sim/Kconfig:58: syntax error
>>>>>>> boards/sim/sim/sim/Kconfig:57: invalid option
>>>>>>> drivers/note/Kconfig:80: syntax error
>>>>>>> drivers/note/Kconfig:79: invalid option
>>>>>>> drivers/sensors/Kconfig:308: syntax error
>>>>>>> drivers/sensors/Kconfig:307: invalid option
>>>>>>> drivers/syslog/Kconfig:317: syntax error
>>>>>>> drivers/syslog/Kconfig:316: invalid option
>>>>>>> make: *** [olddefconfig] Error 1
>>>>>>> ERROR: failed to refresh
>>>>>>> flavio@Flavios-MacBook-Pro nuttx %
>>>>>>> 
>>>>>>> 
>>>>>>> Is there any missing requirement from my environment?
>>>>>>> 
>>>>>>> How do I implement the manual architecture setup? I’m afraid that it
>> won’t work either …
>>>>>>> 
>>>>>>> Best regards,
>>>>>>> 
>>>>>>> Flavio
>>>>>>> 
>>>>>>> 
>>>>>>>> On 29 Jan 2022, at 17:53, Peter Kalbus <pt...@mailbox.org.INVALID>
>> wrote:
>>>>>>>> 
>>>>>>>> Created PR to detect host CPU type:
>> https://github.com/apache/incubator-nuttx/pull/5374 <
>> https://github.com/apache/incubator-nuttx/pull/5374> <
>> 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 <ptka@mailbox.org
>> <ma...@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
>> <ptka@mailbox.org.INVALID <ma...@mailbox.org.INVALID> <mailto:
>> ptka@mailbox.org.INVALID <ma...@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
>> <ptka@mailbox.org.INVALID <ma...@mailbox.org.INVALID> <mailto:
>> ptka@mailbox.org.INVALID <ma...@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>
>> <
>> 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>
>> <
>> 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>
>> <
>> 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 <tomek@cedro.info
>> <ma...@cedro.info> <mailto:tomek@cedro.info <mailto:
>> tomek@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/> <http://www.tomek.cedro.info/ <
>> http://www.tomek.cedro.info/>>
>>>>>>> 
>>>>> 
>>>> 
>>> 
>> 


Re: Build Nuttx on MAC / ARM64 Ubuntu

Posted by Flavio Castro Alves Filho <fl...@gmail.com>.
Hi Peter,

Yes, I intend to use it for simulation only.

It is for a personal project. I already have a Ubuntu based desktop
machine, which works fine. But for mobility, if I could work on my MAC, it
would be better.

I will try to figure out what is going on.

Thank you for all your help.

Best regards,

Flavio


Em dom., 30 de jan. de 2022 10:28, Kalbus, Peter <pt...@mailbox.org.invalid>
escreveu:

> Hi,
>
> are you only interested in the simulation or also have a real target in
> mind?
>
> Maybe you can try to get it working for your real target instead of the
> simulation. The simulation is definitely not working overall on M1 based
> host systems yet.
>
> I‘m using RP2040 based targets and they are working using my M1 based host
> system.
>
> /Piet
>
>
> > Am 30.01.2022 um 13:22 schrieb Flavio de Castro Alves Filho <
> flavio.alves@gmail.com>:
> >
> > That’s what I did.
> >
> > So it is not the problem.
> >
> >> On 29 Jan 2022, at 19:43, Peter Kalbus <pt...@mailbox.org.INVALID>
> wrote:
> >>
> >> Hi Flavio,
> >>
> >> there’s an explanation in NuttX documentation:
> https://nuttx.apache.org/docs/latest/quickstart/install.html#kconfig-frontend
> <
> https://nuttx.apache.org/docs/latest/quickstart/install.html#kconfig-frontend
> >
> >> Check for the „MacOS, Ubuntu 18.04 LTS and earlier“ tab.
> >>
> >> It’s a couple of months back, as I did this … but I’m quite sure, that
> I followed that explanation.
> >>
> >> /Piet
> >>
> >>
> >>>> Am 29.01.2022 um 23:17 schrieb Flavio de Castro Alves Filho <
> flavio.alves@gmail.com>:
> >>>
> >>> Hi Peter,
> >>>
> >>> How did you install kconfig-frontends on your machine?
> >>>
> >>> Best regards,
> >>>
> >>> Flavio
> >>>
> >>>> On 29 Jan 2022, at 18:13, Kalbus, Peter <pt...@mailbox.org.INVALID>
> wrote:
> >>>>
> >>>> Hi,
> >>>>
> >>>> I know, it‘s not complete. But you should get a different error … I
> see, ARM based CPU is now detected … next step will take longer.
> >>>>
> >>>> /Piet
> >>>>
> >>>>> Am 29.01.2022 um 22:03 schrieb Flavio de Castro Alves Filho <
> flavio.alves@gmail.com>:
> >>>>>
> >>>>> Hello Guys. Thank you for your fast response.
> >>>>>
> >>>>> @Alan, indeed it is an ARM-based Mac.
> >>>>>
> >>>>> @Peter, I added your patch in my NuttX project and ran again the
> configuration, but without success yet :-(
> >>>>>
> >>>>> Here is the output
> >>>>>
> >>>>> flavio@Flavios-MacBook-Pro nuttx % tools/configure.sh -m sim:nsh
> >>>>> Copy files
> >>>>> Select CONFIG_HOST_MACOS=y
> >>>>> Select CONFIG_HOST_ARM=y
> >>>>> Refreshing...
> >>>>> make[2]: Nothing to be done for `clean_context'.
> >>>>> CP: arch/dummy/Kconfig to
> /Users/flavio/mestrado/nuttx/nuttx/arch/dummy/dummy_kconfig
> >>>>> CP: boards/dummy/Kconfig to
> /Users/flavio/mestrado/nuttx/nuttx/boards/dummy/dummy_kconfig
> >>>>> LN: platform/board to
> /Users/flavio/mestrado/nuttx/apps/platform/dummy
> >>>>> LN: include/arch to arch/sim/include
> >>>>> LN: include/arch/board to
> /Users/flavio/mestrado/nuttx/nuttx/boards/sim/sim/sim/include
> >>>>> LN: drivers/platform to
> /Users/flavio/mestrado/nuttx/nuttx/drivers/dummy
> >>>>> LN: include/arch/chip to
> /Users/flavio/mestrado/nuttx/nuttx/arch/sim/include/sim
> >>>>> /Users/flavio/mestrado/nuttx/nuttx/tools/link.sh
> /Users/flavio/mestrado/nuttx/nuttx/arch/sim/include/sim include/arch/chip
> >>>>> LN: arch/sim/src/chip to
> /Users/flavio/mestrado/nuttx/nuttx/arch/sim/src/sim
> >>>>> LN: arch/sim/src/board to
> /Users/flavio/mestrado/nuttx/nuttx/boards/sim/sim/sim/src
> >>>>> touch .dirlinks
> >>>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/boot
> >>>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/canutils
> >>>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/crypto
> >>>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/examples
> >>>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/fsutils
> >>>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/gpsutils
> >>>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/graphics
> >>>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/industry
> >>>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/interpreters
> >>>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/math
> >>>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/mlearning
> >>>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/netutils
> >>>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/system/libuv
> >>>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/system
> >>>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/testing
> >>>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/wireless/bluetooth
> >>>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/wireless/ieee802154
> >>>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/wireless
> >>>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps
> >>>>> arch/arm/src/imxrt/Kconfig:1504: syntax error
> >>>>> arch/arm/src/imxrt/Kconfig:1503: invalid option
> >>>>> arch/arm/src/stm32l4/Kconfig:5347: syntax error
> >>>>> arch/arm/src/stm32l4/Kconfig:5296: missing end statement for this
> entry
> >>>>> arch/arm/src/stm32l4/Kconfig:5164: missing end statement for this
> entry
> >>>>> arch/arm/src/stm32l4/Kconfig:8: missing end statement for this entry
> >>>>> arch/arm/Kconfig:1178: missing end statement for this entry
> >>>>> arch/arm/Kconfig:7: missing end statement for this entry
> >>>>> Kconfig:1957: missing end statement for this entry
> >>>>> arch/arm/src/stm32l4/Kconfig:5346: invalid statement
> >>>>> arch/arm/src/stm32l4/Kconfig:5356: unexpected end statement
> >>>>> arch/arm/src/stm32l4/Kconfig:5359: syntax error
> >>>>> arch/arm/src/stm32l4/Kconfig:5358: invalid statement
> >>>>> arch/arm/src/stm32l4/Kconfig:5368: unexpected end statement
> >>>>> arch/arm/src/stm32l4/Kconfig:5371: syntax error
> >>>>> arch/arm/src/stm32l4/Kconfig:5370: invalid statement
> >>>>> arch/arm/src/stm32l4/Kconfig:5380: unexpected end statement
> >>>>> arch/arm/src/stm32l4/Kconfig:5382: unexpected end statement
> >>>>> arch/arm/src/stm32l4/Kconfig:5384: unexpected end statement
> >>>>> arch/arm/src/stm32l4/Kconfig:6253: unexpected end statement
> >>>>> arch/arm/Kconfig:1179: unexpected end statement
> >>>>> arch/arm/Kconfig:1199: unexpected end statement
> >>>>> Kconfig:1959: unexpected end statement
> >>>>> boards/sim/sim/sim/Kconfig:58: syntax error
> >>>>> boards/sim/sim/sim/Kconfig:57: invalid option
> >>>>> drivers/note/Kconfig:80: syntax error
> >>>>> drivers/note/Kconfig:79: invalid option
> >>>>> drivers/sensors/Kconfig:308: syntax error
> >>>>> drivers/sensors/Kconfig:307: invalid option
> >>>>> drivers/syslog/Kconfig:317: syntax error
> >>>>> drivers/syslog/Kconfig:316: invalid option
> >>>>> make: *** [olddefconfig] Error 1
> >>>>> ERROR: failed to refresh
> >>>>> flavio@Flavios-MacBook-Pro nuttx %
> >>>>>
> >>>>>
> >>>>> Is there any missing requirement from my environment?
> >>>>>
> >>>>> How do I implement the manual architecture setup? I’m afraid that it
> won’t work either …
> >>>>>
> >>>>> Best regards,
> >>>>>
> >>>>> Flavio
> >>>>>
> >>>>>
> >>>>>> On 29 Jan 2022, at 17:53, Peter Kalbus <pt...@mailbox.org.INVALID>
> wrote:
> >>>>>>
> >>>>>> Created PR to detect host CPU type:
> https://github.com/apache/incubator-nuttx/pull/5374 <
> https://github.com/apache/incubator-nuttx/pull/5374> <
> 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 <ptka@mailbox.org
> <ma...@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
> <ptka@mailbox.org.INVALID <ma...@mailbox.org.INVALID> <mailto:
> ptka@mailbox.org.INVALID <ma...@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
> <ptka@mailbox.org.INVALID <ma...@mailbox.org.INVALID> <mailto:
> ptka@mailbox.org.INVALID <ma...@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>
> <
> 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>
> <
> 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>
> <
> 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 <tomek@cedro.info
> <ma...@cedro.info> <mailto:tomek@cedro.info <mailto:
> tomek@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/> <http://www.tomek.cedro.info/ <
> http://www.tomek.cedro.info/>>
> >>>>>
> >>>
> >>
> >
>

Re: Build Nuttx on MAC / ARM64 Ubuntu

Posted by "Kalbus, Peter" <pt...@mailbox.org.INVALID>.
Hi,

are you only interested in the simulation or also have a real target in mind?

Maybe you can try to get it working for your real target instead of the simulation. The simulation is definitely not working overall on M1 based host systems yet. 

I‘m using RP2040 based targets and they are working using my M1 based host system. 

/Piet


> Am 30.01.2022 um 13:22 schrieb Flavio de Castro Alves Filho <fl...@gmail.com>:
> 
> That’s what I did.
> 
> So it is not the problem.
> 
>> On 29 Jan 2022, at 19:43, Peter Kalbus <pt...@mailbox.org.INVALID> wrote:
>> 
>> Hi Flavio,
>> 
>> there’s an explanation in NuttX documentation: https://nuttx.apache.org/docs/latest/quickstart/install.html#kconfig-frontend <https://nuttx.apache.org/docs/latest/quickstart/install.html#kconfig-frontend>
>> Check for the „MacOS, Ubuntu 18.04 LTS and earlier“ tab.
>> 
>> It’s a couple of months back, as I did this … but I’m quite sure, that I followed that explanation.
>> 
>> /Piet
>> 
>> 
>>>> Am 29.01.2022 um 23:17 schrieb Flavio de Castro Alves Filho <fl...@gmail.com>:
>>> 
>>> Hi Peter,
>>> 
>>> How did you install kconfig-frontends on your machine?
>>> 
>>> Best regards,
>>> 
>>> Flavio
>>> 
>>>> On 29 Jan 2022, at 18:13, Kalbus, Peter <pt...@mailbox.org.INVALID> wrote:
>>>> 
>>>> Hi,
>>>> 
>>>> I know, it‘s not complete. But you should get a different error … I see, ARM based CPU is now detected … next step will take longer. 
>>>> 
>>>> /Piet
>>>> 
>>>>> Am 29.01.2022 um 22:03 schrieb Flavio de Castro Alves Filho <fl...@gmail.com>:
>>>>> 
>>>>> Hello Guys. Thank you for your fast response.
>>>>> 
>>>>> @Alan, indeed it is an ARM-based Mac.
>>>>> 
>>>>> @Peter, I added your patch in my NuttX project and ran again the configuration, but without success yet :-(
>>>>> 
>>>>> Here is the output
>>>>> 
>>>>> flavio@Flavios-MacBook-Pro nuttx % tools/configure.sh -m sim:nsh
>>>>> Copy files
>>>>> Select CONFIG_HOST_MACOS=y
>>>>> Select CONFIG_HOST_ARM=y
>>>>> Refreshing...
>>>>> make[2]: Nothing to be done for `clean_context'.
>>>>> CP: arch/dummy/Kconfig to /Users/flavio/mestrado/nuttx/nuttx/arch/dummy/dummy_kconfig
>>>>> CP: boards/dummy/Kconfig to /Users/flavio/mestrado/nuttx/nuttx/boards/dummy/dummy_kconfig
>>>>> LN: platform/board to /Users/flavio/mestrado/nuttx/apps/platform/dummy
>>>>> LN: include/arch to arch/sim/include
>>>>> LN: include/arch/board to /Users/flavio/mestrado/nuttx/nuttx/boards/sim/sim/sim/include
>>>>> LN: drivers/platform to /Users/flavio/mestrado/nuttx/nuttx/drivers/dummy
>>>>> LN: include/arch/chip to /Users/flavio/mestrado/nuttx/nuttx/arch/sim/include/sim
>>>>> /Users/flavio/mestrado/nuttx/nuttx/tools/link.sh /Users/flavio/mestrado/nuttx/nuttx/arch/sim/include/sim include/arch/chip
>>>>> LN: arch/sim/src/chip to /Users/flavio/mestrado/nuttx/nuttx/arch/sim/src/sim
>>>>> LN: arch/sim/src/board to /Users/flavio/mestrado/nuttx/nuttx/boards/sim/sim/sim/src
>>>>> touch .dirlinks
>>>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/boot
>>>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/canutils
>>>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/crypto
>>>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/examples
>>>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/fsutils
>>>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/gpsutils
>>>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/graphics
>>>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/industry
>>>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/interpreters
>>>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/math
>>>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/mlearning
>>>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/netutils
>>>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/system/libuv
>>>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/system
>>>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/testing
>>>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/wireless/bluetooth
>>>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/wireless/ieee802154
>>>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/wireless
>>>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps
>>>>> arch/arm/src/imxrt/Kconfig:1504: syntax error
>>>>> arch/arm/src/imxrt/Kconfig:1503: invalid option
>>>>> arch/arm/src/stm32l4/Kconfig:5347: syntax error
>>>>> arch/arm/src/stm32l4/Kconfig:5296: missing end statement for this entry
>>>>> arch/arm/src/stm32l4/Kconfig:5164: missing end statement for this entry
>>>>> arch/arm/src/stm32l4/Kconfig:8: missing end statement for this entry
>>>>> arch/arm/Kconfig:1178: missing end statement for this entry
>>>>> arch/arm/Kconfig:7: missing end statement for this entry
>>>>> Kconfig:1957: missing end statement for this entry
>>>>> arch/arm/src/stm32l4/Kconfig:5346: invalid statement
>>>>> arch/arm/src/stm32l4/Kconfig:5356: unexpected end statement
>>>>> arch/arm/src/stm32l4/Kconfig:5359: syntax error
>>>>> arch/arm/src/stm32l4/Kconfig:5358: invalid statement
>>>>> arch/arm/src/stm32l4/Kconfig:5368: unexpected end statement
>>>>> arch/arm/src/stm32l4/Kconfig:5371: syntax error
>>>>> arch/arm/src/stm32l4/Kconfig:5370: invalid statement
>>>>> arch/arm/src/stm32l4/Kconfig:5380: unexpected end statement
>>>>> arch/arm/src/stm32l4/Kconfig:5382: unexpected end statement
>>>>> arch/arm/src/stm32l4/Kconfig:5384: unexpected end statement
>>>>> arch/arm/src/stm32l4/Kconfig:6253: unexpected end statement
>>>>> arch/arm/Kconfig:1179: unexpected end statement
>>>>> arch/arm/Kconfig:1199: unexpected end statement
>>>>> Kconfig:1959: unexpected end statement
>>>>> boards/sim/sim/sim/Kconfig:58: syntax error
>>>>> boards/sim/sim/sim/Kconfig:57: invalid option
>>>>> drivers/note/Kconfig:80: syntax error
>>>>> drivers/note/Kconfig:79: invalid option
>>>>> drivers/sensors/Kconfig:308: syntax error
>>>>> drivers/sensors/Kconfig:307: invalid option
>>>>> drivers/syslog/Kconfig:317: syntax error
>>>>> drivers/syslog/Kconfig:316: invalid option
>>>>> make: *** [olddefconfig] Error 1
>>>>> ERROR: failed to refresh
>>>>> flavio@Flavios-MacBook-Pro nuttx % 
>>>>> 
>>>>> 
>>>>> Is there any missing requirement from my environment?
>>>>> 
>>>>> How do I implement the manual architecture setup? I’m afraid that it won’t work either … 
>>>>> 
>>>>> Best regards,
>>>>> 
>>>>> Flavio
>>>>> 
>>>>> 
>>>>>> On 29 Jan 2022, at 17:53, Peter Kalbus <pt...@mailbox.org.INVALID> wrote:
>>>>>> 
>>>>>> Created PR to detect host CPU type: https://github.com/apache/incubator-nuttx/pull/5374 <https://github.com/apache/incubator-nuttx/pull/5374> <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 <ptka@mailbox.org <ma...@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 <ptka@mailbox.org.INVALID <ma...@mailbox.org.INVALID> <mailto:ptka@mailbox.org.INVALID <ma...@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 <ptka@mailbox.org.INVALID <ma...@mailbox.org.INVALID> <mailto:ptka@mailbox.org.INVALID <ma...@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> <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> <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> <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 <tomek@cedro.info <ma...@cedro.info> <mailto:tomek@cedro.info <ma...@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/> <http://www.tomek.cedro.info/ <http://www.tomek.cedro.info/>>
>>>>> 
>>> 
>> 
> 

Re: Build Nuttx on MAC / ARM64 Ubuntu

Posted by Flavio de Castro Alves Filho <fl...@gmail.com>.
That’s what I did.

So it is not the problem.

> On 29 Jan 2022, at 19:43, Peter Kalbus <pt...@mailbox.org.INVALID> wrote:
> 
> Hi Flavio,
> 
> there’s an explanation in NuttX documentation: https://nuttx.apache.org/docs/latest/quickstart/install.html#kconfig-frontend <https://nuttx.apache.org/docs/latest/quickstart/install.html#kconfig-frontend>
> Check for the „MacOS, Ubuntu 18.04 LTS and earlier“ tab.
> 
> It’s a couple of months back, as I did this … but I’m quite sure, that I followed that explanation.
> 
> /Piet
> 
> 
>> Am 29.01.2022 um 23:17 schrieb Flavio de Castro Alves Filho <fl...@gmail.com>:
>> 
>> Hi Peter,
>> 
>> How did you install kconfig-frontends on your machine?
>> 
>> Best regards,
>> 
>> Flavio
>> 
>>> On 29 Jan 2022, at 18:13, Kalbus, Peter <pt...@mailbox.org.INVALID> wrote:
>>> 
>>> Hi,
>>> 
>>> I know, it‘s not complete. But you should get a different error … I see, ARM based CPU is now detected … next step will take longer. 
>>> 
>>> /Piet
>>> 
>>>> Am 29.01.2022 um 22:03 schrieb Flavio de Castro Alves Filho <fl...@gmail.com>:
>>>> 
>>>> Hello Guys. Thank you for your fast response.
>>>> 
>>>> @Alan, indeed it is an ARM-based Mac.
>>>> 
>>>> @Peter, I added your patch in my NuttX project and ran again the configuration, but without success yet :-(
>>>> 
>>>> Here is the output
>>>> 
>>>> flavio@Flavios-MacBook-Pro nuttx % tools/configure.sh -m sim:nsh
>>>> Copy files
>>>> Select CONFIG_HOST_MACOS=y
>>>> Select CONFIG_HOST_ARM=y
>>>> Refreshing...
>>>> make[2]: Nothing to be done for `clean_context'.
>>>> CP: arch/dummy/Kconfig to /Users/flavio/mestrado/nuttx/nuttx/arch/dummy/dummy_kconfig
>>>> CP: boards/dummy/Kconfig to /Users/flavio/mestrado/nuttx/nuttx/boards/dummy/dummy_kconfig
>>>> LN: platform/board to /Users/flavio/mestrado/nuttx/apps/platform/dummy
>>>> LN: include/arch to arch/sim/include
>>>> LN: include/arch/board to /Users/flavio/mestrado/nuttx/nuttx/boards/sim/sim/sim/include
>>>> LN: drivers/platform to /Users/flavio/mestrado/nuttx/nuttx/drivers/dummy
>>>> LN: include/arch/chip to /Users/flavio/mestrado/nuttx/nuttx/arch/sim/include/sim
>>>> /Users/flavio/mestrado/nuttx/nuttx/tools/link.sh /Users/flavio/mestrado/nuttx/nuttx/arch/sim/include/sim include/arch/chip
>>>> LN: arch/sim/src/chip to /Users/flavio/mestrado/nuttx/nuttx/arch/sim/src/sim
>>>> LN: arch/sim/src/board to /Users/flavio/mestrado/nuttx/nuttx/boards/sim/sim/sim/src
>>>> touch .dirlinks
>>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/boot
>>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/canutils
>>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/crypto
>>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/examples
>>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/fsutils
>>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/gpsutils
>>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/graphics
>>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/industry
>>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/interpreters
>>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/math
>>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/mlearning
>>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/netutils
>>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/system/libuv
>>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/system
>>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/testing
>>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/wireless/bluetooth
>>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/wireless/ieee802154
>>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/wireless
>>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps
>>>> arch/arm/src/imxrt/Kconfig:1504: syntax error
>>>> arch/arm/src/imxrt/Kconfig:1503: invalid option
>>>> arch/arm/src/stm32l4/Kconfig:5347: syntax error
>>>> arch/arm/src/stm32l4/Kconfig:5296: missing end statement for this entry
>>>> arch/arm/src/stm32l4/Kconfig:5164: missing end statement for this entry
>>>> arch/arm/src/stm32l4/Kconfig:8: missing end statement for this entry
>>>> arch/arm/Kconfig:1178: missing end statement for this entry
>>>> arch/arm/Kconfig:7: missing end statement for this entry
>>>> Kconfig:1957: missing end statement for this entry
>>>> arch/arm/src/stm32l4/Kconfig:5346: invalid statement
>>>> arch/arm/src/stm32l4/Kconfig:5356: unexpected end statement
>>>> arch/arm/src/stm32l4/Kconfig:5359: syntax error
>>>> arch/arm/src/stm32l4/Kconfig:5358: invalid statement
>>>> arch/arm/src/stm32l4/Kconfig:5368: unexpected end statement
>>>> arch/arm/src/stm32l4/Kconfig:5371: syntax error
>>>> arch/arm/src/stm32l4/Kconfig:5370: invalid statement
>>>> arch/arm/src/stm32l4/Kconfig:5380: unexpected end statement
>>>> arch/arm/src/stm32l4/Kconfig:5382: unexpected end statement
>>>> arch/arm/src/stm32l4/Kconfig:5384: unexpected end statement
>>>> arch/arm/src/stm32l4/Kconfig:6253: unexpected end statement
>>>> arch/arm/Kconfig:1179: unexpected end statement
>>>> arch/arm/Kconfig:1199: unexpected end statement
>>>> Kconfig:1959: unexpected end statement
>>>> boards/sim/sim/sim/Kconfig:58: syntax error
>>>> boards/sim/sim/sim/Kconfig:57: invalid option
>>>> drivers/note/Kconfig:80: syntax error
>>>> drivers/note/Kconfig:79: invalid option
>>>> drivers/sensors/Kconfig:308: syntax error
>>>> drivers/sensors/Kconfig:307: invalid option
>>>> drivers/syslog/Kconfig:317: syntax error
>>>> drivers/syslog/Kconfig:316: invalid option
>>>> make: *** [olddefconfig] Error 1
>>>> ERROR: failed to refresh
>>>> flavio@Flavios-MacBook-Pro nuttx % 
>>>> 
>>>> 
>>>> Is there any missing requirement from my environment?
>>>> 
>>>> How do I implement the manual architecture setup? I’m afraid that it won’t work either … 
>>>> 
>>>> Best regards,
>>>> 
>>>> Flavio
>>>> 
>>>> 
>>>>> On 29 Jan 2022, at 17:53, Peter Kalbus <pt...@mailbox.org.INVALID> wrote:
>>>>> 
>>>>> Created PR to detect host CPU type: https://github.com/apache/incubator-nuttx/pull/5374 <https://github.com/apache/incubator-nuttx/pull/5374> <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 <ptka@mailbox.org <ma...@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 <ptka@mailbox.org.INVALID <ma...@mailbox.org.INVALID> <mailto:ptka@mailbox.org.INVALID <ma...@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 <ptka@mailbox.org.INVALID <ma...@mailbox.org.INVALID> <mailto:ptka@mailbox.org.INVALID <ma...@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> <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> <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> <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 <tomek@cedro.info <ma...@cedro.info> <mailto:tomek@cedro.info <ma...@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/> <http://www.tomek.cedro.info/ <http://www.tomek.cedro.info/>>
>>>> 
>> 
> 


Re: Build Nuttx on MAC / ARM64 Ubuntu

Posted by Peter Kalbus <pt...@mailbox.org.INVALID>.
Hi Flavio,

there’s an explanation in NuttX documentation: https://nuttx.apache.org/docs/latest/quickstart/install.html#kconfig-frontend <https://nuttx.apache.org/docs/latest/quickstart/install.html#kconfig-frontend>
Check for the „MacOS, Ubuntu 18.04 LTS and earlier“ tab.

It’s a couple of months back, as I did this … but I’m quite sure, that I followed that explanation.

/Piet


> Am 29.01.2022 um 23:17 schrieb Flavio de Castro Alves Filho <fl...@gmail.com>:
> 
> Hi Peter,
> 
> How did you install kconfig-frontends on your machine?
> 
> Best regards,
> 
> Flavio
> 
>> On 29 Jan 2022, at 18:13, Kalbus, Peter <pt...@mailbox.org.INVALID> wrote:
>> 
>> Hi,
>> 
>> I know, it‘s not complete. But you should get a different error … I see, ARM based CPU is now detected … next step will take longer. 
>> 
>> /Piet
>> 
>>> Am 29.01.2022 um 22:03 schrieb Flavio de Castro Alves Filho <fl...@gmail.com>:
>>> 
>>> Hello Guys. Thank you for your fast response.
>>> 
>>> @Alan, indeed it is an ARM-based Mac.
>>> 
>>> @Peter, I added your patch in my NuttX project and ran again the configuration, but without success yet :-(
>>> 
>>> Here is the output
>>> 
>>> flavio@Flavios-MacBook-Pro nuttx % tools/configure.sh -m sim:nsh
>>> Copy files
>>> Select CONFIG_HOST_MACOS=y
>>> Select CONFIG_HOST_ARM=y
>>> Refreshing...
>>> make[2]: Nothing to be done for `clean_context'.
>>> CP: arch/dummy/Kconfig to /Users/flavio/mestrado/nuttx/nuttx/arch/dummy/dummy_kconfig
>>> CP: boards/dummy/Kconfig to /Users/flavio/mestrado/nuttx/nuttx/boards/dummy/dummy_kconfig
>>> LN: platform/board to /Users/flavio/mestrado/nuttx/apps/platform/dummy
>>> LN: include/arch to arch/sim/include
>>> LN: include/arch/board to /Users/flavio/mestrado/nuttx/nuttx/boards/sim/sim/sim/include
>>> LN: drivers/platform to /Users/flavio/mestrado/nuttx/nuttx/drivers/dummy
>>> LN: include/arch/chip to /Users/flavio/mestrado/nuttx/nuttx/arch/sim/include/sim
>>> /Users/flavio/mestrado/nuttx/nuttx/tools/link.sh /Users/flavio/mestrado/nuttx/nuttx/arch/sim/include/sim include/arch/chip
>>> LN: arch/sim/src/chip to /Users/flavio/mestrado/nuttx/nuttx/arch/sim/src/sim
>>> LN: arch/sim/src/board to /Users/flavio/mestrado/nuttx/nuttx/boards/sim/sim/sim/src
>>> touch .dirlinks
>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/boot
>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/canutils
>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/crypto
>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/examples
>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/fsutils
>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/gpsutils
>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/graphics
>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/industry
>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/interpreters
>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/math
>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/mlearning
>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/netutils
>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/system/libuv
>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/system
>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/testing
>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/wireless/bluetooth
>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/wireless/ieee802154
>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/wireless
>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps
>>> arch/arm/src/imxrt/Kconfig:1504: syntax error
>>> arch/arm/src/imxrt/Kconfig:1503: invalid option
>>> arch/arm/src/stm32l4/Kconfig:5347: syntax error
>>> arch/arm/src/stm32l4/Kconfig:5296: missing end statement for this entry
>>> arch/arm/src/stm32l4/Kconfig:5164: missing end statement for this entry
>>> arch/arm/src/stm32l4/Kconfig:8: missing end statement for this entry
>>> arch/arm/Kconfig:1178: missing end statement for this entry
>>> arch/arm/Kconfig:7: missing end statement for this entry
>>> Kconfig:1957: missing end statement for this entry
>>> arch/arm/src/stm32l4/Kconfig:5346: invalid statement
>>> arch/arm/src/stm32l4/Kconfig:5356: unexpected end statement
>>> arch/arm/src/stm32l4/Kconfig:5359: syntax error
>>> arch/arm/src/stm32l4/Kconfig:5358: invalid statement
>>> arch/arm/src/stm32l4/Kconfig:5368: unexpected end statement
>>> arch/arm/src/stm32l4/Kconfig:5371: syntax error
>>> arch/arm/src/stm32l4/Kconfig:5370: invalid statement
>>> arch/arm/src/stm32l4/Kconfig:5380: unexpected end statement
>>> arch/arm/src/stm32l4/Kconfig:5382: unexpected end statement
>>> arch/arm/src/stm32l4/Kconfig:5384: unexpected end statement
>>> arch/arm/src/stm32l4/Kconfig:6253: unexpected end statement
>>> arch/arm/Kconfig:1179: unexpected end statement
>>> arch/arm/Kconfig:1199: unexpected end statement
>>> Kconfig:1959: unexpected end statement
>>> boards/sim/sim/sim/Kconfig:58: syntax error
>>> boards/sim/sim/sim/Kconfig:57: invalid option
>>> drivers/note/Kconfig:80: syntax error
>>> drivers/note/Kconfig:79: invalid option
>>> drivers/sensors/Kconfig:308: syntax error
>>> drivers/sensors/Kconfig:307: invalid option
>>> drivers/syslog/Kconfig:317: syntax error
>>> drivers/syslog/Kconfig:316: invalid option
>>> make: *** [olddefconfig] Error 1
>>> ERROR: failed to refresh
>>> flavio@Flavios-MacBook-Pro nuttx % 
>>> 
>>> 
>>> Is there any missing requirement from my environment?
>>> 
>>> How do I implement the manual architecture setup? I’m afraid that it won’t work either … 
>>> 
>>> Best regards,
>>> 
>>> Flavio
>>> 
>>> 
>>>> On 29 Jan 2022, at 17:53, Peter Kalbus <pt...@mailbox.org.INVALID> wrote:
>>>> 
>>>> Created PR to detect host CPU type: https://github.com/apache/incubator-nuttx/pull/5374 <https://github.com/apache/incubator-nuttx/pull/5374> <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 <ptka@mailbox.org <ma...@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 <ptka@mailbox.org.INVALID <ma...@mailbox.org.INVALID> <mailto:ptka@mailbox.org.INVALID <ma...@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 <ptka@mailbox.org.INVALID <ma...@mailbox.org.INVALID> <mailto:ptka@mailbox.org.INVALID <ma...@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> <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> <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> <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 <tomek@cedro.info <ma...@cedro.info> <mailto:tomek@cedro.info <ma...@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/> <http://www.tomek.cedro.info/ <http://www.tomek.cedro.info/>>
>>> 
> 


Re: Build Nuttx on MAC / ARM64 Ubuntu

Posted by Flavio de Castro Alves Filho <fl...@gmail.com>.
Hi Peter,

How did you install kconfig-frontends on your machine?

Best regards,

Flavio

> On 29 Jan 2022, at 18:13, Kalbus, Peter <pt...@mailbox.org.INVALID> wrote:
> 
> Hi,
> 
> I know, it‘s not complete. But you should get a different error … I see, ARM based CPU is now detected … next step will take longer. 
> 
> /Piet
> 
>> Am 29.01.2022 um 22:03 schrieb Flavio de Castro Alves Filho <fl...@gmail.com>:
>> 
>> Hello Guys. Thank you for your fast response.
>> 
>> @Alan, indeed it is an ARM-based Mac.
>> 
>> @Peter, I added your patch in my NuttX project and ran again the configuration, but without success yet :-(
>> 
>> Here is the output
>> 
>> flavio@Flavios-MacBook-Pro nuttx % tools/configure.sh -m sim:nsh
>> Copy files
>> Select CONFIG_HOST_MACOS=y
>> Select CONFIG_HOST_ARM=y
>> Refreshing...
>> make[2]: Nothing to be done for `clean_context'.
>> CP: arch/dummy/Kconfig to /Users/flavio/mestrado/nuttx/nuttx/arch/dummy/dummy_kconfig
>> CP: boards/dummy/Kconfig to /Users/flavio/mestrado/nuttx/nuttx/boards/dummy/dummy_kconfig
>> LN: platform/board to /Users/flavio/mestrado/nuttx/apps/platform/dummy
>> LN: include/arch to arch/sim/include
>> LN: include/arch/board to /Users/flavio/mestrado/nuttx/nuttx/boards/sim/sim/sim/include
>> LN: drivers/platform to /Users/flavio/mestrado/nuttx/nuttx/drivers/dummy
>> LN: include/arch/chip to /Users/flavio/mestrado/nuttx/nuttx/arch/sim/include/sim
>> /Users/flavio/mestrado/nuttx/nuttx/tools/link.sh /Users/flavio/mestrado/nuttx/nuttx/arch/sim/include/sim include/arch/chip
>> LN: arch/sim/src/chip to /Users/flavio/mestrado/nuttx/nuttx/arch/sim/src/sim
>> LN: arch/sim/src/board to /Users/flavio/mestrado/nuttx/nuttx/boards/sim/sim/sim/src
>> touch .dirlinks
>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/boot
>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/canutils
>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/crypto
>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/examples
>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/fsutils
>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/gpsutils
>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/graphics
>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/industry
>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/interpreters
>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/math
>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/mlearning
>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/netutils
>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/system/libuv
>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/system
>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/testing
>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/wireless/bluetooth
>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/wireless/ieee802154
>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/wireless
>> mkkconfig in /Users/flavio/mestrado/nuttx/apps
>> arch/arm/src/imxrt/Kconfig:1504: syntax error
>> arch/arm/src/imxrt/Kconfig:1503: invalid option
>> arch/arm/src/stm32l4/Kconfig:5347: syntax error
>> arch/arm/src/stm32l4/Kconfig:5296: missing end statement for this entry
>> arch/arm/src/stm32l4/Kconfig:5164: missing end statement for this entry
>> arch/arm/src/stm32l4/Kconfig:8: missing end statement for this entry
>> arch/arm/Kconfig:1178: missing end statement for this entry
>> arch/arm/Kconfig:7: missing end statement for this entry
>> Kconfig:1957: missing end statement for this entry
>> arch/arm/src/stm32l4/Kconfig:5346: invalid statement
>> arch/arm/src/stm32l4/Kconfig:5356: unexpected end statement
>> arch/arm/src/stm32l4/Kconfig:5359: syntax error
>> arch/arm/src/stm32l4/Kconfig:5358: invalid statement
>> arch/arm/src/stm32l4/Kconfig:5368: unexpected end statement
>> arch/arm/src/stm32l4/Kconfig:5371: syntax error
>> arch/arm/src/stm32l4/Kconfig:5370: invalid statement
>> arch/arm/src/stm32l4/Kconfig:5380: unexpected end statement
>> arch/arm/src/stm32l4/Kconfig:5382: unexpected end statement
>> arch/arm/src/stm32l4/Kconfig:5384: unexpected end statement
>> arch/arm/src/stm32l4/Kconfig:6253: unexpected end statement
>> arch/arm/Kconfig:1179: unexpected end statement
>> arch/arm/Kconfig:1199: unexpected end statement
>> Kconfig:1959: unexpected end statement
>> boards/sim/sim/sim/Kconfig:58: syntax error
>> boards/sim/sim/sim/Kconfig:57: invalid option
>> drivers/note/Kconfig:80: syntax error
>> drivers/note/Kconfig:79: invalid option
>> drivers/sensors/Kconfig:308: syntax error
>> drivers/sensors/Kconfig:307: invalid option
>> drivers/syslog/Kconfig:317: syntax error
>> drivers/syslog/Kconfig:316: invalid option
>> make: *** [olddefconfig] Error 1
>> ERROR: failed to refresh
>> flavio@Flavios-MacBook-Pro nuttx % 
>> 
>> 
>> Is there any missing requirement from my environment?
>> 
>> How do I implement the manual architecture setup? I’m afraid that it won’t work either … 
>> 
>> Best regards,
>> 
>> Flavio
>> 
>> 
>>> On 29 Jan 2022, at 17:53, Peter Kalbus <pt...@mailbox.org.INVALID> wrote:
>>> 
>>> Created PR to detect host CPU type: https://github.com/apache/incubator-nuttx/pull/5374 <https://github.com/apache/incubator-nuttx/pull/5374> <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 <ptka@mailbox.org <ma...@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 <ptka@mailbox.org.INVALID <ma...@mailbox.org.INVALID> <mailto:ptka@mailbox.org.INVALID <ma...@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 <ptka@mailbox.org.INVALID <ma...@mailbox.org.INVALID> <mailto:ptka@mailbox.org.INVALID <ma...@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> <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> <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> <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 <tomek@cedro.info <ma...@cedro.info> <mailto:tomek@cedro.info <ma...@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/> <http://www.tomek.cedro.info/ <http://www.tomek.cedro.info/>>
>> 


Re: Build Nuttx on MAC / ARM64 Ubuntu

Posted by "Kalbus, Peter" <pt...@mailbox.org.INVALID>.
Hi,

I know, it‘s not complete. But you should get a different error … I see, ARM based CPU is now detected … next step will take longer. 

/Piet

> Am 29.01.2022 um 22:03 schrieb Flavio de Castro Alves Filho <fl...@gmail.com>:
> 
> Hello Guys. Thank you for your fast response.
> 
> @Alan, indeed it is an ARM-based Mac.
> 
> @Peter, I added your patch in my NuttX project and ran again the configuration, but without success yet :-(
> 
> Here is the output
> 
> flavio@Flavios-MacBook-Pro nuttx % tools/configure.sh -m sim:nsh
>  Copy files
>  Select CONFIG_HOST_MACOS=y
>  Select CONFIG_HOST_ARM=y
>  Refreshing...
> make[2]: Nothing to be done for `clean_context'.
> CP: arch/dummy/Kconfig to /Users/flavio/mestrado/nuttx/nuttx/arch/dummy/dummy_kconfig
> CP: boards/dummy/Kconfig to /Users/flavio/mestrado/nuttx/nuttx/boards/dummy/dummy_kconfig
> LN: platform/board to /Users/flavio/mestrado/nuttx/apps/platform/dummy
> LN: include/arch to arch/sim/include
> LN: include/arch/board to /Users/flavio/mestrado/nuttx/nuttx/boards/sim/sim/sim/include
> LN: drivers/platform to /Users/flavio/mestrado/nuttx/nuttx/drivers/dummy
> LN: include/arch/chip to /Users/flavio/mestrado/nuttx/nuttx/arch/sim/include/sim
> /Users/flavio/mestrado/nuttx/nuttx/tools/link.sh /Users/flavio/mestrado/nuttx/nuttx/arch/sim/include/sim include/arch/chip
> LN: arch/sim/src/chip to /Users/flavio/mestrado/nuttx/nuttx/arch/sim/src/sim
> LN: arch/sim/src/board to /Users/flavio/mestrado/nuttx/nuttx/boards/sim/sim/sim/src
> touch .dirlinks
> mkkconfig in /Users/flavio/mestrado/nuttx/apps/boot
> mkkconfig in /Users/flavio/mestrado/nuttx/apps/canutils
> mkkconfig in /Users/flavio/mestrado/nuttx/apps/crypto
> mkkconfig in /Users/flavio/mestrado/nuttx/apps/examples
> mkkconfig in /Users/flavio/mestrado/nuttx/apps/fsutils
> mkkconfig in /Users/flavio/mestrado/nuttx/apps/gpsutils
> mkkconfig in /Users/flavio/mestrado/nuttx/apps/graphics
> mkkconfig in /Users/flavio/mestrado/nuttx/apps/industry
> mkkconfig in /Users/flavio/mestrado/nuttx/apps/interpreters
> mkkconfig in /Users/flavio/mestrado/nuttx/apps/math
> mkkconfig in /Users/flavio/mestrado/nuttx/apps/mlearning
> mkkconfig in /Users/flavio/mestrado/nuttx/apps/netutils
> mkkconfig in /Users/flavio/mestrado/nuttx/apps/system/libuv
> mkkconfig in /Users/flavio/mestrado/nuttx/apps/system
> mkkconfig in /Users/flavio/mestrado/nuttx/apps/testing
> mkkconfig in /Users/flavio/mestrado/nuttx/apps/wireless/bluetooth
> mkkconfig in /Users/flavio/mestrado/nuttx/apps/wireless/ieee802154
> mkkconfig in /Users/flavio/mestrado/nuttx/apps/wireless
> mkkconfig in /Users/flavio/mestrado/nuttx/apps
> arch/arm/src/imxrt/Kconfig:1504: syntax error
> arch/arm/src/imxrt/Kconfig:1503: invalid option
> arch/arm/src/stm32l4/Kconfig:5347: syntax error
> arch/arm/src/stm32l4/Kconfig:5296: missing end statement for this entry
> arch/arm/src/stm32l4/Kconfig:5164: missing end statement for this entry
> arch/arm/src/stm32l4/Kconfig:8: missing end statement for this entry
> arch/arm/Kconfig:1178: missing end statement for this entry
> arch/arm/Kconfig:7: missing end statement for this entry
> Kconfig:1957: missing end statement for this entry
> arch/arm/src/stm32l4/Kconfig:5346: invalid statement
> arch/arm/src/stm32l4/Kconfig:5356: unexpected end statement
> arch/arm/src/stm32l4/Kconfig:5359: syntax error
> arch/arm/src/stm32l4/Kconfig:5358: invalid statement
> arch/arm/src/stm32l4/Kconfig:5368: unexpected end statement
> arch/arm/src/stm32l4/Kconfig:5371: syntax error
> arch/arm/src/stm32l4/Kconfig:5370: invalid statement
> arch/arm/src/stm32l4/Kconfig:5380: unexpected end statement
> arch/arm/src/stm32l4/Kconfig:5382: unexpected end statement
> arch/arm/src/stm32l4/Kconfig:5384: unexpected end statement
> arch/arm/src/stm32l4/Kconfig:6253: unexpected end statement
> arch/arm/Kconfig:1179: unexpected end statement
> arch/arm/Kconfig:1199: unexpected end statement
> Kconfig:1959: unexpected end statement
> boards/sim/sim/sim/Kconfig:58: syntax error
> boards/sim/sim/sim/Kconfig:57: invalid option
> drivers/note/Kconfig:80: syntax error
> drivers/note/Kconfig:79: invalid option
> drivers/sensors/Kconfig:308: syntax error
> drivers/sensors/Kconfig:307: invalid option
> drivers/syslog/Kconfig:317: syntax error
> drivers/syslog/Kconfig:316: invalid option
> make: *** [olddefconfig] Error 1
> ERROR: failed to refresh
> flavio@Flavios-MacBook-Pro nuttx % 
> 
> 
> Is there any missing requirement from my environment?
> 
> How do I implement the manual architecture setup? I’m afraid that it won’t work either … 
> 
> Best regards,
> 
> Flavio
> 
> 
>> On 29 Jan 2022, at 17:53, Peter Kalbus <pt...@mailbox.org.INVALID> wrote:
>> 
>> Created PR to detect host CPU type: https://github.com/apache/incubator-nuttx/pull/5374 <https://github.com/apache/incubator-nuttx/pull/5374> <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 <ptka@mailbox.org <ma...@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 <ptka@mailbox.org.INVALID <ma...@mailbox.org.INVALID> <mailto:ptka@mailbox.org.INVALID <ma...@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 <ptka@mailbox.org.INVALID <ma...@mailbox.org.INVALID> <mailto:ptka@mailbox.org.INVALID <ma...@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> <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> <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> <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 <tomek@cedro.info <ma...@cedro.info> <mailto:tomek@cedro.info <ma...@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/> <http://www.tomek.cedro.info/ <http://www.tomek.cedro.info/>>
> 

Re: Build Nuttx on MAC / ARM64 Ubuntu

Posted by Alan Carvalho de Assis <ac...@gmail.com>.
Hi Flavio,

I think if you download it from tools repository it is the right kconfig.

Currently I'm using a Ubuntu more recent than 18.04, so it is already
a package in the system, I don't need to compile it.

BR,

Alan

On 1/29/22, Flavio de Castro Alves Filho <fl...@gmail.com> wrote:
> Hi Alan,
>
> I have this instruction that you mentioned. I have just cloned a base NuttX
> repo.
>
> Regarding kconfig-frontends, I used the instructions for Mac from the
> project document. Can this be my issue?
>
> Best regards,
>
> Flavio
>
>> On 29 Jan 2022, at 18:13, Alan Carvalho de Assis <ac...@gmail.com>
>> wrote:
>>
>> Flavio,
>>
>> What is at line 308 of your drivers/sensors/Kconfig ?
>>
>> Here is it just a "---help---", maybe the real issue is in the above
>> line:
>> select SCHED_HPWORK if SENSORS_L3GD20_BUFFER_SIZE > 0
>>
>> BTW, it seems like your kconfig-frontends is different from our.
>>
>> BR,
>>
>> Alan
>>
>> On 1/29/22, Flavio de Castro Alves Filho <flavio.alves@gmail.com
>> <ma...@gmail.com>> wrote:
>>> Hello Guys. Thank you for your fast response.
>>>
>>> @Alan, indeed it is an ARM-based Mac.
>>>
>>> @Peter, I added your patch in my NuttX project and ran again the
>>> configuration, but without success yet :-(
>>>
>>> Here is the output
>>>
>>> flavio@Flavios-MacBook-Pro nuttx % tools/configure.sh -m sim:nsh
>>>  Copy files
>>>  Select CONFIG_HOST_MACOS=y
>>>  Select CONFIG_HOST_ARM=y
>>>  Refreshing...
>>> make[2]: Nothing to be done for `clean_context'.
>>> CP: arch/dummy/Kconfig to
>>> /Users/flavio/mestrado/nuttx/nuttx/arch/dummy/dummy_kconfig
>>> CP: boards/dummy/Kconfig to
>>> /Users/flavio/mestrado/nuttx/nuttx/boards/dummy/dummy_kconfig
>>> LN: platform/board to /Users/flavio/mestrado/nuttx/apps/platform/dummy
>>> LN: include/arch to arch/sim/include
>>> LN: include/arch/board to
>>> /Users/flavio/mestrado/nuttx/nuttx/boards/sim/sim/sim/include
>>> LN: drivers/platform to /Users/flavio/mestrado/nuttx/nuttx/drivers/dummy
>>> LN: include/arch/chip to
>>> /Users/flavio/mestrado/nuttx/nuttx/arch/sim/include/sim
>>> /Users/flavio/mestrado/nuttx/nuttx/tools/link.sh
>>> /Users/flavio/mestrado/nuttx/nuttx/arch/sim/include/sim
>>> include/arch/chip
>>> LN: arch/sim/src/chip to
>>> /Users/flavio/mestrado/nuttx/nuttx/arch/sim/src/sim
>>> LN: arch/sim/src/board to
>>> /Users/flavio/mestrado/nuttx/nuttx/boards/sim/sim/sim/src
>>> touch .dirlinks
>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/boot
>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/canutils
>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/crypto
>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/examples
>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/fsutils
>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/gpsutils
>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/graphics
>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/industry
>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/interpreters
>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/math
>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/mlearning
>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/netutils
>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/system/libuv
>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/system
>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/testing
>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/wireless/bluetooth
>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/wireless/ieee802154
>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/wireless
>>> mkkconfig in /Users/flavio/mestrado/nuttx/apps
>>> arch/arm/src/imxrt/Kconfig:1504: syntax error
>>> arch/arm/src/imxrt/Kconfig:1503: invalid option
>>> arch/arm/src/stm32l4/Kconfig:5347: syntax error
>>> arch/arm/src/stm32l4/Kconfig:5296: missing end statement for this entry
>>> arch/arm/src/stm32l4/Kconfig:5164: missing end statement for this entry
>>> arch/arm/src/stm32l4/Kconfig:8: missing end statement for this entry
>>> arch/arm/Kconfig:1178: missing end statement for this entry
>>> arch/arm/Kconfig:7: missing end statement for this entry
>>> Kconfig:1957: missing end statement for this entry
>>> arch/arm/src/stm32l4/Kconfig:5346: invalid statement
>>> arch/arm/src/stm32l4/Kconfig:5356: unexpected end statement
>>> arch/arm/src/stm32l4/Kconfig:5359: syntax error
>>> arch/arm/src/stm32l4/Kconfig:5358: invalid statement
>>> arch/arm/src/stm32l4/Kconfig:5368: unexpected end statement
>>> arch/arm/src/stm32l4/Kconfig:5371: syntax error
>>> arch/arm/src/stm32l4/Kconfig:5370: invalid statement
>>> arch/arm/src/stm32l4/Kconfig:5380: unexpected end statement
>>> arch/arm/src/stm32l4/Kconfig:5382: unexpected end statement
>>> arch/arm/src/stm32l4/Kconfig:5384: unexpected end statement
>>> arch/arm/src/stm32l4/Kconfig:6253: unexpected end statement
>>> arch/arm/Kconfig:1179: unexpected end statement
>>> arch/arm/Kconfig:1199: unexpected end statement
>>> Kconfig:1959: unexpected end statement
>>> boards/sim/sim/sim/Kconfig:58: syntax error
>>> boards/sim/sim/sim/Kconfig:57: invalid option
>>> drivers/note/Kconfig:80: syntax error
>>> drivers/note/Kconfig:79: invalid option
>>> drivers/sensors/Kconfig:308: syntax error
>>> drivers/sensors/Kconfig:307: invalid option
>>> drivers/syslog/Kconfig:317: syntax error
>>> drivers/syslog/Kconfig:316: invalid option
>>> make: *** [olddefconfig] Error 1
>>> ERROR: failed to refresh
>>> flavio@Flavios-MacBook-Pro nuttx %
>>>
>>>
>>> Is there any missing requirement from my environment?
>>>
>>> How do I implement the manual architecture setup? I’m afraid that it
>>> won’t
>>> work either …
>>>
>>> Best regards,
>>>
>>> Flavio
>>>
>>>
>>>> On 29 Jan 2022, at 17:53, Peter Kalbus <pt...@mailbox.org.INVALID>
>>>> wrote:
>>>>
>>>> Created PR to detect host CPU type:
>>>> https://github.com/apache/incubator-nuttx/pull/5374
>>>> <https://github.com/apache/incubator-nuttx/pull/5374>
>>>> <https://github.com/apache/incubator-nuttx/pull/5374
>>>> <https://github.com/apache/incubator-nuttx/pull/5374>
>>>> <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 <ptka@mailbox.org
>>>>> <ma...@mailbox.org>
>>>>> <mailto:ptka@mailbox.org <ma...@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 <ptka@mailbox.org.INVALID
>>>>>> <ma...@mailbox.org.INVALID>
>>>>>> <mailto:ptka@mailbox.org.INVALID <ma...@mailbox.org.INVALID>>
>>>>>> <mailto:ptka@mailbox.org.INVALID <ma...@mailbox.org.INVALID>
>>>>>> <mailto:ptka@mailbox.org.INVALID
>>>>>> <ma...@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 <ptka@mailbox.org.INVALID
>>>>>>> <ma...@mailbox.org.INVALID>
>>>>>>> <mailto:ptka@mailbox.org.INVALID <ma...@mailbox.org.INVALID>>
>>>>>>> <mailto:ptka@mailbox.org.INVALID <ma...@mailbox.org.INVALID>
>>>>>>> <mailto:ptka@mailbox.org.INVALID
>>>>>>> <ma...@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>
>>>>>>> <https://github.com/ptka/incubator-nuttx#diff-fd079323b0636ac4012f50afe8c5555656d7a760b0429f46188919fe7807f8a5
>>>>>>> <https://github.com/ptka/incubator-nuttx#diff-fd079323b0636ac4012f50afe8c5555656d7a760b0429f46188919fe7807f8a5>>
>>>>>>> <https://github.com/ptka/incubator-nuttx#diff-fd079323b0636ac4012f50afe8c5555656d7a760b0429f46188919fe7807f8a5
>>>>>>> <https://github.com/ptka/incubator-nuttx#diff-fd079323b0636ac4012f50afe8c5555656d7a760b0429f46188919fe7807f8a5>
>>>>>>> <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>
>>>>>>> <https://github.com/ptka/incubator-nuttx#diff-cffded10274b4845aae8c75bd91550d140214585ea17d47f2cf01dd021a16abe
>>>>>>> <https://github.com/ptka/incubator-nuttx#diff-cffded10274b4845aae8c75bd91550d140214585ea17d47f2cf01dd021a16abe>>
>>>>>>> <https://github.com/ptka/incubator-nuttx#diff-cffded10274b4845aae8c75bd91550d140214585ea17d47f2cf01dd021a16abe
>>>>>>> <https://github.com/ptka/incubator-nuttx#diff-cffded10274b4845aae8c75bd91550d140214585ea17d47f2cf01dd021a16abe>
>>>>>>> <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>
>>>>>>> <https://github.com/ptka/incubator-nuttx#diff-befc8e04ddb3722f024f65ffd7648aac1cb24846d2b80fff6328e3cb5862220f
>>>>>>> <https://github.com/ptka/incubator-nuttx#diff-befc8e04ddb3722f024f65ffd7648aac1cb24846d2b80fff6328e3cb5862220f>>
>>>>>>> <https://github.com/ptka/incubator-nuttx#diff-befc8e04ddb3722f024f65ffd7648aac1cb24846d2b80fff6328e3cb5862220f
>>>>>>> <https://github.com/ptka/incubator-nuttx#diff-befc8e04ddb3722f024f65ffd7648aac1cb24846d2b80fff6328e3cb5862220f>
>>>>>>> <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 <tomek@cedro.info
>>>>>>>> <ma...@cedro.info>
>>>>>>>> <mailto:tomek@cedro.info <ma...@cedro.info>>
>>>>>>>> <mailto:tomek@cedro.info <ma...@cedro.info>
>>>>>>>> <mailto:tomek@cedro.info <ma...@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/>
>>>>>>>> <http://www.tomek.cedro.info/ <http://www.tomek.cedro.info/>>
>>>>>>>> <http://www.tomek.cedro.info/ <http://www.tomek.cedro.info/>
>>>>>>>> <http://www.tomek.cedro.info/ <http://www.tomek.cedro.info/>>>
>
>

Re: Build Nuttx on MAC / ARM64 Ubuntu

Posted by Flavio de Castro Alves Filho <fl...@gmail.com>.
Hi Alan,

I have this instruction that you mentioned. I have just cloned a base NuttX repo.

Regarding kconfig-frontends, I used the instructions for Mac from the project document. Can this be my issue?

Best regards,

Flavio

> On 29 Jan 2022, at 18:13, Alan Carvalho de Assis <ac...@gmail.com> wrote:
> 
> Flavio,
> 
> What is at line 308 of your drivers/sensors/Kconfig ?
> 
> Here is it just a "---help---", maybe the real issue is in the above line:
> select SCHED_HPWORK if SENSORS_L3GD20_BUFFER_SIZE > 0
> 
> BTW, it seems like your kconfig-frontends is different from our.
> 
> BR,
> 
> Alan
> 
> On 1/29/22, Flavio de Castro Alves Filho <flavio.alves@gmail.com <ma...@gmail.com>> wrote:
>> Hello Guys. Thank you for your fast response.
>> 
>> @Alan, indeed it is an ARM-based Mac.
>> 
>> @Peter, I added your patch in my NuttX project and ran again the
>> configuration, but without success yet :-(
>> 
>> Here is the output
>> 
>> flavio@Flavios-MacBook-Pro nuttx % tools/configure.sh -m sim:nsh
>>  Copy files
>>  Select CONFIG_HOST_MACOS=y
>>  Select CONFIG_HOST_ARM=y
>>  Refreshing...
>> make[2]: Nothing to be done for `clean_context'.
>> CP: arch/dummy/Kconfig to
>> /Users/flavio/mestrado/nuttx/nuttx/arch/dummy/dummy_kconfig
>> CP: boards/dummy/Kconfig to
>> /Users/flavio/mestrado/nuttx/nuttx/boards/dummy/dummy_kconfig
>> LN: platform/board to /Users/flavio/mestrado/nuttx/apps/platform/dummy
>> LN: include/arch to arch/sim/include
>> LN: include/arch/board to
>> /Users/flavio/mestrado/nuttx/nuttx/boards/sim/sim/sim/include
>> LN: drivers/platform to /Users/flavio/mestrado/nuttx/nuttx/drivers/dummy
>> LN: include/arch/chip to
>> /Users/flavio/mestrado/nuttx/nuttx/arch/sim/include/sim
>> /Users/flavio/mestrado/nuttx/nuttx/tools/link.sh
>> /Users/flavio/mestrado/nuttx/nuttx/arch/sim/include/sim include/arch/chip
>> LN: arch/sim/src/chip to
>> /Users/flavio/mestrado/nuttx/nuttx/arch/sim/src/sim
>> LN: arch/sim/src/board to
>> /Users/flavio/mestrado/nuttx/nuttx/boards/sim/sim/sim/src
>> touch .dirlinks
>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/boot
>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/canutils
>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/crypto
>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/examples
>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/fsutils
>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/gpsutils
>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/graphics
>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/industry
>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/interpreters
>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/math
>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/mlearning
>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/netutils
>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/system/libuv
>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/system
>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/testing
>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/wireless/bluetooth
>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/wireless/ieee802154
>> mkkconfig in /Users/flavio/mestrado/nuttx/apps/wireless
>> mkkconfig in /Users/flavio/mestrado/nuttx/apps
>> arch/arm/src/imxrt/Kconfig:1504: syntax error
>> arch/arm/src/imxrt/Kconfig:1503: invalid option
>> arch/arm/src/stm32l4/Kconfig:5347: syntax error
>> arch/arm/src/stm32l4/Kconfig:5296: missing end statement for this entry
>> arch/arm/src/stm32l4/Kconfig:5164: missing end statement for this entry
>> arch/arm/src/stm32l4/Kconfig:8: missing end statement for this entry
>> arch/arm/Kconfig:1178: missing end statement for this entry
>> arch/arm/Kconfig:7: missing end statement for this entry
>> Kconfig:1957: missing end statement for this entry
>> arch/arm/src/stm32l4/Kconfig:5346: invalid statement
>> arch/arm/src/stm32l4/Kconfig:5356: unexpected end statement
>> arch/arm/src/stm32l4/Kconfig:5359: syntax error
>> arch/arm/src/stm32l4/Kconfig:5358: invalid statement
>> arch/arm/src/stm32l4/Kconfig:5368: unexpected end statement
>> arch/arm/src/stm32l4/Kconfig:5371: syntax error
>> arch/arm/src/stm32l4/Kconfig:5370: invalid statement
>> arch/arm/src/stm32l4/Kconfig:5380: unexpected end statement
>> arch/arm/src/stm32l4/Kconfig:5382: unexpected end statement
>> arch/arm/src/stm32l4/Kconfig:5384: unexpected end statement
>> arch/arm/src/stm32l4/Kconfig:6253: unexpected end statement
>> arch/arm/Kconfig:1179: unexpected end statement
>> arch/arm/Kconfig:1199: unexpected end statement
>> Kconfig:1959: unexpected end statement
>> boards/sim/sim/sim/Kconfig:58: syntax error
>> boards/sim/sim/sim/Kconfig:57: invalid option
>> drivers/note/Kconfig:80: syntax error
>> drivers/note/Kconfig:79: invalid option
>> drivers/sensors/Kconfig:308: syntax error
>> drivers/sensors/Kconfig:307: invalid option
>> drivers/syslog/Kconfig:317: syntax error
>> drivers/syslog/Kconfig:316: invalid option
>> make: *** [olddefconfig] Error 1
>> ERROR: failed to refresh
>> flavio@Flavios-MacBook-Pro nuttx %
>> 
>> 
>> Is there any missing requirement from my environment?
>> 
>> How do I implement the manual architecture setup? I’m afraid that it won’t
>> work either …
>> 
>> Best regards,
>> 
>> Flavio
>> 
>> 
>>> On 29 Jan 2022, at 17:53, Peter Kalbus <pt...@mailbox.org.INVALID> wrote:
>>> 
>>> Created PR to detect host CPU type:
>>> https://github.com/apache/incubator-nuttx/pull/5374
>>> <https://github.com/apache/incubator-nuttx/pull/5374>
>>> <https://github.com/apache/incubator-nuttx/pull/5374 <https://github.com/apache/incubator-nuttx/pull/5374>
>>> <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 <ptka@mailbox.org <ma...@mailbox.org>
>>>> <mailto:ptka@mailbox.org <ma...@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 <ptka@mailbox.org.INVALID <ma...@mailbox.org.INVALID>
>>>>> <mailto:ptka@mailbox.org.INVALID <ma...@mailbox.org.INVALID>> <mailto:ptka@mailbox.org.INVALID <ma...@mailbox.org.INVALID>
>>>>> <mailto:ptka@mailbox.org.INVALID <ma...@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 <ptka@mailbox.org.INVALID <ma...@mailbox.org.INVALID>
>>>>>> <mailto:ptka@mailbox.org.INVALID <ma...@mailbox.org.INVALID>> <mailto:ptka@mailbox.org.INVALID <ma...@mailbox.org.INVALID>
>>>>>> <mailto:ptka@mailbox.org.INVALID <ma...@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>
>>>>>> <https://github.com/ptka/incubator-nuttx#diff-fd079323b0636ac4012f50afe8c5555656d7a760b0429f46188919fe7807f8a5 <https://github.com/ptka/incubator-nuttx#diff-fd079323b0636ac4012f50afe8c5555656d7a760b0429f46188919fe7807f8a5>>
>>>>>> <https://github.com/ptka/incubator-nuttx#diff-fd079323b0636ac4012f50afe8c5555656d7a760b0429f46188919fe7807f8a5 <https://github.com/ptka/incubator-nuttx#diff-fd079323b0636ac4012f50afe8c5555656d7a760b0429f46188919fe7807f8a5>
>>>>>> <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>
>>>>>> <https://github.com/ptka/incubator-nuttx#diff-cffded10274b4845aae8c75bd91550d140214585ea17d47f2cf01dd021a16abe <https://github.com/ptka/incubator-nuttx#diff-cffded10274b4845aae8c75bd91550d140214585ea17d47f2cf01dd021a16abe>>
>>>>>> <https://github.com/ptka/incubator-nuttx#diff-cffded10274b4845aae8c75bd91550d140214585ea17d47f2cf01dd021a16abe <https://github.com/ptka/incubator-nuttx#diff-cffded10274b4845aae8c75bd91550d140214585ea17d47f2cf01dd021a16abe>
>>>>>> <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>
>>>>>> <https://github.com/ptka/incubator-nuttx#diff-befc8e04ddb3722f024f65ffd7648aac1cb24846d2b80fff6328e3cb5862220f <https://github.com/ptka/incubator-nuttx#diff-befc8e04ddb3722f024f65ffd7648aac1cb24846d2b80fff6328e3cb5862220f>>
>>>>>> <https://github.com/ptka/incubator-nuttx#diff-befc8e04ddb3722f024f65ffd7648aac1cb24846d2b80fff6328e3cb5862220f <https://github.com/ptka/incubator-nuttx#diff-befc8e04ddb3722f024f65ffd7648aac1cb24846d2b80fff6328e3cb5862220f>
>>>>>> <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 <tomek@cedro.info <ma...@cedro.info>
>>>>>>> <mailto:tomek@cedro.info <ma...@cedro.info>> <mailto:tomek@cedro.info <ma...@cedro.info>
>>>>>>> <mailto:tomek@cedro.info <ma...@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/>
>>>>>>> <http://www.tomek.cedro.info/ <http://www.tomek.cedro.info/>> <http://www.tomek.cedro.info/ <http://www.tomek.cedro.info/>
>>>>>>> <http://www.tomek.cedro.info/ <http://www.tomek.cedro.info/>>>


Re: Build Nuttx on MAC / ARM64 Ubuntu

Posted by Alan Carvalho de Assis <ac...@gmail.com>.
Flavio,

What is at line 308 of your drivers/sensors/Kconfig ?

Here is it just a "---help---", maybe the real issue is in the above line:
select SCHED_HPWORK if SENSORS_L3GD20_BUFFER_SIZE > 0

BTW, it seems like your kconfig-frontends is different from our.

BR,

Alan

On 1/29/22, Flavio de Castro Alves Filho <fl...@gmail.com> wrote:
> Hello Guys. Thank you for your fast response.
>
> @Alan, indeed it is an ARM-based Mac.
>
> @Peter, I added your patch in my NuttX project and ran again the
> configuration, but without success yet :-(
>
> Here is the output
>
> flavio@Flavios-MacBook-Pro nuttx % tools/configure.sh -m sim:nsh
>   Copy files
>   Select CONFIG_HOST_MACOS=y
>   Select CONFIG_HOST_ARM=y
>   Refreshing...
> make[2]: Nothing to be done for `clean_context'.
> CP: arch/dummy/Kconfig to
> /Users/flavio/mestrado/nuttx/nuttx/arch/dummy/dummy_kconfig
> CP: boards/dummy/Kconfig to
> /Users/flavio/mestrado/nuttx/nuttx/boards/dummy/dummy_kconfig
> LN: platform/board to /Users/flavio/mestrado/nuttx/apps/platform/dummy
> LN: include/arch to arch/sim/include
> LN: include/arch/board to
> /Users/flavio/mestrado/nuttx/nuttx/boards/sim/sim/sim/include
> LN: drivers/platform to /Users/flavio/mestrado/nuttx/nuttx/drivers/dummy
> LN: include/arch/chip to
> /Users/flavio/mestrado/nuttx/nuttx/arch/sim/include/sim
> /Users/flavio/mestrado/nuttx/nuttx/tools/link.sh
> /Users/flavio/mestrado/nuttx/nuttx/arch/sim/include/sim include/arch/chip
> LN: arch/sim/src/chip to
> /Users/flavio/mestrado/nuttx/nuttx/arch/sim/src/sim
> LN: arch/sim/src/board to
> /Users/flavio/mestrado/nuttx/nuttx/boards/sim/sim/sim/src
> touch .dirlinks
> mkkconfig in /Users/flavio/mestrado/nuttx/apps/boot
> mkkconfig in /Users/flavio/mestrado/nuttx/apps/canutils
> mkkconfig in /Users/flavio/mestrado/nuttx/apps/crypto
> mkkconfig in /Users/flavio/mestrado/nuttx/apps/examples
> mkkconfig in /Users/flavio/mestrado/nuttx/apps/fsutils
> mkkconfig in /Users/flavio/mestrado/nuttx/apps/gpsutils
> mkkconfig in /Users/flavio/mestrado/nuttx/apps/graphics
> mkkconfig in /Users/flavio/mestrado/nuttx/apps/industry
> mkkconfig in /Users/flavio/mestrado/nuttx/apps/interpreters
> mkkconfig in /Users/flavio/mestrado/nuttx/apps/math
> mkkconfig in /Users/flavio/mestrado/nuttx/apps/mlearning
> mkkconfig in /Users/flavio/mestrado/nuttx/apps/netutils
> mkkconfig in /Users/flavio/mestrado/nuttx/apps/system/libuv
> mkkconfig in /Users/flavio/mestrado/nuttx/apps/system
> mkkconfig in /Users/flavio/mestrado/nuttx/apps/testing
> mkkconfig in /Users/flavio/mestrado/nuttx/apps/wireless/bluetooth
> mkkconfig in /Users/flavio/mestrado/nuttx/apps/wireless/ieee802154
> mkkconfig in /Users/flavio/mestrado/nuttx/apps/wireless
> mkkconfig in /Users/flavio/mestrado/nuttx/apps
> arch/arm/src/imxrt/Kconfig:1504: syntax error
> arch/arm/src/imxrt/Kconfig:1503: invalid option
> arch/arm/src/stm32l4/Kconfig:5347: syntax error
> arch/arm/src/stm32l4/Kconfig:5296: missing end statement for this entry
> arch/arm/src/stm32l4/Kconfig:5164: missing end statement for this entry
> arch/arm/src/stm32l4/Kconfig:8: missing end statement for this entry
> arch/arm/Kconfig:1178: missing end statement for this entry
> arch/arm/Kconfig:7: missing end statement for this entry
> Kconfig:1957: missing end statement for this entry
> arch/arm/src/stm32l4/Kconfig:5346: invalid statement
> arch/arm/src/stm32l4/Kconfig:5356: unexpected end statement
> arch/arm/src/stm32l4/Kconfig:5359: syntax error
> arch/arm/src/stm32l4/Kconfig:5358: invalid statement
> arch/arm/src/stm32l4/Kconfig:5368: unexpected end statement
> arch/arm/src/stm32l4/Kconfig:5371: syntax error
> arch/arm/src/stm32l4/Kconfig:5370: invalid statement
> arch/arm/src/stm32l4/Kconfig:5380: unexpected end statement
> arch/arm/src/stm32l4/Kconfig:5382: unexpected end statement
> arch/arm/src/stm32l4/Kconfig:5384: unexpected end statement
> arch/arm/src/stm32l4/Kconfig:6253: unexpected end statement
> arch/arm/Kconfig:1179: unexpected end statement
> arch/arm/Kconfig:1199: unexpected end statement
> Kconfig:1959: unexpected end statement
> boards/sim/sim/sim/Kconfig:58: syntax error
> boards/sim/sim/sim/Kconfig:57: invalid option
> drivers/note/Kconfig:80: syntax error
> drivers/note/Kconfig:79: invalid option
> drivers/sensors/Kconfig:308: syntax error
> drivers/sensors/Kconfig:307: invalid option
> drivers/syslog/Kconfig:317: syntax error
> drivers/syslog/Kconfig:316: invalid option
> make: *** [olddefconfig] Error 1
> ERROR: failed to refresh
> flavio@Flavios-MacBook-Pro nuttx %
>
>
> Is there any missing requirement from my environment?
>
> How do I implement the manual architecture setup? I’m afraid that it won’t
> work either …
>
> Best regards,
>
> Flavio
>
>
>> On 29 Jan 2022, at 17:53, Peter Kalbus <pt...@mailbox.org.INVALID> wrote:
>>
>> Created PR to detect host CPU type:
>> https://github.com/apache/incubator-nuttx/pull/5374
>> <https://github.com/apache/incubator-nuttx/pull/5374>
>> <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 <ptka@mailbox.org
>>> <ma...@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 <ptka@mailbox.org.INVALID
>>>> <ma...@mailbox.org.INVALID> <mailto:ptka@mailbox.org.INVALID
>>>> <ma...@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 <ptka@mailbox.org.INVALID
>>>>> <ma...@mailbox.org.INVALID> <mailto:ptka@mailbox.org.INVALID
>>>>> <ma...@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>
>>>>> <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>
>>>>> <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>
>>>>> <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 <tomek@cedro.info
>>>>>> <ma...@cedro.info> <mailto:tomek@cedro.info
>>>>>> <ma...@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/> <http://www.tomek.cedro.info/
>>>>>> <http://www.tomek.cedro.info/>>
>
>

Re: Build Nuttx on MAC / ARM64 Ubuntu

Posted by Flavio de Castro Alves Filho <fl...@gmail.com>.
Hello Guys. Thank you for your fast response.

@Alan, indeed it is an ARM-based Mac.

@Peter, I added your patch in my NuttX project and ran again the configuration, but without success yet :-(

Here is the output

flavio@Flavios-MacBook-Pro nuttx % tools/configure.sh -m sim:nsh
  Copy files
  Select CONFIG_HOST_MACOS=y
  Select CONFIG_HOST_ARM=y
  Refreshing...
make[2]: Nothing to be done for `clean_context'.
CP: arch/dummy/Kconfig to /Users/flavio/mestrado/nuttx/nuttx/arch/dummy/dummy_kconfig
CP: boards/dummy/Kconfig to /Users/flavio/mestrado/nuttx/nuttx/boards/dummy/dummy_kconfig
LN: platform/board to /Users/flavio/mestrado/nuttx/apps/platform/dummy
LN: include/arch to arch/sim/include
LN: include/arch/board to /Users/flavio/mestrado/nuttx/nuttx/boards/sim/sim/sim/include
LN: drivers/platform to /Users/flavio/mestrado/nuttx/nuttx/drivers/dummy
LN: include/arch/chip to /Users/flavio/mestrado/nuttx/nuttx/arch/sim/include/sim
/Users/flavio/mestrado/nuttx/nuttx/tools/link.sh /Users/flavio/mestrado/nuttx/nuttx/arch/sim/include/sim include/arch/chip
LN: arch/sim/src/chip to /Users/flavio/mestrado/nuttx/nuttx/arch/sim/src/sim
LN: arch/sim/src/board to /Users/flavio/mestrado/nuttx/nuttx/boards/sim/sim/sim/src
touch .dirlinks
mkkconfig in /Users/flavio/mestrado/nuttx/apps/boot
mkkconfig in /Users/flavio/mestrado/nuttx/apps/canutils
mkkconfig in /Users/flavio/mestrado/nuttx/apps/crypto
mkkconfig in /Users/flavio/mestrado/nuttx/apps/examples
mkkconfig in /Users/flavio/mestrado/nuttx/apps/fsutils
mkkconfig in /Users/flavio/mestrado/nuttx/apps/gpsutils
mkkconfig in /Users/flavio/mestrado/nuttx/apps/graphics
mkkconfig in /Users/flavio/mestrado/nuttx/apps/industry
mkkconfig in /Users/flavio/mestrado/nuttx/apps/interpreters
mkkconfig in /Users/flavio/mestrado/nuttx/apps/math
mkkconfig in /Users/flavio/mestrado/nuttx/apps/mlearning
mkkconfig in /Users/flavio/mestrado/nuttx/apps/netutils
mkkconfig in /Users/flavio/mestrado/nuttx/apps/system/libuv
mkkconfig in /Users/flavio/mestrado/nuttx/apps/system
mkkconfig in /Users/flavio/mestrado/nuttx/apps/testing
mkkconfig in /Users/flavio/mestrado/nuttx/apps/wireless/bluetooth
mkkconfig in /Users/flavio/mestrado/nuttx/apps/wireless/ieee802154
mkkconfig in /Users/flavio/mestrado/nuttx/apps/wireless
mkkconfig in /Users/flavio/mestrado/nuttx/apps
arch/arm/src/imxrt/Kconfig:1504: syntax error
arch/arm/src/imxrt/Kconfig:1503: invalid option
arch/arm/src/stm32l4/Kconfig:5347: syntax error
arch/arm/src/stm32l4/Kconfig:5296: missing end statement for this entry
arch/arm/src/stm32l4/Kconfig:5164: missing end statement for this entry
arch/arm/src/stm32l4/Kconfig:8: missing end statement for this entry
arch/arm/Kconfig:1178: missing end statement for this entry
arch/arm/Kconfig:7: missing end statement for this entry
Kconfig:1957: missing end statement for this entry
arch/arm/src/stm32l4/Kconfig:5346: invalid statement
arch/arm/src/stm32l4/Kconfig:5356: unexpected end statement
arch/arm/src/stm32l4/Kconfig:5359: syntax error
arch/arm/src/stm32l4/Kconfig:5358: invalid statement
arch/arm/src/stm32l4/Kconfig:5368: unexpected end statement
arch/arm/src/stm32l4/Kconfig:5371: syntax error
arch/arm/src/stm32l4/Kconfig:5370: invalid statement
arch/arm/src/stm32l4/Kconfig:5380: unexpected end statement
arch/arm/src/stm32l4/Kconfig:5382: unexpected end statement
arch/arm/src/stm32l4/Kconfig:5384: unexpected end statement
arch/arm/src/stm32l4/Kconfig:6253: unexpected end statement
arch/arm/Kconfig:1179: unexpected end statement
arch/arm/Kconfig:1199: unexpected end statement
Kconfig:1959: unexpected end statement
boards/sim/sim/sim/Kconfig:58: syntax error
boards/sim/sim/sim/Kconfig:57: invalid option
drivers/note/Kconfig:80: syntax error
drivers/note/Kconfig:79: invalid option
drivers/sensors/Kconfig:308: syntax error
drivers/sensors/Kconfig:307: invalid option
drivers/syslog/Kconfig:317: syntax error
drivers/syslog/Kconfig:316: invalid option
make: *** [olddefconfig] Error 1
ERROR: failed to refresh
flavio@Flavios-MacBook-Pro nuttx % 


Is there any missing requirement from my environment?

How do I implement the manual architecture setup? I’m afraid that it won’t work either … 

Best regards,

Flavio


> On 29 Jan 2022, at 17:53, Peter Kalbus <pt...@mailbox.org.INVALID> wrote:
> 
> Created PR to detect host CPU type: https://github.com/apache/incubator-nuttx/pull/5374 <https://github.com/apache/incubator-nuttx/pull/5374> <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 <ptka@mailbox.org <ma...@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 <ptka@mailbox.org.INVALID <ma...@mailbox.org.INVALID> <mailto:ptka@mailbox.org.INVALID <ma...@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 <ptka@mailbox.org.INVALID <ma...@mailbox.org.INVALID> <mailto:ptka@mailbox.org.INVALID <ma...@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> <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> <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> <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 <tomek@cedro.info <ma...@cedro.info> <mailto:tomek@cedro.info <ma...@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/> <http://www.tomek.cedro.info/ <http://www.tomek.cedro.info/>>


Re: Build Nuttx on MAC / ARM64 Ubuntu

Posted by Peter Kalbus <pt...@mailbox.org.INVALID>.
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 <pt...@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 <ptka@mailbox.org.INVALID <ma...@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 <ptka@mailbox.org.INVALID <ma...@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 <tomek@cedro.info <ma...@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/>
>>> 
>> 
> 


Re: Build Nuttx on MAC / ARM64 Ubuntu

Posted by Peter Kalbus <pt...@mailbox.org.INVALID>.
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 <pt...@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 <pt...@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
>> 
> 


Re: Build Nuttx on MAC

Posted by Peter Kalbus <pt...@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 <pt...@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
> 


Re: Build Nuttx on MAC

Posted by Peter Kalbus <pt...@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


Re: Build Nuttx on MAC

Posted by 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

Re: Build Nuttx on MAC

Posted by Alan Carvalho de Assis <ac...@gmail.com>.
Hi Flávio,

Is it MacBook M1 powered by ARM processor? If so it could explain the
errors, since this CPU is new and AFAIK nobody compiled NuttX on it
yet.

Please try to run: make V=1

It will show more information and could give us more hints.

BR,

Alan

On 1/29/22, Flavio de Castro Alves Filho <fl...@gmail.com> wrote:
> Hello Guys,
>
> I am trying to build NuttX on my MAC computer.
>
> The computer is running Monterey MacOS version.
>
> I followed the instructions from the website. I intend to build the
> simulator configuration.
>
> Here are the messages from the terminal:
>
> flavio@Flavios-MacBook-Pro nuttx % make distclean
> make[2]: Nothing to be done for `clean'.
> make[2]: Nothing to be done for `clean'.
> make[2]: Nothing to be done for `clean'.
> make[2]: Nothing to be done for `clean'.
> make[2]: Nothing to be done for `clean'.
> make[2]: Nothing to be done for `clean'.
> make[2]: Nothing to be done for `clean'.
> make[2]: Nothing to be done for `clean'.
> make[2]: Nothing to be done for `clean'.
> make[2]: Nothing to be done for `clean'.
> make[2]: Nothing to be done for `clean'.
> make[2]: Nothing to be done for `clean'.
> make[2]: Nothing to be done for `clean'.
> make[3]: Nothing to be done for `clean'.
> make[2]: Nothing to be done for `clean'.
> make[3]: Nothing to be done for `clean'.
> make[3]: Nothing to be done for `clean'.
> make[2]: Nothing to be done for `clean_context'.
> flavio@Flavios-MacBook-Pro nuttx % ./tools/configure.sh -m sim:nsh
>   Copy files
>   Select CONFIG_HOST_MACOS=y
>   Refreshing...
> make[2]: Nothing to be done for `clean_context'.
> CP: arch/dummy/Kconfig to
> /Users/flavio/mestrado/nuttx/nuttx/arch/dummy/dummy_kconfig
> CP: boards/dummy/Kconfig to
> /Users/flavio/mestrado/nuttx/nuttx/boards/dummy/dummy_kconfig
> LN: platform/board to /Users/flavio/mestrado/nuttx/apps/platform/dummy
> LN: include/arch to arch/sim/include
> LN: include/arch/board to
> /Users/flavio/mestrado/nuttx/nuttx/boards/sim/sim/sim/include
> LN: drivers/platform to /Users/flavio/mestrado/nuttx/nuttx/drivers/dummy
> LN: include/arch/chip to
> /Users/flavio/mestrado/nuttx/nuttx/arch/sim/include/sim
> /Users/flavio/mestrado/nuttx/nuttx/tools/link.sh
> /Users/flavio/mestrado/nuttx/nuttx/arch/sim/include/sim include/arch/chip
> LN: arch/sim/src/chip to
> /Users/flavio/mestrado/nuttx/nuttx/arch/sim/src/sim
> LN: arch/sim/src/board to
> /Users/flavio/mestrado/nuttx/nuttx/boards/sim/sim/sim/src
> touch .dirlinks
> mkkconfig in /Users/flavio/mestrado/nuttx/apps/boot
> mkkconfig in /Users/flavio/mestrado/nuttx/apps/canutils
> mkkconfig in /Users/flavio/mestrado/nuttx/apps/crypto
> mkkconfig in /Users/flavio/mestrado/nuttx/apps/examples
> mkkconfig in /Users/flavio/mestrado/nuttx/apps/fsutils
> mkkconfig in /Users/flavio/mestrado/nuttx/apps/gpsutils
> mkkconfig in /Users/flavio/mestrado/nuttx/apps/graphics
> mkkconfig in /Users/flavio/mestrado/nuttx/apps/industry
> mkkconfig in /Users/flavio/mestrado/nuttx/apps/interpreters
> mkkconfig in /Users/flavio/mestrado/nuttx/apps/math
> mkkconfig in /Users/flavio/mestrado/nuttx/apps/mlearning
> mkkconfig in /Users/flavio/mestrado/nuttx/apps/netutils
> mkkconfig in /Users/flavio/mestrado/nuttx/apps/system/libuv
> mkkconfig in /Users/flavio/mestrado/nuttx/apps/system
> mkkconfig in /Users/flavio/mestrado/nuttx/apps/testing
> mkkconfig in /Users/flavio/mestrado/nuttx/apps/wireless/bluetooth
> mkkconfig in /Users/flavio/mestrado/nuttx/apps/wireless/ieee802154
> mkkconfig in /Users/flavio/mestrado/nuttx/apps/wireless
> mkkconfig in /Users/flavio/mestrado/nuttx/apps
> arch/arm/src/imxrt/Kconfig:1504: syntax error
> arch/arm/src/imxrt/Kconfig:1503: invalid option
> arch/arm/src/stm32l4/Kconfig:5347: syntax error
> arch/arm/src/stm32l4/Kconfig:5296: missing end statement for this entry
> arch/arm/src/stm32l4/Kconfig:5164: missing end statement for this entry
> arch/arm/src/stm32l4/Kconfig:8: missing end statement for this entry
> arch/arm/Kconfig:1178: missing end statement for this entry
> arch/arm/Kconfig:7: missing end statement for this entry
> Kconfig:1957: missing end statement for this entry
> arch/arm/src/stm32l4/Kconfig:5346: invalid statement
> arch/arm/src/stm32l4/Kconfig:5356: unexpected end statement
> arch/arm/src/stm32l4/Kconfig:5359: syntax error
> arch/arm/src/stm32l4/Kconfig:5358: invalid statement
> arch/arm/src/stm32l4/Kconfig:5368: unexpected end statement
> arch/arm/src/stm32l4/Kconfig:5371: syntax error
> arch/arm/src/stm32l4/Kconfig:5370: invalid statement
> arch/arm/src/stm32l4/Kconfig:5380: unexpected end statement
> arch/arm/src/stm32l4/Kconfig:5382: unexpected end statement
> arch/arm/src/stm32l4/Kconfig:5384: unexpected end statement
> arch/arm/src/stm32l4/Kconfig:6253: unexpected end statement
> arch/arm/Kconfig:1179: unexpected end statement
> arch/arm/Kconfig:1199: unexpected end statement
> Kconfig:1959: unexpected end statement
> boards/sim/sim/sim/Kconfig:58: syntax error
> boards/sim/sim/sim/Kconfig:57: invalid option
> drivers/note/Kconfig:80: syntax error
> drivers/note/Kconfig:79: invalid option
> drivers/sensors/Kconfig:308: syntax error
> drivers/sensors/Kconfig:307: invalid option
> drivers/syslog/Kconfig:317: syntax error
> drivers/syslog/Kconfig:316: invalid option
> make: *** [olddefconfig] Error 1
> ERROR: failed to refresh
>
>
> I would like to ask for help to figure out how to solve this issue.
>
> Best regards,
>
> Flavio
>
>