On Dec 15, 2012 2:07 AM, "Parag N(पराग़)" <firstname.lastname@example.org> wrote:
> On Sat, Dec 15, 2012 at 11:25 AM, Ralf Corsepius <email@example.com> wrote:
> > On 12/15/2012 06:19 AM, Parag N(पराग़) wrote:
> >> Hi,
> >> On Sat, Dec 15, 2012 at 12:51 AM, Gianluca Sforna <firstname.lastname@example.org>
> >> wrote:
> >>> On Fri, Dec 14, 2012 at 4:44 PM, Parag N(पराग़) <email@example.com>
> >>> wrote:
> >>>> Hi,
> >>>> I want to know is there any documentation available on parallel
> >>>> make? If a package is not building with parallel make then can we fix
> >>>> Makefile?
> >>> If this is the case we should work with upstream to fix the build
> >>> system, as we do with code.
> >> I actually want to work on it as upstream is unresponsive since a
> >> year. That is why I need help here. Is there any document that gives
> >> examples on how can one fix broken Makefile?
> > In general, broken parallel makes mean "missing make dependencies". How and
> > where to fix these, depends a lot on a package's implementation details -
> > There simply is no "golden rule"/"simple howto".
> > That said, which package are you referring to? May-be somebody else can spot
> > something obvious.
> Here is the whole story:
> I am working on w3m package cleanup. Its old package and upstream is
> non-responsive on w3m bug tracker. Parallel make was previously
> commented in spec since long time by me only I guess. Now, last week
> while working on package cleanup, I found parallel make is working
> fine. I prepared new update for w3m. Committed in master. Did F19
> scratch build, it worked. Did F19 official build, it failed. Did F18
> scratch build, it worked. Did successful official build for F18.
> Attempted again official F19 build, it failed. Did scratch F19 build,
> it worked. I then third time attempted w3m build for F19 and it
> I then come to know that if I comment parallel make then build always
> succeeds. Now, Can someone tell what used to go wrong when build
> failed in F19 and how now official build succeed with parallel make
The reason the parallel makes fail is effectively a race condition between dependent targets. In Makefile where there are missing dependencies between targets, a parallel make won't ALWAYS fail. If the parallel make regularly fails some percentage of attempts, then it's broken. The fact that it worked by chance a few times doesn't change that.
A simple approach to fixing is to look at:
1) what part of the build fails when there is a failure.
2) what was missing (a .o file, a library, etc.) that made it fail.
Then determine how to introduce a dependency in the makefile between what was missing and what needed it. It will probably be an iterative process.
> packaging mailing list