EPICS Controls 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  <20172018  2019  2020  2021  2022  2023  2024  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  <20172018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: RE: Problem with parallel make with seq 2.2.4 on Linux
From: Mark Rivers <[email protected]>
To: "'Ben Franksen'" <[email protected]>, "[email protected]" <[email protected]>
Date: Sat, 14 Jan 2017 18:57:07 +0000
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.

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.

Thanks,
Mark



-----Original Message-----
From: [email protected] [mailto:[email protected]] On Behalf Of Ben Franksen
Sent: Saturday, January 14, 2017 10:35 AM
To: [email protected]
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



Replies:
Re: Problem with parallel make with seq 2.2.4 on Linux Ben Franksen
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

Navigate by Date:
Prev: Re: Problem with parallel make with seq 2.2.4 on Linux Ben Franksen
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  <20172018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Re: Problem with parallel make with seq 2.2.4 on Linux Ben Franksen
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  <20172018  2019  2020  2021  2022  2023  2024 
ANJ, 21 Dec 2017 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·