Argonne National Laboratory

Experimental Physics and
Industrial Control System

2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  <20182019  2020  2021  Index 2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  <20182019  2020  2021 
<== Date ==> <== Thread ==>

Subject: parallel builds and O.Common
From: Benjamin Franksen <benjamin.franksen@helmholtz-berlin.de>
To: EPICS Core-Talk <core-talk@aps.anl.gov>
Date: Tue, 18 Sep 2018 18:22:00 +0200
The arch-independent O.Common directory causes problems every once in a
while because people write rules with targets in O.Common without
realizing that this creates the same file in parallel for each target arch.

There are several solutions to this problem (like, first generate things
locally, then (atomically) move it to ../O.Common), but you have to
remember to apply at least one of them. Otherwise, sooner or later you
get corrupt files from a parallel build, which can give you lots of
headaches if these land in a production system. And all the
solutions/work-arounds complicate the build rules considerably.

It just occurred to me that a very simple solution for all these
problems is to throw out O.Common completely and instead include CONFIG
and RULES files that deal with architecture-independent stuff
conditionally, that is, only if the current T_A is equal to
EPICS_HOST_ARCH. Like in

ifeq ($(T_A),$(EPICS_HOST_ARCH))
include $(CONFIG)/Rules.Db
endif

This is pretty raw for the moment, I haven't considered all consequences
this may have, including compatibility etc etc. Just wanted to field the
idea.

Cheers
Ben
-- 
"Make it so they have to reboot after every typo." ― Scott Adams

Attachment: signature.asc
Description: OpenPGP digital signature


Navigate by Date:
Prev: Re: Travis emails? Dirk Zimoch
Next: Problem with performstruct test Dirk Zimoch
Index: 2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  <20182019  2020  2021 
Navigate by Thread:
Prev: Jenkins build is back to normal : epics-base-3.15-ios #195 APS Jenkins
Next: Problem with performstruct test Dirk Zimoch
Index: 2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  <20182019  2020  2021 
ANJ, 19 Sep 2018 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·