On Dec 15, 2012 2:07 AM, "Parag N(पराग़)" <panemade(a)gmail.com> wrote:
Hi,
On Sat, Dec 15, 2012 at 11:25 AM, Ralf Corsepius <rc040203(a)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(a)gmail.com>
>> wrote:
>>>
>>> On Fri, Dec 14, 2012 at 4:44 PM, Parag N(पराग़) <panemade(a)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(a)lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/packaging