toku-mac opened a new pull request, #3483:
URL: https://github.com/apache/nuttx-apps/pull/3483

   ## Summary
   
   * Add macOS support to the `hello_rust_cargo` CMake build configuration.
   * Depends on nuttx PR: sim/posix: Add APPLE to a build target for sim's 
configuration using CMake.
   
   ## Impact
   
   * Impact on build: Enables building on macOS.
   
   ## Testing
   
   I confirm that changes are verified on local setup and works as intended:
   * Build Host(s): OS (macOS 26.5), CPU(Apple M1), compiler(Apple clang 
version 21.0.0)
   * Target(s): arch(sim)
   * Ensure your PATH environment variable is properly configured to allow 
execution of: menuconfig, olddefconfig, savedefconfig, and setconfig.
   * Use the Rust toolchain version prior to nightly-2026-04-29 to avoid errors 
related to 
lib/rustlib/src/rust/library/std/src/sys/net/connection/socket/unix.rs.
   
   Configuration:
   
   ```
   ❯ make distclean
   NuttX has not been configured!
   To configure the project:
     tools/configure.sh <config>
   For a list of available configurations:
     tools/configure.sh -L
   
   ❯ cmake -S . -B build-debug -DBOARD_CONFIG=sim:nsh -GNinja
   -- NuttX Host Tools
   -- CMake C compiler: AppleClang
   -- CMake system name: Darwin
   -- CMake host system processor: arm64
      TOOLS_DIR path is "/Users/toku/nuttxspace/nuttx"
      HOST = Darwin
   -- Configuring done (0.1s)
   -- Generating done (0.4s)
   -- Build files have been written to: 
/Users/toku/nuttxspace/nuttx/build-debug/bin_host
   -- nuttx_add_subdirectory: Skipping cxx-oot-build
   -- Configuring done (2.9s)
   -- Generating done (1.0s)
   -- Build files have been written to: /Users/toku/nuttxspace/nuttx/build-debug
   
   ❯ printf "CONFIG_SYSTEM_TIME64=y
   CONFIG_FS_LARGEFILE=y
   CONFIG_TLS_NELEM=16
   CONFIG_DEV_URANDOM=y
   CONFIG_EXAMPLES_HELLO_RUST_CARGO=y
   CONFIG_EXAMPLES_HELLO_RUST_CARGO_STACKSIZE=8192
   " >> build-debug/.config
   
   ❯ cmake --build build-debug -t olddefconfig
   [0/2] Re-checking globbed directories...
   [1/2] cd /Users/toku/nuttxspace/nuttx && /opt/homebrew...ke -E touch 
/Users/toku/nuttxspace/nuttx/CMakeLists.tx
   /Users/toku/nuttxspace/nuttx/build-debug/.config:1819: warning: 
SYSTEM_TIME64 (defined at sched/Kconfig:170) set more than once. Old value "y", 
new value "y".
   /Users/toku/nuttxspace/nuttx/build-debug/.config:1820: warning: FS_LARGEFILE 
(defined at fs/Kconfig:20) set more than once. Old value "y", new value "y".
   /Users/toku/nuttxspace/nuttx/build-debug/.config:1821: warning: TLS_NELEM 
(defined at libs/libc/tls/Kconfig:45) set more than once. Old value "16", new 
value "16".
   /Users/toku/nuttxspace/nuttx/build-debug/.config:1822: warning: DEV_URANDOM 
(defined at drivers/crypto/Kconfig:16) set more than once. Old value "y", new 
value "y".
   /Users/toku/nuttxspace/nuttx/build-debug/.config:1823: warning: 
EXAMPLES_HELLO_RUST_CARGO (defined at 
/Users/toku/nuttxspace/apps/examples/rust/hello/Kconfig:6) set more than once. 
Old value "y", new value "y".
   /Users/toku/nuttxspace/nuttx/build-debug/.config:1824: warning: 
EXAMPLES_HELLO_RUST_CARGO_STACKSIZE (defined at 
/Users/toku/nuttxspace/apps/examples/rust/hello/Kconfig:25) set more than once. 
Old value "8192", new value "8192".
   Loaded configuration '/Users/toku/nuttxspace/nuttx/build-debug/.config'
   Configuration saved to '/Users/toku/nuttxspace/nuttx/build-debug/.config'
   ```
   
   Testing logs before change:
   
   ```
   ❯ cmake --build build-debug
   [0/1] Re-running CMake...
   -- NuttX Host Tools
   -- CMake C compiler: AppleClang
   -- CMake system name: Darwin
   -- CMake host system processor: arm64
      TOOLS_DIR path is "/Users/toku/nuttxspace/nuttx"
      HOST = Darwin
   -- Configuring done (0.1s)
   -- Generating done (0.1s)
   -- Build files have been written to: 
/Users/toku/nuttxspace/nuttx/build-debug/bin_host
   -- nuttx_add_subdirectory: Skipping cxx-oot-build
   -- Configuring done (3.0s)
   -- Generating done (0.8s)
   -- Build files have been written to: /Users/toku/nuttxspace/nuttx/build-debug
   [1202/1211] Building Rust crate hello
   FAILED: [code=101] apps/examples/rust/hello/hello/target/debug/libhello.a 
/Users/toku/nuttxspace/nuttx/build-debug/apps/examples/rust/hello/hello/target/debug/libhello.a
   cd /Users/toku/nuttxspace/nuttx/build-debug/apps/examples/rust/hello && 
/opt/homebrew/bin/cmake -E env 
NUTTX_INCLUDE_DIR=/Users/toku/nuttxspace/nuttx/include:/Users/toku/nuttxspace/nuttx/build-debug/include:/Users/toku/nuttxspace/nuttx/build-debug/include/arch
 RUSTFLAGS= cargo build -Zbuild-std=std,panic_abort -Zjson-target-spec 
--manifest-path /Users/toku/nuttxspace/apps/examples/rust/hello/Cargo.toml 
--target --target-dir 
/Users/toku/nuttxspace/nuttx/build-debug/apps/examples/rust/hello/hello/target
   error: "--target" takes a target architecture as an argument.
   
   Run `rustup target list` to see possible targets.
   [1205/1211] Linking C static library libs/libc/libc.a
   ninja: build stopped: subcommand failed.
   ```
   
   Testing logs after change:
   
   ```
   ❯ cmake --build build-debug
   [0/2] Re-checking globbed directories...
   [1/2] Re-running CMake...
   -- NuttX Host Tools
   -- CMake C compiler: AppleClang
   -- CMake system name: Darwin
   -- CMake host system processor: arm64
      TOOLS_DIR path is "/Users/toku/nuttxspace/nuttx"
      HOST = Darwin
   -- Configuring done (0.1s)
   -- Generating done (0.2s)
   -- Build files have been written to: 
/Users/toku/nuttxspace/nuttx/build-debug/bin_host
   -- nuttx_add_subdirectory: Skipping cxx-oot-build
   -- Configuring done (2.0s)
   -- Generating done (1.2s)
   -- Build files have been written to: /Users/toku/nuttxspace/nuttx/build-debug
   [0/4] Re-checking globbed directories...
   [1202/1211] Building Rust crate hello
      Compiling hello v0.1.0 (/Users/toku/nuttxspace/apps/examples/rust/hello)
       Finished `dev` profile [unoptimized + debuginfo] target(s) in 2.26s
   [1207/1211] Linking C executable nuttx
   ld: warning: -ld_classic is deprecated and will be removed in a future 
release
   [1208/1211] Generating System.map
   
                                                                                
   took 30s
   ❯ ./build-debug/nuttx
   
                                                                                
              NuttShell (NSH) NuttX-12.13.0                                     
                                              nsh> help
                                                                                
                          help usage:  help [-v] [<cmd>]
   
       .           cmp         fdinfo      mkrd        rm          true
       [           dirname     free        mount       rmdir       truncate
       ?           df          help        mv          set         uname
       alias       dmesg       hexdump     pidof       kill        umount
       unalias     echo        losetup     poweroff    pkill       unset
       basename    env         ln          quit        sleep       uptime
       break       exec        ls          printf      usleep      watch
       cat         exit        mkdir       ps          source      xd
       cd          expr        mkfatfs     pwd         test        wait
       cp          false       mkfifo      readlink    time
   
   Builtin Apps:
       dd                  nsh                 gpio
       dumpstack           sh                  hello
       gcov                ostest              hello_rust_cargo
   nsh> uname -a
   NuttX 12.13.0 1076cb933d-dirty May 15 2026 14:48:07 sim sim
   nsh> hello_rust_cargo
   {"name":"John","age":30}
   {"name":"Jane","age":25}
   Deserialized: Alice is 28 years old
   Pretty JSON:
   {
     "name": "Alice",
     "age": 28
   }
   Hello world from tokio!
   
   # An infinite loop here.
   ```
   
   ## PR verification Self-Check
   
   * [x] My PR adheres to Contributing 
[Guidelines](https://github.com/apache/nuttx/blob/master/CONTRIBUTING.md) and 
[Documentation](https://nuttx.apache.org/docs/latest/contributing/index.html) 
(git commit title and message, coding standard, etc).
   * [x] My PR is ready for review and can be safely merged into a codebase.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to