Skip to content

macos build support for nvnmos - #144

Open
Souparna-Mandal wants to merge 1 commit into
NVIDIA:mainfrom
Souparna-Mandal:feature/macos-support-arm64
Open

Souparna-Mandal wants to merge 1 commit into
NVIDIA:mainfrom
Souparna-Mandal:feature/macos-support-arm64

Conversation

@Souparna-Mandal

Copy link
Copy Markdown

This adds Apple Silicon macOS support to the existing build instructions, test helpers, interactive demo and benchmark runner. The MR contains only the macOS changes.

Changes

  • Use platform-specific library filenames and DYLD_LIBRARY_PATH in the Rust test helpers while retaining Linux handling.
  • Adapt demo interface discovery and socket checks to macOS using nc and netstat. Listener ownership checks match the PID, exact pathname and listening flag because accepted connections can share the same pathname.
  • Require Bash 4.3+ for the demo’s existing shell features and bypass stdbuf on macOS to preserve the library-loading environment.
  • Add .dylib discovery and lsof port checks to the benchmark runner.
  • Fix the stale-socket test fixture by binding and dropping a real Unix listener. Previously, an ordinary empty file produced ENOTSOCK on macOS instead of exercising stale-socket cleanup.
  • Add the existing libiconv/1.17 recipe pin to Conan’s host requires. Boost requires it on macOS, but it was listed only under build_requires, causing strict dependency resolution to fail. Existing pins remain unchanged.
  • Update the existing build and usage documentation.

Validation

During the port, native C++ and Rust builds, the C example, selected daemon/GStreamer tests, the headless UDP demo and the small benchmark preset passed.

Remaining limitations from Souparna's 🤖 buddy

  • UDP A/V validation still fails on ancillary alignment; a diagnostic run also exposed an analyser bounds panic. These remain separate follow-ups.
  • Strict macOS Clippy checks report two dead-code diagnostics.
  • Benchmark CPU/RSS metrics still depend on Linux /proc.
  • Native macOS MXL and DeepStream/Rivermax operation were not validated.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant