XRT
XRT copied to clipboard
Fedora 42 build fails: OpenCL-ICD-Loader 3.x incompatibility (xocl) and GCC 15 Werror in aiebu; deps script conflicts
Environment
- OS: Fedora 42
- Kernel: Linux 6.16.0-264.vanilla.fc42.x86_64
- gcc: 15.2.1
- cmake: 3.31.6
- OpenCL loader packages present by default:
OpenCL-ICD-Loader 3.0.6(+ devel) - Branch:
HEAD detached at d0a52f139based on main branch of xdna-driver
Repro steps
- Install deps:
sudo ./src/runtime_src/tools/scripts/xrtdeps.sh- DNF reports conflicts (see Observed).
- Build:
cd build ./build.sh -opt -noert -disable-werror -j $(nproc)
Observed behavior
- Deps script conflicts on Fedora 42 because it prefers
ocl-icdwhile Fedora shipsOpenCL-ICD-Loaderby default:- Conflicts between
OpenCL-ICD-Loader{,-devel}andocl-icd{,-devel}(also i686 pulled in).
- Conflicts between
- Build error in
xoclagainst Fedora’s loader headers:src/runtime_src/xocl/api/icd/ocl_icd_bindings.cpp:212:1: error: too many initializers for ‘const cl_icd_dispatch’ {aka ‘const _cl_icd_dispatch’}- Indicates the dispatch struct layout/definition differs from what
ocl_icd_bindings.*expects (appears tailored to ocl-icd 2.x, not Khronos OpenCL-ICD-Loader 3.x).
- Indicates the dispatch struct layout/definition differs from what
- Separate build stops due to
-Werrorenforced insideaiebuwith GCC 15 warnings:core/common/aiebu/src/cpp/preprocessor/preprocessor_input.h:80:30: error: ‘virtual std::vector<char>& ...::get_data(const std::string&)’ was hidden [-Werror=overloaded-virtual=]-DXRT_ENABLE_WERROR=0does not disable Werror in theaiebusubmodule.
Expected behavior
- XRT should build on Fedora 42 with the distro-default Khronos
OpenCL-ICD-Loader 3.xwithout package swaps. - A project-wide “disable Werror” switch should also cover submodules like
aiebu, or the warnings should be fixed/gated for GCC 15.
Requests
- ICD compatibility: Make
xoclICD bindings compatible withOpenCL-ICD-Loader 3.xheaders/ABI, or detect the loader variant and initialize the dispatch table accordingly. - Deps script: Update
xrtdeps.shfor Fedora 42 to:- Accept
OpenCL-ICD-Loader{,-devel}as valid alternatives toocl-icd{,-devel}. - Avoid pulling i686
ocl-icdwhich conflicts with 64-bit loader.
- Accept
- Werror control: Provide a cmake option that reliably disables
-Werroracross all submodules includingaiebu, or fix the GCC 15 warnings inaiebu.
The Werror bug seems to be partly solved. Compile without werror works for me on Fedora 42. Seems to be fixed by e37368b819b0acd30cec262d4b76c5f967d29cf6
Maintainers, Any plans on when this will be picked up? I have zero experience with this tech, but I can try to contribute if someone can mentor.