dev-perl/PDL-2.4.4 failed to build in parallel for me on ~amd64. As a workaround: "MAKEOPTS=-j1 emerge PDL" works fine. Without that, I got the following error message: pdlapi.c:29: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'PDL' It seems that the target compiling pdlapi.c to pdlapi.o doesn't depend on pdlcore.h, which is generated from pdlcore.h.PL. Looking at the (generated) Makefile, the pattern rule turning C source files into objects lists no additional dependencies at all: .c$(OBJ_EXT): $(CCCMD) $(CCCDLFLAGS) "-I$(PERL_INC)" $(PASTHRU_DEFINE) $(DEFINE) $*.c However, pdlapi.o is listed in O_FILES, and there is a dependency for them: $(O_FILES): $(H_FILES) So to me the proper solution would seem adding pdlcore.h to H_FILES. Unfortunately I don't see how to do this on the Makefile.PL side of things. And I assume that this might just be one instance of the problem, and that other missing dependencies might break things in other places. Can you think of a systematic way to identify these? Or should we have the ebuild force -j1 to be on the safe side, and try to convince upstream to deal with this in their next release?
The same problem with PDL-2.4.3-r1 and PDL-2.4.4 on x86. MAKEOPTS=-j1solved problem in my case too.
Still an issue with dev-perl/PDL-2.4.6: pdlhash.c:7:46: error: pdlcore.h: No such file or directory
This still appears to be an issue with 2.4.6 MAKE=-j5 fails but -j1 compiles fine on multiple machines for me.
(In reply to comment #3) > This still appears to be an issue with 2.4.6 > > MAKE=-j5 fails but -j1 compiles fine on multiple machines for me. > MAKEOPTS that is...
Created attachment 240043 [details] PDL-2.4.6.ebuild.diff Upstream parallel compilation bug work around and removed epause.
(In reply to comment #5) > Created an attachment (id=240043) [details] > PDL-2.4.6.ebuild.diff > > Upstream parallel compilation bug work around and removed epause. > the problem reappeared in upgrade from 2.4.6 to 2.4.7. make -J1 works.
applied in 2.4.7. i only applied for the tests in 2.4.11 since it worked for me with -j32. re-open if it fails. thanks