help-make
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Gnu make option to fix parallel multiple ar on a shared archive


From: Kaz Kylheku
Subject: Re: Gnu make option to fix parallel multiple ar on a shared archive
Date: Sat, 10 Aug 2024 17:58:21 -0700
User-agent: K-9 Mail for Android

Your makefile is broken, or at least not suitable for parallel builds.

You should add .NOTPARALLEL: to it. That's the minimal change that will fix it. 
A makefile with the .NOTPARALLEL: target will not be parallelized even if -j is 
requested on the command line or via the environment.

Why it's broken is that you have multiple rules that update the same object. 

An archive should be built by exactly one rule which has all the prerequisites 
that are going into the archive.

On August 10, 2024 4:04:13 AM PDT, Navin P <navinp0304@gmail.com> wrote:
>Hi,
>   I ran multiple instances of ar during a parallel build and they were
>updating different object files using ar rv sometimes the same object file
>again.
>
>When i run make -j1 i find all the object files  libx.a but when i do make
>-j8 i find some missing object files inside libx.a.
>
>Then i looked at ar.c and found that there is no synchronization between 2
>instances of ar on same library. The problem is that makefile is generated
>and  there are lots of bash scripts doing that.
>
>Is there any way to fix the problem?
>1. Without changing makefile
>2. With changing the makefile in long term.
>
>Regards,
>Navin


reply via email to

[Prev in Thread] Current Thread [Next in Thread]