On Thu, Nov 27, 2025 at 04:39:58PM +0100, Stephen Sinclair wrote: >... > The proposed solution doesn't really make sense to me, I do not see > why adding -g1 would drastically affect the build time. >... > Note that the only reason parallel is disabled is that the build also > takes far too much memory. The code is very C++ template heavy. >...
What you are missing is that for such code it is not unusual that a large part of build time and memory usage is for generating debug information. For some C++ code the build time of packages more than doubled on riscv64 with GCC 15 just due to one suboption of -g: https://lists.debian.org/debian-riscv/2025/09/msg00017.html https://lists.debian.org/debian-riscv/2025/09/msg00019.html Debug info is useful and should be available, but having less available on a fringe architecture is a reasonable tradeoff for fixing a build. >... > In any case I have no problem adding this change if it's confirmed to > fix the problem for now but it seems like a band-aid. >... Yes, it is a band-aid. On the porterbox (identical HW as the buildds) I got the file that didn't build in 12 hours on the buildd built in 2 hours with -g1. That's still more time for one file than the whole package on the other architectures, but for now we have to live with the slow riscv64 buildds. >... > I tried building the > package in a qemu environment for riscv64 with and without the "-g1" > option but in both cases the build took so long (12h+) that I couldn't > even benchmark it properly. >... On amd64 I got a 20% reduction of siconos build time with export DEB_CXXFLAGS_MAINT_APPEND += -g1 Not as impressive as what happens on riscv64, but this is something you could try for seeing that -g1 does make a measurable difference. > Steve cu Adrian > On Mon, Nov 24, 2025 at 7:21 PM Adrian Bunk <[email protected]> wrote: > > > > Source: siconos > > Version: 4.4.0+dfsg-5 > > Severity: serious > > Tags: ftbfs patch > > X-Debbugs-Cc: [email protected] > > User: [email protected] > > Usertags: riscv64 > > > > https://buildd.debian.org/status/fetch.php?pkg=siconos&arch=riscv64&ver=4.4.0%2Bdfsg-5&stamp=1763696177&raw=0 > > > > ... > > [ 88%] Building CXX object > > kernel/swig/CMakeFiles/_kernel.dir/__/__/wrap/siconos/kernelPYTHON_wrap.cxx.o > > cd > > /build/reproducible-path/siconos-4.4.0+dfsg/obj-riscv64-linux-gnu/kernel/swig > > && /usr/bin/c++ -D_kernel_EXPORTS > > -I/build/reproducible-path/siconos-4.4.0+dfsg/obj-riscv64-linux-gnu > > -I/build/reproducible-path/siconos-4.4.0+dfsg/wrap/swig > > -I/build/reproducible-path/siconos-4.4.0+dfsg/obj-riscv64-linux-gnu/wrap/siconos > > -I/build/reproducible-path/siconos-4.4.0+dfsg/kernel/swig > > -I/build/reproducible-path/siconos-4.4.0+dfsg/io/src > > -I/build/reproducible-path/siconos-4.4.0+dfsg/io/src/mechanics > > -I/build/reproducible-path/siconos-4.4.0+dfsg/io/src/serialization > > -I/build/reproducible-path/siconos-4.4.0+dfsg/obj-riscv64-linux-gnu/io > > -I/build/reproducible-path/siconos-4.4.0+dfsg/numerics/src/. > > -I/build/reproducible-path/siconos-4.4.0+dfsg/numerics/src/tools > > -I/build/reproducible-path/siconos-4.4.0+dfsg/numerics/src/tools/InterfaceToPathFerris > > -I/build/reproducible-path/siconos-4.4.0+dfsg/numerics/src/tools/internal > > -I/build/reproducible-path/siconos-4.4.0+dfsg/numerics/src/AVI > > -I/build/reproducible-path/siconos-4.4.0+dfsg/numerics/src/LCP > > -I/build/reproducible-path/siconos-4.4.0+dfsg/numerics/src/MLCP > > -I/build/reproducible-path/siconos-4.4.0+dfsg/numerics/src/SOCP > > -I/build/reproducible-path/siconos-4.4.0+dfsg/numerics/src/QP > > -I/build/reproducible-path/siconos-4.4.0+dfsg/numerics/src/Relay > > -I/build/reproducible-path/siconos-4.4.0+dfsg/numerics/src/FrictionContact > > -I/build/reproducible-path/siconos-4.4.0+dfsg/numerics/src/FrictionContact/Generated > > -I/build/reproducible-path/siconos-4.4.0+dfsg/numerics/src/NCP > > -I/build/reproducible-path/siconos-4.4.0+dfsg/numerics/src/MCP > > -I/build/reproducible-path/siconos-4.4.0+dfsg/numerics/src/GenericMechanical > > -I/build/reproducible-path/siconos-4.4.0+dfsg/numerics/src/VI > > -I/build/reproducible-path/siconos-4.4.0+dfsg/externals/tools > > -I/build/reproducible-path/siconos-4.4.0+dfsg/kernel/src/. > > -I/build/reproducible-path/siconos-4.4.0+dfsg/kernel/src/utils > > -I/build/reproducible-path/siconos-4.4.0+dfsg/kernel/src/utils/SiconosAlgebra > > > > -I/build/reproducible-path/siconos-4.4.0+dfsg/kernel/src/utils/SiconosMemory > > > > -I/build/reproducible-path/siconos-4.4.0+dfsg/kernel/src/utils/SiconosSharedLibrary > > > > -I/build/reproducible-path/siconos-4.4.0+dfsg/kernel/src/utils/SiconosTools > > -I/build/reproducible-path/siconos-4.4.0+dfsg/kernel/src/utils/ProgressBar > > -I/build/reproducible-path/siconos-4.4.0+dfsg/kernel/src/plugin > > -I/build/reproducible-path/siconos-4.4.0+dfsg/kernel/src/modelingTools > > -I/build/reproducible-path/siconos-4.4.0+dfsg/kernel/src/simulationTools > > -I/build/reproducible-path/siconos-4.4.0+dfsg/numerics/src -isystem > > /usr/include/python3.13 -isystem > > /usr/lib/riscv64-linux-gnu/python3-numpy/numpy/_core/include -isystem > > /usr/include/suitesparse -g -O2 > > -ffile-prefix-map=/build/reproducible-path/siconos-4.4.0+dfsg=. > > -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time > > -D_FORTIFY_SOURCE=2 -std=gnu++17 -fPIC -fno-strict-aliasing -MD -MT > > kernel/swig/CMakeFiles/_kernel.dir/__/__/wrap/siconos/kernelPYTHON_wrap.cxx.o > > -MF CMakeFiles/_kernel.dir/__/__/wrap/siconos/kernelPYTHON_wrap.cxx.o.d -o > > CMakeFiles/_kernel.dir/__/__/wrap/siconos/kernelPYTHON_wrap.cxx.o -c > > /build/reproducible-path/siconos-4.4.0+dfsg/obj-riscv64-linux-gnu/wrap/siconos/kernelPYTHON_wrap.cxx > > In file included from > > /build/reproducible-path/siconos-4.4.0+dfsg/obj-riscv64-linux-gnu/wrap/siconos/kernelPYTHON_wrap.cxx:5414: > > /build/reproducible-path/siconos-4.4.0+dfsg/kernel/src/utils/SiconosAlgebra/SiconosVectorIterator.hpp:30:17: > > warning: ‘template<class _Category, class _Tp, class _Distance, class > > _Pointer, class _Reference> struct std::iterator’ is deprecated > > [-Wdeprecated-declarations] > > 30 | : public std::iterator<std::forward_iterator_tag, T> > > | ^~~~~~~~ > > In file included from /usr/include/c++/15/bits/stl_algobase.h:65, > > from /usr/include/c++/15/bits/specfun.h:43, > > from /usr/include/c++/15/cmath:3913, > > from /usr/include/c++/15/math.h:36, > > from /usr/include/python3.13/Python.h:23, > > from > > /build/reproducible-path/siconos-4.4.0+dfsg/obj-riscv64-linux-gnu/wrap/siconos/kernelPYTHON_wrap.cxx:203: > > /usr/include/c++/15/bits/stl_iterator_base_types.h:129:34: note: declared > > here > > 129 | struct _GLIBCXX17_DEPRECATED iterator > > | ^~~~~~~~ > > E: Build killed with signal TERM after 720 minutes of inactivity > > > > > > Workaround: > > > > --- siconos-4.4.0+dfsg/debian/rules 2025-11-19 17:55:47.000000000 +0200 > > +++ siconos-4.4.0+dfsg/debian/rules 2025-11-22 21:13:29.000000000 +0200 > > @@ -7,6 +7,11 @@ > > > > export DEB_BUILD_MAINT_OPTIONS=hardening=+bindnow > > > > +# avoid builds timing out on the buildds > > +ifneq (,$(filter $(DEB_HOST_ARCH), riscv64)) > > + export DEB_CXXFLAGS_MAINT_APPEND += -g1 > > +endif > > + > > # If SALSABUILD is set we want to drop debug info as well > > ifneq ($(SALSABUILD),) > > export DEB_CXXFLAGS_MAINT_APPEND += -g0

