Build: GCC builds of main fail since -Werror (#15660); Linux CI only builds with Clang
envgap__OrcaSlicer__OrcaSlicer-15700
01 / FAILURE SIGNATURE
As reported upstream
src/libslic3r/TextureToColor/Repair.hpp:97: error: 'OutputIterator CGAL::Polygon_mesh_processing::triangulate_hole(...)' is deprecated [-Werror=deprecated-declarations]
Not a benchmark task.
- In a clean container the reported failure did not reproduce, or the known fix did not make the project run.
02 / ENVIRONMENT RECIPE
- Base commit
54968834932950f67596e70f64845c1a72ed252c- Manifest
CMakeLists.txt- Reproduce
Awaiting issue-specific recipe- Run under trace
Awaiting a meaningful runtime command
03 / ORIGINAL ISSUE TEXT
OrcaSlicer/OrcaSlicer #15700 · read the original issue
### Is this issue reproducible in the latest nightly build? Yes. This is a build-from-source problem on current `main` (70247ad29). ### Is there an existing issue for this problem? I searched and found none. ### OrcaSlicer Version `main` at 70247ad29, built from source ### Regression compared to a previous version Yes. GCC builds worked before #15660 (build: enable -Werror with a documented exception list). ### Operating System (OS) Linux ### OS Version Debian 13 (trixie), GCC 14.2.0. Dependencies are built from the bundled recipes (CGAL 5.6.3, Eigen, wxWidgets 3.3.2, TBB). ### Printer n/a (build issue) ### How to reproduce `./build_linux.sh -s`, which uses GCC by default. ### Actual results The build stops. The first failure is: ``` src/libslic3r/TextureToColor/Repair.hpp:97: error: 'OutputIterator CGAL::Polygon_mesh_processing::triangulate_hole(...)' is deprecated [-Werror=deprecated-declarations] ``` Demoting that category, the next one stops in `src/libslic3r/GCode/ToolOrdering.cpp` on `-Werror=stringop-overflow=` inside libstdc++ (`bits/stl_algobase.h:452`). To see the whole picture I built with the `add_compile_options(-Werror)` line commented out. The build then completes. `maybe-uninitialized`, `array-bounds` and `template-id-cdtor` also show up, but those are already demoted for GCC. The warnings below are in categories that are not, so each would be an error: | Category | Location | |---|---| | `deprecated-declarations` | `src/libslic3r/TextureToColor/Repair.hpp:97` (the CGAL `triangulate_hole` overload with a plain output iterator) | | `deprecated-declarations` | `src/libslic3r/Geometry.cpp:389`, `:486` (Eigen `eulerAngles`) | | `deprecated-declarations` | `tests/libslic3r/test_vendor_cache.cpp:1196` (`boost::filesystem::copy_file` with `copy_option`) | | `unused-value` | `src/slic3r/GUI/DeviceCore/DevFilaBlackList.cpp:277-280` (21 reports) | | `dangling-reference` | `src/slic3r/GUI/Gizmos/GLGizmoPainterBase.cpp:1225` | | `enum-compare` | `src/slic3r/GUI/OptionsGroup.cpp:418` (`wxStretch` vs `wxAlignment`) | | `format-truncation` | `src/libslic3r/Time.cpp:247` | | `range-loop-construct` | `src/libslic3r/Preset.cpp:497` | | `attributes` | `src/slic3r/plugin/PythonInterpreter.hpp:38`, and `deps_src/pybind11/.../pytypes.h:750` (visibility of a pybind11 field) | | `stringop-overflow` | libstdc++ `bits/stl_algobase.h:452`, compiling `GCode/ToolOrdering.cpp` and `Print.cpp` | | `dangling-pointer` | Eigen `CoreEvaluators.h:676` / `BinaryFunctors.h:373`, compiling `SLAPrint.cpp` | | `use-after-free` | wxWidgets `wx/itemid.h`, compiling `GUI/ObjectDataViewModel.cpp` | | `odr` | TBB `tbbmalloc/Customize.h:95`, reported at the LTO link of `orca-slicer`. I didn't check whether `-Werror` applies at that step. | Linux CI builds with Clang (`build_linux.sh -istrlL` in `build_orca.yml`), and `deprecated-declarations` is disabled only for Clang (`CMakeLists.txt:578`, "legacy OpenGL calls"). So none of this shows up in CI. The GCC path, which is `build_linux.sh`'s default, isn't built there. ### Expected results The default GCC build of `main` succeeds. Suggestions, roughly from least to most work: - Enable `-Werror` only for the compilers CI builds with, until a GCC job exists. - Or extend the GCC exception lists with the categories above. `stringop-overflow`, `dangling-pointer` and `use-after-free` there come from libstdc++, Eigen and wxWidgets headers. - And fix the in-tree sites. For `Repair.hpp:97`, use `triangulate_hole(mesh, h, CGAL::parameters::default_values().face_output_iterator(...))`, as #12592 did for `MeshBoolean.cpp`. - Add a GCC build to CI so this class of problem gets caught. ### Project file & Debug log uploads n/a. This is a build issue; the relevant compiler output is quoted above.
04 / LABELS
Labels from the report text only; not yet run
No supported category has been assigned.
Label rules and the text that matched
[]