Skip to content

Fix GCC 8/9/10 nightly failures: bit_cast, brace-init, -Wno-gnu-*#9037

Draft
alliepiper wants to merge 3 commits into
NVIDIA:mainfrom
alliepiper:ci/fix-nightly-20260515
Draft

Fix GCC 8/9/10 nightly failures: bit_cast, brace-init, -Wno-gnu-*#9037
alliepiper wants to merge 3 commits into
NVIDIA:mainfrom
alliepiper:ci/fix-nightly-20260515

Conversation

@alliepiper
Copy link
Copy Markdown
Contributor

Fixes three independent build failures from the 2026-05-15 nightly (run 25900203790).

Changes

  • libcudacxx bit_cast.h: GCC 8/9/10 don't register __float128 in standard type traits, so default_initializable<__float128> fails concept check even though __float128 x; is valid C++. The __builtin_bit_cast path is available from GCC 11+; extend the existing GCC ≤8 workaround to GCC ≤10.

  • CUB catch2_test_device_reduce_env.cu: GCC 8/9 require an explicit type name when returning an aggregate via braced-init-list. Fix two callsites (nondeterministic_reduce_tuning and deterministic_reduce_tuning) to use named constructors instead of bare {...}.

  • CMake CCCLBuildCompilerTargets.cmake: -Wno-gnu-line-marker and -Wno-gnu-zero-variadic-macro-arguments are silently accepted by GCC < 10 without -Werror, so append_option_if_available adds them; but the actual build has -Werror active and passes these via nvcc -Xcompiler=, where GCC < 10 rejects unknown -Wno-* flags. Guard both flags behind GCC >= 10.

Test plan

  • GCC 10 + CTK 12.0: numeric_limits<__float128>::infinity() precompile — ✅ PASS
  • GCC 11 + CTK 12.0: same, no regression — ✅ PASS
  • GCC 8 + CTK 12.0: cub.test.device.reduce_env.lid_0 build — ✅ PASS
  • GCC 9 + CTK 12.0: same — ✅ PASS

Notes

CI is scoped to the affected GCC 8/9/10 toolchains via workflows.override. The override commit and skip tags must be reset before merging.

@copy-pr-bot
Copy link
Copy Markdown
Contributor

copy-pr-bot Bot commented May 15, 2026

Auto-sync is disabled for draft pull requests in this repository. Workflows must be run manually.

Contributors can view more details about this message here.

@cccl-authenticator-app cccl-authenticator-app Bot moved this from Todo to In Progress in CCCL May 15, 2026
@alliepiper
Copy link
Copy Markdown
Contributor Author

/ok to test 1c6c2cf

{
#if !_CCCL_COMPILER(GCC, <=, 8)
#if !_CCCL_COMPILER(GCC, <=, 10)
static_assert(::cuda::std::default_initializable<_To>,
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

wasnt there a PR that changed this to is_constructible

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We switched it back (@fbusato) 8463734

I just noticed that the static assert message doesn't match the comparison, I'll fix that here.

@github-actions

This comment has been minimized.

@alliepiper alliepiper force-pushed the ci/fix-nightly-20260515 branch from 1c6c2cf to e91bd7b Compare May 15, 2026 23:06
@alliepiper
Copy link
Copy Markdown
Contributor Author

/ok to test e91bd7b

@github-actions
Copy link
Copy Markdown
Contributor

😬 CI Workflow Results

🟥 Finished in 1h 11m: Pass: 54%/42 | Total: 19h 52m | Max: 1h 11m | Hits: 28%/207381

See results here.

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

Labels

None yet

Projects

Status: In Progress

Development

Successfully merging this pull request may close these issues.

2 participants