On Dec 15, 2012 2:07 AM, "Parag N(पराग़)" <panemade@gmail.com> wrote:
>
> Hi,
> On Sat, Dec 15, 2012 at 11:25 AM, Ralf Corsepius <rc040203@freenet.de> wrote:
> > On 12/15/2012 06:19 AM, Parag N(पराग़) wrote:
> >>
> >> Hi,
> >> On Sat, Dec 15, 2012 at 12:51 AM, Gianluca Sforna <giallu@gmail.com>
> >> wrote:
> >>>
> >>> On Fri, Dec 14, 2012 at 4:44 PM, Parag N(पराग़) <panemade@gmail.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
> worked.
>
> 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
> enabled?

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.

HTH,

Andy

> Regards,
> Parag.
> --
> packaging mailing list
> packaging@lists.fedoraproject.org
> https://admin.fedoraproject.org/mailman/listinfo/packaging