`withNccl` defaults to `true`, unconditionally adding `nccl` to `buildInputs`.
This is problematic on platforms where NCCL is unavailable, such as pre-Thor Jetson (Orin), where `nccl.meta.available` is `false` due to its `badPlatforms` assertion. In such cases, libnvshmem would still pull the unavailable `nccl` into its closure, leading to an eval-time error.
We are changing the default to `nccl.meta.available` to make libnvshmem skip NCCL automatically on platforms where NCCL is unsupported. We preserving the existing behaviour everywhere else (x86_64-linux, Thor Jetson) where `nccl.meta.available` is `true`.
Note that this guard has already been added to other CUDA modules such as `cudaPackages.cudss` in #437723.
The `find_a_program`/`for_each_path` machine-prefix patch series has now
landed on gcc `master`, so point the `fetchpatch` entries at the
`gcc-mirror/gcc` commit `.diff`s rather than the v5 mailing-list `raw`
URLs (matching the existing `for_each_path` rework patch).
Linking the approving mailing list posts, along with the commit hash
each of the 4 commits (by title) landed as.
- <https://inbox.sourceware.org/gcc-patches/6c3a085d-fa62-4b24-b4ca-ee5c6ac11be0@oss.qualcomm.com/>
Approved the first two patches together.
1. `find_a_program: Separate from find_a_file` → 948eb02800777d0318ee2a38bf32076afee739f2
2. `driver: Simplify find_a_program and find_a_file` → 073b4656d07e40f83a1db7f4462ab2d68b1875a2
- <https://inbox.sourceware.org/gcc-patches/324798d3-effb-4dc5-86ab-a1c461390d64@oss.qualcomm.com/>
3. `for_each_path: Pass to callback whether dir is machine-disambiguated` → f62f68e7c4bde0385fbd2dba3e926586dd2f1281
- <https://inbox.sourceware.org/gcc-patches/ae270a41-fae9-4442-a276-0433ea752f2e@oss.qualcomm.com/>
4. `find_a_program: Search with machine prefix in some cases` → a514707ffd7d58b140686036c2dece43ecb7d33c
We also include an additional commit,
6b008944e7bc3a342a734c4fcf1001d63fd0a6f8, a one-line `for_each_path` fix
against a mistake that I made in the previous commit. It is applied as a
prerequisite both so we also have the fix, and because without the
latter patches would have conflicts.