Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 300272 - dev-perl/PDL-2.4.4 dev-perl/PDL-2.4.6 parallel build issue
Summary: dev-perl/PDL-2.4.4 dev-perl/PDL-2.4.6 parallel build issue
Status: RESOLVED TEST-REQUEST
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Development (show other bugs)
Hardware: All Linux
: High minor (vote)
Assignee: Gentoo Perl team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-01-09 12:15 UTC by Martin von Gagern
Modified: 2012-06-16 20:16 UTC (History)
3 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
PDL-2.4.6.ebuild.diff (PDL-2.4.6.ebuild.diff,754 bytes, text/plain)
2010-07-24 20:33 UTC, David Abbott (RETIRED)
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Martin von Gagern 2010-01-09 12:15:57 UTC
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?
Comment 1 Hack_leberry Finn 2010-02-17 09:31:30 UTC
The same problem with PDL-2.4.3-r1 and PDL-2.4.4 on x86. MAKEOPTS=-j1solved problem in my case too. 
Comment 2 Martin von Gagern 2010-02-21 20:05:20 UTC
Still an issue with dev-perl/PDL-2.4.6:

pdlhash.c:7:46: error: pdlcore.h: No such file or directory
Comment 3 Dave Nellans 2010-07-23 16:30:35 UTC
This still appears to be an issue with 2.4.6

MAKE=-j5 fails but -j1 compiles fine on multiple machines for me.
Comment 4 Dave Nellans 2010-07-23 16:42:10 UTC
(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...
Comment 5 David Abbott (RETIRED) gentoo-dev 2010-07-24 20:33:44 UTC
Created attachment 240043 [details]
PDL-2.4.6.ebuild.diff

Upstream parallel compilation bug work around and removed epause.
Comment 6 is 2010-08-23 13:04:41 UTC
(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.
Comment 7 Sébastien Fabbro (RETIRED) gentoo-dev 2012-06-16 20:16:06 UTC
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