#541713 automake: generates makefiles that are unsafe for parallel builds

#541713#5
Date:
2009-08-08 12:00:37 UTC
From:
To:
From my pbuilder log:

[snip]
\
	/bin/sh ../../ylwrap `test -f 'wnparse.y' || echo './'`wnparse.y y.tab.c grind-wnparse.c y.tab.h grind-wnparse.h y.output grind-wnparse.output -- bison -y  -dl
\
	/bin/sh ../../ylwrap `test -f 'wnlex.l' || echo './'`wnlex.l lex.yy.c grind-wnlex.c -- flex  -l
/tmp/buildd/wordnet-3.0/src/grind/wnlex.l:99: warning, dangerous trailing context
/tmp/buildd/wordnet-3.0/src/grind/wnlex.l:99: warning, dangerous trailing context
cc -DHAVE_CONFIG_H -I. -I../.. -I../../include    -g -O2 -g -Wall -O2 -c grind-wnlex.c
wnlex.l:12:68: error: grind-wnparse.h: No such file or directory
wnlex.l: In function 'yylex':
wnlex.l:74: warning: implicit declaration of function 'curfilemode'
wnlex.l:75: error: 'NOUNSYNSET' undeclared (first use in this function)
wnlex.l:75: error: (Each undeclared identifier is reported only once
wnlex.l:75: error: for each function it appears in.)
wnlex.l:76: error: 'VERBSYNSET' undeclared (first use in this function)
wnlex.l:77: error: 'ADJSYNSET' undeclared (first use in this function)
wnlex.l:78: error: 'ADVSYNSET' undeclared (first use in this function)
wnlex.l:87: error: 'OPENCLUS' undeclared (first use in this function)
wnlex.l:95: error: 'CLOSECLUS' undeclared (first use in this function)
wnlex.l:110: error: 'yylval' undeclared (first use in this function)
wnlex.l:111: error: 'SYNSETKEY' undeclared (first use in this function)
wnlex.l:117: error: 'VERBFRAMES' undeclared (first use in this function)
wnlex.l:148: error: 'HEADWYRD' undeclared (first use in this function)
wnlex.l:150: error: 'WYRD' undeclared (first use in this function)
wnlex.l:167: error: 'FILENAME' undeclared (first use in this function)
wnlex.l:173: error: 'PTRSYM' undeclared (first use in this function)
wnlex.l:179: error: 'NUM' undeclared (first use in this function)
wnlex.l:194: error: 'ADJCLASS' undeclared (first use in this function)
wnlex.l:231: error: 'DEFN' undeclared (first use in this function)
updating grind-wnparse.h
wnlex.l: In function 'yyerror':
wnlex.l:306: warning: implicit declaration of function 'curfilenum'
wnlex.l: At top level:
wnlex.l:324: warning: return type defaults to 'int'
wnlex.l: In function 'yywrap':
wnlex.l:328: warning: format '%s' expects type 'char *', but argument 3 has type 'Flist'
make[4]: *** [grind-wnlex.o] Error 1
make[4]: Leaving directory `/tmp/buildd/wordnet-3.0/src/grind'
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory `/tmp/buildd/wordnet-3.0/src'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/tmp/buildd/wordnet-3.0'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/tmp/buildd/wordnet-3.0'
make: *** [debian/stamp-makefile-build] Error 2
dpkg-buildpackage: error: debian/rules build gave error exit status 2
E: Failed autobuilding of package

#541713#10
Date:
2009-08-09 13:46:26 UTC
From:
To:
The bugs is triggered only when I use the -jN option for
dpkg-buildpackage. Non-parallel builds seems to go fine.

#541713#21
Date:
2009-08-15 14:54:03 UTC
From:
To:
I admit I do no have the slightest idea how to change the
build process to enable parallel build.  The only chance
I see would be to force non-parallel builds (even if I have
no idea how to do this).  Any help is welcome.

Kind regards

     Andreas.

#541713#26
Date:
2009-08-15 18:59:57 UTC
From:
To:
clone 540491 -1
reassign -1 automake 1:1.11-1
retitle -1 automake: generates makefiles that are unsafe for parallel builds

* Andreas Tille <andreas@an3as.eu>, 2009-08-15, 16:54:

To disable parallelization in the key place, just append the following
line to src/grind/Makefile.in:

.NOTPARALLEL:

As for really enabling parallel builds, I believe the bug should be
addressed in automake, which generated the broken makefile.