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: Mark Rivers <rivers@cars.uchicago.edu>
To: "'Ben Franksen'" <benjamin.franksen@helmholtz-berlin.de>, "tech-talk@aps.anl.gov" <tech-talk@aps.anl.gov>
Date: Sun, 15 Jan 2017 14:03:32 +0000
Yes, that change fixes the make clean error in the documentation directory on Windows.

Thanks,
Mark


-----Original Message-----
From: Ben Franksen [mailto:benjamin.franksen@helmholtz-berlin.de] 
Sent: Saturday, January 14, 2017 8:53 PM
To: Mark Rivers; tech-talk@aps.anl.gov
Subject: Re: Problem with parallel make with seq 2.2.4 on Linux

Am 14.01.2017 um 23:12 schrieb Mark Rivers:
>> 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.
>
> I only get that error with the sequencer, not with any other modules.
> It looks like the error is in the documentation directory.
>
> Indeed I get that error by simply running non-parallel make in the
> documentation directory:

Ah, right, I had forgotten that I have to emulate almost all the
standard "phony" epics make targets in the Makefile for the
documentation subdir.

> J:\epics\support\seq\documentation>make clean rm -rf O.Common
> process_begin: CreateProcess(NULL, rm -rf O.Common, ...) failed. make
> (e=2): The system cannot find the file specified. Makefile:45: recipe
> for target 'clean' failed make: [clean] Error 2 (ignored)
>
> So it looks like there is no O.Common directory there, and that
> produces an error?
>
> There is indeed no O.Common directory, but make on Linux just
> silently ignores that.
>
> corvette:~/support/seq/documentation>make clean rm -rf O.Common

Indeed it's a bug in teh sequencer; I should have used $(RMDIR) in the
Makefile, not 'rm -rf'. Will fix. For the meantime, apply

--- old-branch-2-2/documentation/Makefile       2017-01-15
03:50:28.542445952 +0100
+++ new-branch-2-2/documentation/Makefile       2017-01-15
03:50:28.602441426 +0100
@@ -42,7 +42,7 @@
        @echo "  doctest   to run all doctests embedded in the
documentation (if enabled)"

 realclean clean:
-       -rm -rf $(BUILDDIR)
+       $(RMDIR) $(BUILDDIR)

 runtests:

This fix will be in the next release. Thanks for the report and for
helping with the debug.

Cheers
Ben

> -----Original Message----- From: Ben Franksen
> [mailto:benjamin.franksen@helmholtz-berlin.de] Sent: Saturday,
> January 14, 2017 1:25 PM To: Mark Rivers; tech-talk@aps.anl.gov
> Subject: Re: Problem with parallel make with seq 2.2.4 on Linux
>
> 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
>>
>

________________________________

Helmholtz-Zentrum Berlin für Materialien und Energie GmbH

Mitglied der Hermann von Helmholtz-Gemeinschaft Deutscher Forschungszentren e.V.

Aufsichtsrat: Vorsitzender Dr. Karl Eugen Huthmacher, stv. Vorsitzende Dr. Jutta Koch-Unterseher
Geschäftsführung: Prof. Dr. Anke Rita Kaysser-Pyzalla, Thomas Frederking

Sitz Berlin, AG Charlottenburg, 89 HRB 5583

Postadresse:
Hahn-Meitner-Platz 1
D-14109 Berlin

http://www.helmholtz-berlin.de


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
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
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: CA server bind failure on Windows Ralph Lange
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 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  <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 ·