Bug 44801

Summary: make: incorrect processing of the .NOTPARALLEL directive
Product: Sisyphus Reporter: Vasiliy Kovalev <kovalevvv>
Component: makeAssignee: Alexey Gladkov <legion>
Status: NEW --- QA Contact: qa-sisyphus
Severity: critical    
Priority: P5 CC: ldv, legion
Version: unstable   
Hardware: x86_64   
OS: Linux   
Attachments:
Description Flags
Makefile.am с директивами .NOTPARALLEL
none
патч none

Description Vasiliy Kovalev 2023-01-03 23:08:41 MSK
Created attachment 12205 [details]
Makefile.am с директивами .NOTPARALLEL

Ошибка во время сборки программы при использовании более одного потока.
Версия пакета:
make-4.4.0-alt2.x86_64
Аналогично и для версии alt1

Во вложении файл Makefile.am целевой программы (http://git.altlinux.org/people/kovalev/packages/fwts.git), который содержит директивы однопоточной сборки (.NOTPARALLEL)

Кусок лога ошибки:
+ make -j200
make: Entering directory '/usr/src/RPM/BUILD/fwts-22.11.00'
git.mk: Generating .gitignore
make: Leaving directory '/usr/src/RPM/BUILD/fwts-22.11.00'
make  all-recursive
Making all in src
Making all in libfwtsiasl
make[2]: Entering directory '/usr/src/RPM/BUILD/fwts-22.11.00/src'
git.mk: Generating .gitignore
make[2]: Leaving directory '/usr/src/RPM/BUILD/fwts-22.11.00/src'
make[3]: Entering directory '/usr/src/RPM/BUILD/fwts-22.11.00/src/libfwtsiasl'
git.mk: Generating .gitignore
make[3]: Leaving directory '/usr/src/RPM/BUILD/fwts-22.11.00/src/libfwtsiasl'
make[3]: Entering directory '/usr/src/RPM/BUILD/fwts-22.11.00/src/libfwtsiasl'
m4 -P -I../../src/acpica/source/compiler ../../src/acpica/source/compiler/aslparser.y > aslcompiler.y
make[3]: Leaving directory '/usr/src/RPM/BUILD/fwts-22.11.00/src/libfwtsiasl'
make[3]: Entering directory '/usr/src/RPM/BUILD/fwts-22.11.00/src/libfwtsiasl'
flex -i -PAslCompiler -oaslcompilerlex.c ../../src/acpica/source/compiler/aslcompiler.l
make[3]: Leaving directory '/usr/src/RPM/BUILD/fwts-22.11.00/src/libfwtsiasl'
make[3]: Entering directory '/usr/src/RPM/BUILD/fwts-22.11.00/src/libfwtsiasl'
flex -i -PDtCompilerParser -odtcompilerparserlex.c ../../src/acpica/source/compiler/dtcompilerparser.l
bison -y -Wno-yacc  -d -bdtcompilerparser -pDtCompilerParser ../../src/acpica/source/compiler/dtcompilerparser.y
mv dtcompilerparser.tab.c dtcompilerparser.c
cp dtcompilerparser.tab.h dtcompilerparser.y.h
make[3]: Leaving directory '/usr/src/RPM/BUILD/fwts-22.11.00/src/libfwtsiasl'
make[3]: Entering directory '/usr/src/RPM/BUILD/fwts-22.11.00/src/libfwtsiasl'
flex -i -PDtCompilerParser -odtcompilerparserlex.c ../../src/acpica/source/compiler/dtcompilerparser.l
bison -y -Wno-yacc  -d -bdtcompilerparser -pDtCompilerParser ../../src/acpica/source/compiler/dtcompilerparser.y
mv dtcompilerparser.tab.c dtcompilerparser.c
mv: cannot stat 'dtcompilerparser.tab.c': No such file or directory
make[3]: *** [Makefile:4215: dtcompilerparserlex.c] Error 1
make[3]: Leaving directory '/usr/src/RPM/BUILD/fwts-22.11.00/src/libfwtsiasl'
make[3]: *** Waiting for unfinished jobs....
make[3]: Entering directory '/usr/src/RPM/BUILD/fwts-22.11.00/src/libfwtsiasl'
flex -i -PDtCompilerParser -odtcompilerparserlex.c ../../src/acpica/source/compiler/dtcompilerparser.l
bison -y -Wno-yacc  -d -bdtcompilerparser -pDtCompilerParser ../../src/acpica/source/compiler/dtcompilerparser.y
mv dtcompilerparser.tab.c dtcompilerparser.c
cp dtcompilerparser.tab.h dtcompilerparser.y.h
make[3]: Leaving directory '/usr/src/RPM/BUILD/fwts-22.11.00/src/libfwtsiasl'
make[3]: Entering directory '/usr/src/RPM/BUILD/fwts-22.11.00/src/libfwtsiasl'
flex -i -PPrParser -oprparserlex.c ../../src/acpica/source/compiler/prparser.l
bison -y -Wno-yacc  -d -bprparser -pPrParser ../../src/acpica/source/compiler/prparser.y
mv prparser.tab.c prparser.c
cp prparser.tab.h prparser.y.h
make[3]: Leaving directory '/usr/src/RPM/BUILD/fwts-22.11.00/src/libfwtsiasl'
make[3]: Entering directory '/usr/src/RPM/BUILD/fwts-22.11.00/src/libfwtsiasl'
flex -i -PDtParser -odtparserlex.c ../../src/acpica/source/compiler/dtparser.l
bison -y -Wno-yacc  -d -bdtparser -pDtParser ../../src/acpica/source/compiler/dtparser.y
mv dtparser.tab.c dtparser.c
cp dtparser.tab.h dtparser.y.h
make[3]: Leaving directory '/usr/src/RPM/BUILD/fwts-22.11.00/src/libfwtsiasl'
make[3]: Entering directory '/usr/src/RPM/BUILD/fwts-22.11.00/src/libfwtsiasl'
flex -i -PDtParser -odtparserlex.c ../../src/acpica/source/compiler/dtparser.l
bison -y -Wno-yacc  -d -bdtparser -pDtParser ../../src/acpica/source/compiler/dtparser.y
mv dtparser.tab.c dtparser.c
mv: cannot stat 'dtparser.tab.c': No such file or directory
make[3]: *** [Makefile:4220: dtparser.y.h] Error 1
Comment 1 Vasiliy Kovalev 2023-01-03 23:17:07 MSK
Created attachment 12206 [details]
патч

Прикладываю обходной патч, правильность которого под вопросом. Однако, он позволяет собрать make (обрезает тест) и корректно обрабатывать директиву .NOTPARALLEL