Bug#872918: sketch: parallel FTBFS

Adrian Bunk bunk at debian.org
Tue Aug 22 13:23:19 UTC 2017


Source: sketch
Version: 1:0.3.7-5
Severity: serious
Tags: patch

dh compat 10 enables paralles building,
which sometimes runs into the following bug:

https://tests.reproducible-builds.org/debian/rb-pkg/unstable/amd64/sketch.html

...
dh_auto_build
	make -j15
make[2]: Entering directory '/build/1st/sketch-0.3.7'
gcc -O1 -g -Wall -Wall -g -O2 -Wdate-time -D_FORTIFY_SOURCE=2  -c -o bsp.o bsp.c
gcc -O1 -g -Wall -Wall -g -O2 -Wdate-time -D_FORTIFY_SOURCE=2  -c -o cmdline.o cmdline.c
gcc -O1 -g -Wall -Wall -g -O2 -Wdate-time -D_FORTIFY_SOURCE=2  -c -o emit.o emit.c
gcc -O1 -g -Wall -Wall -g -O2 -Wdate-time -D_FORTIFY_SOURCE=2  -c -o error.o error.c
gcc -O1 -g -Wall -Wall -g -O2 -Wdate-time -D_FORTIFY_SOURCE=2  -c -o expr.o expr.c
gcc -O1 -g -Wall -Wall -g -O2 -Wdate-time -D_FORTIFY_SOURCE=2  -c -o geometry.o geometry.c
gcc -O1 -g -Wall -Wall -g -O2 -Wdate-time -D_FORTIFY_SOURCE=2  -c -o geomio.o geomio.c
gcc -O1 -g -Wall -Wall -g -O2 -Wdate-time -D_FORTIFY_SOURCE=2  -c -o global.o global.c
gcc -O1 -g -Wall -Wall -g -O2 -Wdate-time -D_FORTIFY_SOURCE=2  -c -o langver.o langver.c
bison --defines --debug --report=all --yacc sketch.y
gcc -O1 -g -Wall -Wall -g -O2 -Wdate-time -D_FORTIFY_SOURCE=2  -c -o main.o main.c
gcc -O1 -g -Wall -Wall -g -O2 -Wdate-time -D_FORTIFY_SOURCE=2  -c -o memutil.o memutil.c
gcc -O1 -g -Wall -Wall -g -O2 -Wdate-time -D_FORTIFY_SOURCE=2  -c -o opts.o opts.c
gcc -O1 -g -Wall -Wall -g -O2 -Wdate-time -D_FORTIFY_SOURCE=2  -c -o scene.o scene.c
gcc -O1 -g -Wall -Wall -g -O2 -Wdate-time -D_FORTIFY_SOURCE=2  -c -o symbol.o symbol.c
expr.c: In function 'to_integer':
expr.c:374:12: warning: variable 'frac_part' set but not used [-Wunused-but-set-variable]
     double frac_part, int_part;
            ^~~~~~~~~
bison --defines --debug --report=all --yacc sketch.y
gcc -O1 -g -Wall -Wall -g -O2 -Wdate-time -D_FORTIFY_SOURCE=2  -c -o lex.yy.o lex.yy.c
sketch.l: In function 'yylex':
sketch.l:86:3: error: 'yylval' undeclared (first use in this function); did you mean 'yylex'?
   yylval.str = safe_malloc(yyleng + 1 - 2);
   ^~~~~~
   yylex
...


Note how bison is running twice, with an output file already being
used while the second bison regenerates it again resulting in an
incomplete file being used.

Fix attached.
-------------- next part --------------
Description: Fix parallel FTBFS
 Don't run bison twice, with a generated file already being used
 while the second bison is still running.
Author: Adrian Bunk <bunk at debian.org>

--- sketch-0.3.7.orig/makefile
+++ sketch-0.3.7/makefile
@@ -43,7 +43,9 @@ HEADERS=bsp.h cmdline.h dynarray.h emit.
 $(EXE) : $(OBJECTS)
 	$(CC) -o $(EXE) $(OBJECTS) -lm
 
-y.tab.c y.tab.h : sketch.y
+y.tab.c : y.tab.h
+
+y.tab.h : sketch.y
 	$(YACC) $<
 
 lex.yy.c : sketch.l


More information about the debian-science-maintainers mailing list