Debian Patches

Status for gecode-snapshot/6.2.0+git20260120-2

Patch Description Author Forwarded Bugs Origin Last update
examples-include =================================================================== no
ppc64el-fbtfs-858132 =================================================================== no
no-O3 no
parallel.patch Fix parallel build failure In parallel builds this "bison && mv" ran twice in parallel,
FTBFS if this resulted in the following sequence:
bison -t -o gecode/flatzinc/parser.tab.cpp -d gecode/flatzinc/parser.yxx
bison -t -o gecode/flatzinc/parser.tab.cpp -d gecode/flatzinc/parser.yxx
mv gecode/flatzinc/parser.tab.hpp gecode/flatzinc/parser.tab.hh
mv gecode/flatzinc/parser.tab.hpp gecode/flatzinc/parser.tab.hh
Running it only once fixes the problem.
Adrian Bunk <bunk@debian.org> no debian
system-boost no
configure-ac-978817 no
AC_GECODE_TIMER-configure.ac.in no
qt6-autotools no
autoheader-2.73-handwritten-detection Stop pre-creating config.hpp.in before autoheader runs (Patch from Claude)
.
Makefile.contribs's contribdirs target writes a STATISTICS footer into
gecode/support/config.hpp.in *before* invoking autoheader:
.
@echo "\n// STATISTICS: support-any\n" >> gecode/support/config.hpp.in
@echo Running autoconf on generated configure.ac ...
@autoconf
@autoheader
.
Under autoconf 2.71/2.72, this was harmless: shell `>>` created an
otherwise-absent file with three lines, autoheader unconditionally
overwrote it with the full template, and fixautoheader.perl pared that
template down to the gecode-relevant #undefs.
.
Autoconf 2.73 introduced a new "do not overwrite handwritten config.h.in"
policy in autoheader (and matching logic in autoreconf):
.
# If $config_h_in already exists and doesn't appear to have been generated
# by autoheader, stop, unless --replace-handwritten was given on the command
# line. This is not considered an error condition.
.
(autoconf-2.73/bin/autoheader, around line 226). The marker autoheader
looks for is the regex /^\/\* .*\. Generated from .* by autoheader\. \*\//
on the very first line.
.
With the pre-existing seed file in place, autoheader 2.73 sees a file
whose first line is "\n" (no marker), prints "leaving it alone" (the
Makefile silences this with @), and exits successfully without writing
anything. The seed is then renamed to config.hpp.in.1 and piped through
fixautoheader.perl, which finds no #undef lines to keep. Result: a
config.hpp.in that contains only the gecode preamble and the STATISTICS
footer — no #undef forceinline, no #undef GECODE_* — so configure cannot
substitute AC_DEFINE(forceinline, ...) into it, and every translation
unit fails with "'forceinline' does not name a type".
.
dh_autoreconf then runs autoreconf -f -i, which performs the same marker
check (autoreconf 2.73 lines 1038-1054) and refuses to re-run autoheader
on the now-empty template, so the failure can't be undone downstream.
The build log shows:
.
autoreconf: configure.ac: gecode/support/config.hpp.in
was not generated by autoheader
autoreconf: force update of gecode/support/config.hpp.in
with --replace-handwritten
.
The seed line is redundant: misc/fixautoheader.perl already emits
"// STATISTICS: support-any\n" as its final action (see the last line of
the perl script), so removing the @echo line preserves the same output
while letting autoheader 2.73 write its template freely.
.
Verified end-to-end with autoconf 2.73: post-Makefile.contribs
config.hpp.in contains "#undef forceinline" at line 124 (with 31 #undefs
total, matching the pre-2.73 result); autoreconf -f -i leaves the file
alone (no marker, but it now has the right contents); configure produces
"#define forceinline inline __attribute__ ((__always_inline__))" in
config.hpp; gecode/search/cutoff.cpp, gecode/support/heap.cpp and
gecode/kernel/core.cpp compile cleanly. Also verified backwards-compatible
with autoconf 2.71.

===================================================================
Kari Pahula <kaol@debian.org> no 2026-05-19

All known versions for source package 'gecode-snapshot'

Links