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  2017  <20182019  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  2017  <20182019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Re: base-3.15.5/templates/makeBaseApp/top/iocBoot/ioc/Makefile@Common
From: Andrew Johnson <[email protected]>
To: John Dobbins <[email protected]>
Cc: "[email protected]" <[email protected]>
Date: Mon, 23 Apr 2018 15:45:10 -0500
Thanks John,

Now tracked at https://bugs.launchpad.net/epics-base/+bug/1766349

- Andrew

On 04/23/2018 03:38 PM, John Dobbins wrote:
> Andrew,
> 
> 
> In fact on my machine 
> 
> 
>     >echo $ARCH
>     x86_64
> 
> Unsetting it fixed the problem. 
> 
> Thanks for your follow through. 
> 
> John
> 
> 
> 
> 
> ------------------------------------------------------------------------
> *From:* Andrew Johnson <[email protected]>
> *Sent:* Monday, April 23, 2018 4:24 PM
> *To:* John Dobbins
> *Cc:* [email protected]
> *Subject:* Re:
> base-3.15.5/templates/makeBaseApp/top/iocBoot/ioc/Makefile@Common
>  
> Hi John.
> 
> On 04/23/2018 02:30 PM, John Dobbins wrote:
>> I restarted from scratch with 3.15.5 and got same result.
>> Did same with 3.15.4 and got same result.
>> 3.15.3 works. All of this is consistent with the date of the change you
>> indicated.
> 
> Interesting. I just switched to a different account so I shouldn't be
> relying on any personal configurations and created a new makeBaseApp
> example IOC from a different Base-3.15.5 tree, and the result works.
> There's something different about your setup; I'm running RHEL-7.5, but
> I also tried it on RHEl-6.9 with no difference. The difference must be
> due to something in our environments (more below).
> 
>> I did  "make -d"  in iocBoot/iocmyExample  and reproduce the tail here:
>> 
>>     Updating goal targets....
>>     Considering target file `all'.
>>      File `all' does not exist.
>>       Considering target file `install'.
>>        File `install' does not exist.
>>         Considering target file `buildInstall'.
>>          File `buildInstall' does not exist.
>>          Finished prerequisites of target file `buildInstall'.
>>         Must remake target `buildInstall'.
>>         Successfully remade target file `buildInstall'.
>>        Finished prerequisites of target file `install'.
>>       Must remake target `install'.
>>       Successfully remade target file `install'.
>>      Finished prerequisites of target file `all'.
>>     Must remake target `all'.
>>     Successfully remade target file `all'.
>>     make: Nothing to be done for `all'.
>> 
>> The target envPaths is not considered. This used to be considered after
>> buildInstall.
> 
> For comparison, here's my tail from 'make -d':
> 
>> Updating goal targets....
>> Considering target file `all'.
>>  File `all' does not exist.
>>   Considering target file `install'.
>>    File `install' does not exist.
>>     Considering target file `buildInstall'.
>>      File `buildInstall' does not exist.
>>       Considering target file `envPaths'.
>>        File `envPaths' does not exist.
>>         Considering target file `../../configure/RELEASE'.
>>         File `../../configure/RELEASE' was considered already.
>>         Considering target file `../../configure/CONFIG_SITE'.
>>         File `../../configure/CONFIG_SITE' was considered already.
>>        Finished prerequisites of target file `envPaths'.
>>       Must remake target `envPaths'.
>> Invoking recipe from /iocapps2/R3.15.5/base/3-15-5-aes1/configure/RULES.ioc:34 to update target `envPaths'.
>> perl -CSD /iocapps2/R3.15.5/base/3-15-5-aes1/bin/linux-x86_64/convertRelease.pl -t /home/phoebus/EPICS/TEMP/3.15-example envPaths
>> Putting child 0x25652b0 (envPaths) PID 24690 on the chain.
>> Live child 0x25652b0 (envPaths) PID 24690 
>> Reaping winning child 0x25652b0 PID 24690 
>> Removing child 0x25652b0 PID 24690 from chain.
>>       Successfully remade target file `envPaths'.
>>      Finished prerequisites of target file `buildInstall'.
>>     Must remake target `buildInstall'.
>>     Successfully remade target file `buildInstall'.
>>    Finished prerequisites of target file `install'.
>>   Must remake target `install'.
>>   Successfully remade target file `install'.
>>  Finished prerequisites of target file `all'.
>> Must remake target `all'.
>> Successfully remade target file `all'.
> 
> So in my case envPaths is seen as a dependency of buildInstall, but it
> isn't in yours. The appropriate build rules are found in the base-3.15
> configure/RULES.ioc file which was not modified when the ARCH variable
> was removed from those Makefiles, but it looks like it probably should
> have been. This part explains why:
> 
>> ifeq ($(filter $(ARCH),$(BUILD_ARCHS)),$(strip $(ARCH)))
>>     buildInstall$(DIVIDER)$(ARCH) buildInstall: $(TARGETS)
>> 
>>     clean$(DIVIDER)$(ARCH) clean:
>>        $(RM) cdCommands envPaths dllPath.bat relPaths.sh
>> else
>>     buildInstall$(DIVIDER)$(ARCH) buildInstall:
>>     clean$(DIVIDER)$(ARCH) clean:
>> endif
> 
> That if condition assumes that ARCH is set and is one of the words in
> BUILD_ARCHS. If ARCH is unset the if condition is apparently evaluated
> as true, but if your environment has the environment variable ARCH set
> to something that is not a configured EPICS build architecture the else
> branch would be taken and the contents of TARGETS will be ignored.
> 
> I set ARCH in my environment to garbage and got the same results as you.
> 
> Could you try 'echo $ARCH' and see what you get?
> 
> The proper solution might be to set ARCH to $(EPICS_HOST_ARCH) in
> Makefile@Common but I need to think about this a bit to decide what the
> best fix is. There should be other changes to that file if it is to work
> properly with ARCH unset.
> 
> Thanks for helping track this down!
> 
> - Andrew
> 
> -- 
> Arguing for surveillance because you have nothing to hide is no
> different than making the claim, "I don't care about freedom of
> speech because I have nothing to say." -- Edward Snowdon

-- 
Arguing for surveillance because you have nothing to hide is no
different than making the claim, "I don't care about freedom of
speech because I have nothing to say." -- Edward Snowdon

References:
base-3.15.5/templates/makeBaseApp/top/iocBoot/ioc/Makefile@Common John Dobbins
Re: base-3.15.5/templates/makeBaseApp/top/iocBoot/ioc/Makefile@Common Andrew Johnson
Re: base-3.15.5/templates/makeBaseApp/top/iocBoot/ioc/Makefile@Common John Dobbins
Re: base-3.15.5/templates/makeBaseApp/top/iocBoot/ioc/Makefile@Common Andrew Johnson
Re: base-3.15.5/templates/makeBaseApp/top/iocBoot/ioc/Makefile@Common John Dobbins

Navigate by Date:
Prev: Re: base-3.15.5/templates/makeBaseApp/top/iocBoot/ioc/Makefile@Common John Dobbins
Next: Re: Security Hardening for EPICS/RTEMS Andrew Johnson
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  <20182019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Re: base-3.15.5/templates/makeBaseApp/top/iocBoot/ioc/Makefile@Common John Dobbins
Next: dbReadDatabase in base-7.0 Benjamin 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  <20182019  2020  2021  2022  2023  2024 
ANJ, 24 Apr 2018 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·