EPICS Home

Experimental Physics and Industrial Control System


 
1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  <20062007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  <20062007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Re: error while building ChannelArchiver2.8.1 in RedHat9
From: Kay-Uwe Kasemir <[email protected]>
To: Liu Shu <[email protected]>
Cc: [email protected]
Date: Sat, 08 Jul 2006 11:28:23 -0400

On Jul 8, 2006, at 00:18 , Liu Shu wrote:


Hi:
I have ever installed ChannelArchiver2.6.0 in Redhat 9 successfully,while
when I build ChannelArchiver2.8.1 in RedHat 9 I got error:
......
/usr/bin/g++ -o ArchiveDataServerStandalone -L../../../../lib/ linux-x86/
-L/home/epicsadm/epics/base3.14.7/lib/linux-x86/
-L../../../../xerces-c-src2_4_0/lib -lxerces-c
-Wl,-rpath,/home/epicsadm/epics/extensions/lib/linux-x86
-Wl,-rpath,/home/epicsadm/epics/base3.14.7/lib/linux-x86 ServerConfig.o
ArchiveDataServer.o main_standalone.o -lDataServer -lStorage - lTools
-lrecIoc -lsoftDevIoc -liocsh -lmiscIoc -lrsrvIoc -ldbtoolsIoc - lasIoc -ldbIoc
-lregistryIoc -ldbStaticIoc -lca -lCom -L/home/epicsadm/epics/ extensions/lib
-lxmlrpc_abyss_server -lxmlrpc_abyss -lxmlrpc -lxmlrpc_xmlparse - lxmlrpc_xmltok
../../../../lib/linux-x86//libDataServer.so: undefined reference to
`xmlrpc_client_call'


The problem results from the use of shared libraries.

The ArchiveDataServer* uses the _server_ portion of the XML-RPC library,
so the linker line only includes the server flags,
which it obtains from some xml-rpc-c-config tool.

However, it also links with the libDataServer library, which includes
all sorts of things, including some _client_ code.
If libDataServer was build as a static library, all is fine,
because that client code isn't linked.
But when you build libDataServer as a shared library,
I think the OS tries to load the full library,
trying to resolve everything, but since only the XML-RPC-server
portion resolves, you get the error message about the missing xmlrpc_client_call.


That's why I added this to the ChannelArchiver/make.cfg:

   # These are overrides for CONFIG_SITE.
   # You can try to build shared libs, but don't come running!
   SHARED_LIBRARIES = NO

You indicated that you changed that to SHARED_LIBRARIES = YES.
I'm afraid you'll have to figure out how to invoke the xml-rpc-c- config with the approriate
options, or stick with SHARED_LIBRARIES = NO.


-Kay



References:
error while building ChannelArchiver2.8.1 in RedHat9 Liu Shu

Navigate by Date:
Prev: error while building ChannelArchiver2.8.1 in RedHat9 Liu Shu
Next: mca R6-7 released Mark Rivers
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  <20062007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: error while building ChannelArchiver2.8.1 in RedHat9 Liu Shu
Next: mca R6-7 released Mark Rivers
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  <20062007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024