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
<2017>
2018
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
<2017>
2018
2019
2020
2021
2022
2023
2024
|