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