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  <20142015  2016  2017  2018  2019  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  <20142015  2016  2017  2018  2019 
<== Date ==> <== Thread ==>

Subject: Re: PROC vs PROC_HOST
From: Andrew Johnson <anj@aps.anl.gov>
To: "Doucet, Richard" <doucetr@aecl.ca>, <tech-talk@aps.anl.gov>
Date: Wed, 8 Oct 2014 12:17:14 -0500
Hi Richard,

On 10/08/2014 05:46 AM, Doucet, Richard wrote:
> Ran into a problem when trying to cross-compile an EPICS application for
> the ARM architecture under a Linux x86_64 host.  My build created both
> the x86 and x86_64 binary, but would not create the ARM.  I eventually
> change the application makefile:
> 
> PROC_HOST = myApplication

I think you probably mean PROD_HOST and PROD, I will assume that
substitution for the remainder of this message...

> to
> 
> PROC = myApplication
> 
> This caused ARM version to compile, but it failed due to missing
> libraries in the base, specifically asHost and dbStaticHost.  Looking at
> the makefile for those library, I noticed that it had
> 
> LIBRARY_HOST = dbStaticHost
> 
> and
> 
> LIBRARY_HOST = asHost
> 
> These are the only two libraries from the EPICS base I found that define
> the target using the LIBRARY_HOST (macro?) instead of LIBRARY.
> 
> I changed both of these to LIBRARY, recompiled the EPICS based, then
> successfully recompiled the ARM version of my application.
> 
> Is there a reason why these two libraries are defined as LIBRARY_HOST
> instead of just LIBRARY?

Those two libraries are not need for IOC applications, they are only
used by tools that run on the build host (that's what the _HOST suffix
generally means in our build system). We assume that cross-compiled
targets will not need the host tools, so we don't waste time building
them. Some of the cross-build targets we support such as iOS don't
provide all of the OS features that the host tools rely on, so they
can't be built there at all.

Why is this application linking to these libraries instead of the IOC
run-time versions dbStaticIoc and asIoc? How is your Makefile specifying
which EPICS libraries it should link against, and does the application
actually need any routines from dbStaticHost and/or asHost?

- Andrew

References:
PROC vs PROC_HOST Doucet, Richard

Navigate by Date:
Prev: RE: Fanout to Sub Records in a Different IOC Causes Core Dump Poff, Mark A
Next: RE: TCP connection status : drvAsynIPPort Patel Jignesh
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  <20142015  2016  2017  2018  2019 
Navigate by Thread:
Prev: PROC vs PROC_HOST Doucet, Richard
Next: MCA and WAN connection Nicolas Strauss
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  <20142015  2016  2017  2018  2019 
ANJ, 17 Dec 2015 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·