InsightSoftwareConsortium / InsightSoftwareConsortium/ITKPythonPackage
COMP: Pinned CastXML 0.6.5 cannot parse gcc-toolset-14 `<limits>` (`_Float32`/`F32`) — blocks all manylinux_2_28 wheel builds
- 主要言語
- CMake
- スター
- 66
- フォーク
- 25
- 平均マージ
- 1日 18時間
- マージ済み PR(30日)
- 2
説明
The CastXML 0.6.5 binary used by the manylinux_2_28 wheel builds cannot parse GCC 14's ``, so **every** Linux Python wrapping job fails for remote modules — on `main`, not only on PRs. CastXML 0.7.0 (2026-02-25) postdates the pin and the equivalent gcc-13 defect was fixed upstream, so bumping the pinned CastXML is the likely fix.
Failure detail and error text
manylinux_2_28 dockcross containers now ship `gcc-toolset-14`. GCC 14's `` uses the `__glibcxx_float_n(32)` macro family, which expands to `F32` floating literal suffixes and `__builtin_huge_valf32`. CastXML 0.6.5's embedded Clang does not support these:
```
invalid suffix 'F32' on floating constant
typedef redefinition with different types ('float' vs 'struct __castxml_Float32_s')
```
Reported location: `/opt/rh/gcc-toolset-14/root/usr/include/c++/14/limits:1989`.
Scope of impact
- All 8 Linux Python wrapping jobs fail.
- Reproduced on module `main` branches — this is not introduced by any PR.
- Affects **any** ITK remote module that builds Python wheels on manylinux_2_28, i.e. the whole remote-module wheel fleet.
- First observed during CI triage of ITKMontage PR #242 (merged 2026-04-15).
Upstream status and suggested fixes, in order of preference
- CastXML releases since the 0.6.5 pin: v0.6.9, v0.6.10 (2024-11-27), v0.6.11 (2025-02-11), v0.6.12/v0.6.13 (2025-08-28), **v0.7.0 (2026-02-25)**.
- Upstream CastXML#251 "gcc-13.2.0 unknown type name `_Float32`" — CLOSED 2024-01-23. Same defect class, already fixed for gcc-13.
1. **Bump the pinned CastXML binary** in the wheel-build docker images to v0.7.0 (or ≥0.6.10) and re-run a Linux wrapping job. This is the expected fix and should be tried first.
2. If 0.7.0 still fails on gcc-14, file a fresh upstream issue at https://github.com/CastXML/CastXML with the `limits:1989` reproducer.
3. Stop-gap: pin the dockcross image tags back to a `gcc-toolset-13` revision.
4. Alternative: configure CastXML to use its own bundled Clang headers rather than the GCC toolset headers.
コントリビューションガイド
このリポジトリのコントリビューションガイドは索引されていません
調査の方向性
Start by locating the pinned CastXML binary in the wheel-build Docker image definitions and checking the current Linux wrapping configuration. Update the pin to a supported release, run a manylinux_2_28 Linux wrapping job, and consider the issue done when the affected Python wheel jobs pass with GCC 14.
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- cmake, docker, python
- 領域
- build-system, ci-cd, devops
- issue の種類
- バグ
- 難易度
- 3/5
- 見積もり時間
- 1〜2日
- 活発さ
- 静か
- 明瞭さ
- おおむね明確
- 初心者へのやさしさ
- 58/100