| Summary: | dev-perl/PDL-2.4.4 dev-perl/PDL-2.4.6 parallel build issue | ||
|---|---|---|---|
| Product: | Gentoo Linux | Reporter: | Martin von Gagern <Martin.vGagern> |
| Component: | [OLD] Development | Assignee: | Gentoo Perl team <perl> |
| Status: | RESOLVED TEST-REQUEST | ||
| Severity: | minor | CC: | flameeyes, ingosch, kredba |
| Priority: | High | ||
| Version: | unspecified | ||
| Hardware: | All | ||
| OS: | Linux | ||
| Whiteboard: | |||
| Package list: | Runtime testing required: | --- | |
| Attachments: | PDL-2.4.6.ebuild.diff | ||
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 |
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?