← All tasks
cppOrcaSlicer/OrcaSlicer #15700Not a task: not reproduced

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.
Continue on GitHub ↗

04 / LABELS

Labels from the report text only; not yet run

No supported category has been assigned.

Label rules and the text that matched
[]