Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  <2017 Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  <2017
<== Date ==> <== Thread ==>

Subject: Re: Problem with parallel make with seq 2.2.4 on Linux
From: Ben Franksen <benjamin.franksen@helmholtz-berlin.de>
To: Mark Rivers <rivers@cars.uchicago.edu>, "tech-talk@aps.anl.gov" <tech-talk@aps.anl.gov>
Date: Sat, 14 Jan 2017 20:24:52 +0100
Am 14.01.2017 um 19:57 schrieb Mark Rivers:
> Hi Ben,
> 
> Thanks for the quick reply.
> 
> I added HDEPENDS_METHOD=MKMF here in src/snc/Makefile:
> 
> ***********************
> # avoid deprecation warnings with base 3.15 and later
> ifeq ($(BASE_3_14),YES)
> LEMON = $(call PATH_FILTER,$(INSTALL_HOST_BIN)/lemon$(HOSTEXE))
> else
> LEMON = $(abspath $(INSTALL_HOST_BIN)/lemon$(HOSTEXE))
> endif
> 
> HDEPENDS_METHOD=MKMF
> 
> include $(TOP)/configure/RULES
> ***********************
> 
> That worked to fix the parallel make problems on Linux. Without that
line it was failing about 50% of the time, with it I saw no failures in
over 15 attempts.

Good! I think this is it, then.

> There is a minor problem on Windows, which is independent of the HDEPENDS line:
> 
> J:\epics\support\seq>make -sj8 clean uninstall
> process_begin: CreateProcess(NULL, rm -rf O.Common, ...) failed.
> make (e=2): The system cannot find the file specified.
> 
> The above error seems to be benign, but it would be nice to eliminate it.

This might be something not specific to the sequencer; at least I am not
aware of doing anything special for the clean or uninstall targets.

Can you send the full output with -j8 but without -s? If you have make
version >= 4 then you could add the command line flag -Orecurse, which
gives maximally correlated grouping of output for parallel builds,
making it easier to see where exactly the problem appears.

Cheers
Ben

> 
> -----Original Message-----
> From: tech-talk-bounces@aps.anl.gov [mailto:tech-talk-bounces@aps.anl.gov] On Behalf Of Ben Franksen
> Sent: Saturday, January 14, 2017 10:35 AM
> To: tech-talk@aps.anl.gov
> Subject: Re: Problem with parallel make with seq 2.2.4 on Linux
> 
> Am 14.01.2017 um 16:52 schrieb Ben Franksen:
>> Anyway, I can suppress the error message with make-3.81/gcc-4.7.2 by
>> adding explicit dependencies of the relevant .d files:
>>
>> lexer.o: snl.h
>> type_check.o: snl.h
>> var_types.o: snl.h
>>
>> The other combination (make-4.1/gcc-5.4.0) is not able to complete
>> successfully when run directly after rm -f snl.h *.d, even with these
>> extra dependencies listed.
> 
> Please ignore the last sentence, I made a mistake. Adding the explicit
> dependencies really does work on my machine, too. But I still think this
> is not the right way to fix the problem. Manually added dependencies are
> brittle in the face of evolving code, which is why we auto-generate them
> in the first place.
> 
> A better fix (I think) is to set
> 
>   HDEPENDS_METHOD=MKMF
> 
> in src/snc/Makefile (in the CONFIG section). This lets the EPICS build
> system use mkmf.pl to generate the dependencies even on platforms where
> the C compiler supports the appropriate flags to generate dependencies.
> (Note that for 3.14 I had already copied the corresponding rule from
> base-3.15 which is why the problem manifests only with 3.15).
> 
> (I noticed that after I do 'rm snl.h *.d' this still does not
> re-generate the .d files for the three files that include snl.h. It is
> hard for me to judge whether this may cause problems in the future.)
> 
> Anyway, if this works for you (Mark), then I will make a new release
> with this fix (and with a fix for the other build problem you reported).
> 
> Cheers
> Ben
> 

Attachment: signature.asc
Description: OpenPGP digital signature


Replies:
RE: Problem with parallel make with seq 2.2.4 on Linux Mark Rivers
References:
Problem with parallel make with seq 2.2.4 on Linux Mark Rivers
Re: Problem with parallel make with seq 2.2.4 on Linux Andrew Johnson
Re: Problem with parallel make with seq 2.2.4 on Linux Ben Franksen
Re: Problem with parallel make with seq 2.2.4 on Linux Ben Franksen
RE: Problem with parallel make with seq 2.2.4 on Linux Mark Rivers

Navigate by Date:
Prev: RE: Problem with parallel make with seq 2.2.4 on Linux Mark Rivers
Next: Re: Problem with parallel make with seq 2.2.4 on Linux Ben Franksen
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  <2017
Navigate by Thread:
Prev: RE: Problem with parallel make with seq 2.2.4 on Linux Mark Rivers
Next: RE: Problem with parallel make with seq 2.2.4 on Linux Mark Rivers
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  <2017
ANJ, 14 Feb 2017 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·