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  <20202021  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  2018  2019  <20202021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: RE: XSPRESS3 hdf5 problems
From: Mark Rivers via Tech-talk <tech-talk at aps.anl.gov>
To: 'Ralph Lange' <ralph.lange at gmx.de>
Cc: "tech-talk at aps.anl.gov" <tech-talk at aps.anl.gov>
Date: Mon, 27 Jan 2020 22:02:30 +0000

Hi Ralph,

 

Thanks for the explanation.

 

I’d like to add a bit more.

 

When I build, for example, the simDetector IOC on Centos7 dynamically I do not link with pthread or rt.  It builds fine, and ldd shows that libpthread.so and librt.so are linked and found.  However, the simDetector libraries do not directly call pthread or rt functions, it is only base (or perhaps other libraries) that call pthread or rt.

 

The difference with the xspress3 IOC is that the xspress3 libraries themselves directly call pthread and rt.  That seems to be the case where they must be included in the PROD_SYS_LIBS.

 

Mark

 

 

From: Tech-talk <tech-talk-bounces at aps.anl.gov> On Behalf Of Ralph Lange via Tech-talk
Sent: Monday, January 27, 2020 3:48 PM
To: EPICS Tech Talk <tech-talk at aps.anl.gov>
Subject: Re: XSPRESS3 hdf5 problems

 

Background:

Between RHEL6 and RHEL7, the indirect linking policy changed.

Before, applications could rely on symbols from indirectly linked libraries to be available. E.g., an EPICS IOC could just use pthread calls without explicitly linking against it, knowing that EPICS Base libraries had been linked against pthread and would make the shared library available at run time.

Now, each application must explicitly link against all libraries it uses. (Careful with libraries that use C++ templates in their APIs. They inject source code into your application, so that it may e.g. call pthread without you knowing it. Under the new policy, the pthread library needs to be added in such a case.)

 

 

Cheers,
~Ralph

 

 

On Mon, 27 Jan 2020 at 19:50, Mark Rivers via Tech-talk <tech-talk at aps.anl.gov> wrote:

Hi John,

 

I found and fixed the problem.  The pthread and rt libraries needed to be added to PROD_SYS_LIBS.  They appear to be added automatically by the EPICS build system for static builds, but not for dynamic builds.

 

The master branch should now work correctly for dynamic builds.

 

Mark

 


References:
XSPRESS3 hdf5 problems John Dobbins via Tech-talk
RE: XSPRESS3 hdf5 problems Mark Rivers via Tech-talk
Re: XSPRESS3 hdf5 problems John Dobbins via Tech-talk
Re: XSPRESS3 hdf5 problems Matt Newville via Tech-talk
Re: XSPRESS3 hdf5 problems John Dobbins via Tech-talk
RE: XSPRESS3 hdf5 problems Mark Rivers via Tech-talk
Re: XSPRESS3 hdf5 problems John Dobbins via Tech-talk
RE: XSPRESS3 hdf5 problems Mark Rivers via Tech-talk
Re: XSPRESS3 hdf5 problems Ralph Lange via Tech-talk

Navigate by Date:
Prev: Re: XSPRESS3 hdf5 problems Ralph Lange via Tech-talk
Next: RE: XSPRESS3 hdf5 problems Mark Rivers 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  <20202021  2022  2023  2024 
Navigate by Thread:
Prev: Re: XSPRESS3 hdf5 problems Ralph Lange via Tech-talk
Next: Re: XSPRESS3 hdf5 problems John Dobbins 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  <20202021  2022  2023  2024 
ANJ, 27 Jan 2020 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·