help-make
[Top][All Lists]
Advanced

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

Re: serial vs parallel for ar


From: Alexey Neyman
Subject: Re: serial vs parallel for ar
Date: Thu, 18 May 2006 17:42:47 +0400
User-agent: KMail/1.6.2

There are two options:

1. You can create objects as usual and then archive all changed 
objects in a single operation:

%.o: %.c
        $(CC) -c -o $@ $<

libxxx.a: $(OBJS)
        $(AR) cru $@ $?

The drawback is, this approach leaves the compiled object files 
behind.

2. There is a suggested enhancement for make, 
https://savannah.gnu.org/bugs/index.php?func=detailitem&item_id=14927
I didn't test it. However, author claims that it is possible to add
the "$(RM) $?" command to the libxxx.a rule above.

Regards,
Alexey.
   

On Thursday 18 May 2006 17:21, PATTON, BILLY (SBCSI) wrote:
> No, that won't work either.
> If the user does a make proj+bb+topic
> the rule proj+bb will be bypassed and no archive updates will be
> performed.
> 
> When ar is accessing the file can I have it lock the file and have 
other
> process wait for the lock to be free'd?
> But this will result in serial processing.  what I don't need to do.
> 
> > -----Original Message-----
> > From: address@hidden 
> > [mailto:address@hidden On Behalf 
> > Of PATTON, BILLY (SBCSI)
> > Sent: Thursday, May 18, 2006 8:16 AM
> > To: address@hidden
> > Subject: RE: serial vs parallel for ar
> > 
> > 
> > I know one way to get around the problem, not very good, but!
> > During my chain of rules I have
> > all           : proj
> > proj          : proj+bb
> > proj+bb       : proj+bb+topic
> > proj+bb+topic : $(src+proj+bb+topic:.c=.o)
> > %.o : %.c
> >   compile $<
> >   create dependencies $<
> >   archive $@
> > 
> > At the "proj+bb :" target I could do the commands there for 
> > archiving in
> > a loop. By the time that command fires all .o's will have 
> > been created.
> > But why should I put them in there every time.  They only 
> > need to be put
> > in when something changes.  The most obvious place would be 
> > where/when I
> > compile.  But that puts me back to the problem of multiple 
processes
> > accessing the .a at the same time.  Not using -j is not an option.
> > 
> > > -----Original Message-----
> > > From: address@hidden 
> > > [mailto:address@hidden On Behalf 
> > > Of PATTON, BILLY (SBCSI)
> > > Sent: Thursday, May 18, 2006 7:48 AM
> > > To: address@hidden
> > > Subject: serial vs parallel for ar
> > > 
> > > 
> > > I'm trying to add files to a .a file.  As long as I don't run 
> > > make with
> > > -j it runs ok. But when I run with the -j I get the following 
error
> > > messages:
> > > ar:
> > > /makefile_test/dev/bp1497/test/v0608/PRODUCT_TREE/ldb/infgn/li
> > > b/libinfgn
> > > .a not in archive format
> > > make: ***
> > > [/makefile_test/dev/bp1497/test/v0608/PRODUCT_TREE/ldb/infgn/g
> > > ipasswd.o]
> > > Error 1
> > > make: *** Waiting for unfinished jobs....
> > > ar:
> > > /makefile_test/dev/bp1497/test/v0608/PRODUCT_TREE/ldb/infgn/li
> > > b/libinfgn
> > > .a not in archive format
> > > make: ***
> > > [/makefile_test/dev/bp1497/test/v0608/PRODUCT_TREE/ldb/infgn/c
> > > ryptut.o]
> > > Error 1
> > > ar:
> > > /makefile_test/dev/bp1497/test/v0608/PRODUCT_TREE/ldb/infgn/li
> > > b/libinfgn
> > > .a not in archive format
> > > make: ***
> > > 
> > 
[/makefile_test/dev/bp1497/test/v0608/PRODUCT_TREE/ldb/infgn/giconv.o]
> > > Error 1
> > > ar:
> > > /makefile_test/dev/bp1497/test/v0608/PRODUCT_TREE/ldb/infgn/li
> > > b/libinfgn
> > > .a not in archive format
> > > make: ***
> > > 
> > 
[/makefile_test/dev/bp1497/test/v0608/PRODUCT_TREE/ldb/infgn/extfsh.o]
> > > Error 1
> > > ar:
> > > /makefile_test/dev/bp1497/test/v0608/PRODUCT_TREE/ldb/infgn/li
> > > b/libinfgn
> > > .a not in archive format
> > > make: ***
> > > 
> > 
[/makefile_test/dev/bp1497/test/v0608/PRODUCT_TREE/ldb/infgn/gifile.o]
> > > Error 1
> > > 
> > > It is probably the fact that several processes are trying to 
> > > access this
> > > .a at the same time.
> > > What can I do?
> > > 
> > > 
> > > _______________________________________________
> > > Help-make mailing list
> > > address@hidden
> > > http://lists.gnu.org/mailman/listinfo/help-make
> > > 
> > 
> > 
> > _______________________________________________
> > Help-make mailing list
> > address@hidden
> > http://lists.gnu.org/mailman/listinfo/help-make
> > 
> 
> 
> _______________________________________________
> Help-make mailing list
> address@hidden
> http://lists.gnu.org/mailman/listinfo/help-make
> 

-- 
The only thing is...
We can't remember why we brought you here.
                       -- Pkunks, SC2 




reply via email to

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