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  2018  2019  2020  <20212022  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  2018  2019  2020  <20212022  2023  2024 
<== Date ==> <== Thread ==>

Subject: RE: asyn: No rule to make target 'ipSNCServer.o'; Does configure/RELEASE have multiple pointers to ...
From: Mark Rivers via Tech-talk <tech-talk at aps.anl.gov>
To: "'Hu, Yong'" <yhu at bnl.gov>
Cc: EPICS Tech-Talk <tech-talk at aps.anl.gov>
Date: Tue, 20 Apr 2021 22:50:41 +0000

Hi Yong,

 

Ø  Just to be clear, the module “seq” has been installed on my server:

Ø  $ ls -lht /usr/lib/epics/lib/linux-x86_64/libseq*

 

The error you are getting is what will happen if it cannot find the ”snc” executable.  Does that exist in /usr/lib/epics/bin/linux-x86_64?

 

Ø  This is the historical tradition at NSLS-2: we install all EPICS stuff (base, support modules) in a flat directory “/usr/lib/epics”.

Ø  $ ls /usr/lib/epics/

Ø  bin  cfg  configure  db  dbd  include  lib  startup  templates

 

It seems to me that this works fine as long as you are using all modules from /usr/lib/epics.

 

But now you want to use a different version of asyn from the one that is in /usr/lib/epics.  That can lead to problems.

 

If, for example, you have an application configure/RELEASE file that looks like this:

 

SNCSEQ=/usr/lib/epics

ASYN=/home/yhu/epics/asyn-4-41

EPICS_BASE=/usr/lib/epics

 

It will not work correctly, because the search path for include and library files will first be /usr/lib/epics, then /home/yhu/epics/asyn-4-41, and then /usr/lib/epics again (maybe, I don’t know if this is optimized out).  The problem is that if your application is using asyn, then it will not find the correct asyn files in /home/yhu/epics/asyn-4-41, it will find the old asyn files in /usr/lib/epics because that is searched first.  It does not look for asyn files in ASYN, it looks for asyn files in the complete search path, including ASYN but also including everything else defined in configure/RELEASE.

 

I think it can be made to work correctly if you always put the new modules (the ones not in /usr/lib/epics) at the beginning of your configure/RELEASE file, before any modules in /usr/lib/epics.  But then you may need to change the order of entries in distributed configure/RELEASE files in other modules.

 

Ø   The building rules in base-R7.0.4.1 must have changed.

Ø  I guess the rules ignore “SNCSEQ” when SNCSEQ has the same path as EPICS_BASE.

Ø  If my guess is right, it explains why I still get the error “No rule to make target 'ipSNCServer.o'” even after I have SNCSEQ defined.

 

I don’t think that can be the problem.  The only thing that defining SNCSEQ and EPICS_BASE does is to add them to the path for searching for dbd files, include files, library files, etc.  /usr/lib/epics only needs to be in that path once, so the problem cannot be that it is ignoring SNCSEQ, because EPICS_BASE alone should be sufficient.

 

Mark

 

 

 

From: Tech-talk <tech-talk-bounces at aps.anl.gov> On Behalf Of Hu, Yong via Tech-talk
Sent: Tuesday, April 20, 2021 3:56 PM
To: tech-talk at aps.anl.gov
Subject: Re: asyn: No rule to make target 'ipSNCServer.o'; Does configure/RELEASE have multiple pointers to ...

 

Just to be clear, the module “seq” has been installed on my server:

$ ls -lht /usr/lib/epics/lib/linux-x86_64/libseq*

-r--r--r--. 1 root root 105K Sep  3  2020 /usr/lib/epics/lib/linux-x86_64/libseq.a

-r-xr-xr-x. 1 root root  74K Sep  3  2020 /usr/lib/epics/lib/linux-x86_64/libseq.so

-r--r--r--. 1 root root 2.5K Sep  3  2020 /usr/lib/epics/lib/linux-x86_64/libseqSoftIocSupport.a

-r-xr-xr-x. 1 root root 8.3K Sep  3  2020 /usr/lib/epics/lib/linux-x86_64/libseqSoftIocSupport.so

 

The building rules in base-R7.0.4.1 must have changed. I guess the rules ignore “SNCSEQ” when SNCSEQ has the same path as EPICS_BASE. If my guess is right, it explains why I still get the error “No rule to make target 'ipSNCServer.o'” even after I have SNCSEQ defined.

 

Thanks,

Yong

 

From: Tech-talk <tech-talk-bounces at aps.anl.gov> on behalf of "tech-talk at aps.anl.gov" <tech-talk at aps.anl.gov>
Reply-To: "Hu, Yong" <yhu at bnl.gov>
Date: Tuesday, April 20, 2021 at 4:44 PM
To: "tech-talk at aps.anl.gov" <tech-talk at aps.anl.gov>
Subject: asyn: No rule to make target 'ipSNCServer.o'; Does configure/RELEASE have multiple pointers to ...

 

Hello everyone,

 

I am trying to build the latest asyn (commit a2da087) against base-R7.0.4.1, but encountered the same error “No rule to make target 'ipSNCServer.o'” as reported on tech-talk:

https://epics.anl.gov/tech-talk/2007/msg01045.php

 

However, I do have SNCSEQ defined in asyn/configure/RELEASE:

SNCSEQ=/usr/lib/epics

EPICS_BASE=/usr/lib/epics

 

As you see, both EPICS_BASE and SNCSEQ point to the same path in my RELEASE. This is the historical tradition at NSLS-2: we install all EPICS stuff (base, support modules) in a flat directory “/usr/lib/epics”.

$ ls /usr/lib/epics/

bin  cfg  configure  db  dbd  include  lib  startup  templates

 

This has been working well for base-3.14.12, meaning I can build the latest asyn (commit a2da087) against base-3.14.12 with SNCSEQ=/usr/lib/epics. Now, this kind of directory structure seems to not work for base-R7.0.4.1. I do see some warnings when building asyn against base-R7.0.4.1:

/usr/lib/epics/configure/RULES_BUILD:575: Warning: Base configure/RULES_BUILD file included more than once. Does configure/RELEASE have multiple pointers to /usr/lib/epics?

 

If I make a change like this: SNCSEQ=/home/yhu/epics/seq-2-2-6 where I have built “seq” in my home directory, I can build the latest asyn (commit a2da087) against base-R7.0.4.1 successfully.

 

So, the problem seems related to “Does configure/RELEASE have multiple pointers to …”. A simple search on Google/Tech-Talk does not give me any hints to fix the problem. Any suggestions are welcomed!

 

Thanks,

Yong

 


Replies:
Re: asyn: No rule to make target 'ipSNCServer.o'; Does configure/RELEASE have multiple pointers to ... Hu, Yong via Tech-talk
References:
asyn: No rule to make target 'ipSNCServer.o'; Does configure/RELEASE have multiple pointers to ... Hu, Yong via Tech-talk
Re: asyn: No rule to make target 'ipSNCServer.o'; Does configure/RELEASE have multiple pointers to ... Hu, Yong via Tech-talk

Navigate by Date:
Prev: Re: asyn: No rule to make target 'ipSNCServer.o'; Does configure/RELEASE have multiple pointers to ... Hu, Yong via Tech-talk
Next: Re: asyn: No rule to make target 'ipSNCServer.o'; Does configure/RELEASE have multiple pointers to ... Johnson, Andrew N. via Tech-talk
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  <20212022  2023  2024 
Navigate by Thread:
Prev: Re: asyn: No rule to make target 'ipSNCServer.o'; Does configure/RELEASE have multiple pointers to ... Hu, Yong via Tech-talk
Next: Re: asyn: No rule to make target 'ipSNCServer.o'; Does configure/RELEASE have multiple pointers to ... Hu, Yong via Tech-talk
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  <20212022  2023  2024 
ANJ, 21 Apr 2021 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·