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

Reply via email to