EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  <20072008  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  2006  <20072008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: RE: cmlog ? (still not working)
From: Heinrich du Toit <[email protected]>
Cc: TechTalk EPICS <[email protected]>
Date: Tue, 06 Nov 2007 10:01:21 +0200
Hi
Ok I've tried the stuff below.

I've made a new IOC with makeBaseApp.pl -t cmlogtest
and then makeBaseApp.pl -i -t cmlogtest

ok
then I've rather added CMLOG = /epics/cmlog to configure/RELEASE
I've made simlinks so that CMLOG_ARGH can be linux-x86 so I don't need
that line.

Added the other stuff to the makefile as specified.

Now if I compile directly I get output:


/usr/bin/g++ -c   -D_POSIX_C_SOURCE=199506L -D_POSIX_THREADS
-D_XOPEN_SOURCE=500        -D_X86_  -DUNIX  -D_BSD_SOURCE -Dlinux
-D_REENTRANT -ansi  -O3  -Wall          -g  -I. -I..
-I../../../include/os/Linux -I../../../include
-I/epics/base/include/os/Linux -I/epics/base/include
-I/epics/cmlog/include/os/Linux -I/epics/cmlog/include
-I/epics/cmlog/include    cmlogtest_registerRecordDeviceDriver.cpp 
/usr/bin/g++ -c   -D_POSIX_C_SOURCE=199506L -D_POSIX_THREADS
-D_XOPEN_SOURCE=500        -D_X86_  -DUNIX  -D_BSD_SOURCE -Dlinux
-D_REENTRANT -ansi  -O3  -Wall          -g  -I. -I..
-I../../../include/os/Linux -I../../../include
-I/epics/base/include/os/Linux -I/epics/base/include
-I/epics/cmlog/include/os/Linux -I/epics/cmlog/include
-I/epics/cmlog/include    ../cmlogtestMain.cpp 
/usr/bin/g++ -o cmlogtest  -L/epics/base/lib/linux-x86/
-L/epics/cmlog/lib/linux-x86/ -Wl,-rpath,/epics/base/lib/linux-x86/
-Wl,-rpath,/epics/cmlog/lib/linux-x86/
cmlogtest_registerRecordDeviceDriver.o cmlogtestMain.o    -lcmlog
-lrecIoc -lsoftDevIoc -liocsh -lmiscIoc -lrsrvIoc -ldbtoolsIoc -lasIoc
-ldbIoc -lregistryIoc -ldbStaticIoc -lca -lCom 
/usr/bin/ld: cmlogtest: hidden symbol `__stack_chk_fail_local'
in /usr/lib/libc_nonshared.a(stack_chk_fail_local.oS) is referenced by
DSO
/usr/bin/ld: final link failed: Nonrepresentable section on output
collect2: ld returned 1 exit status
make[3]: *** [cmlogtest] Error 1
make[3]: Leaving directory
`/home/heinrich/EPICS/cmlogtest/cmlogtestApp/src/O.linux-x86'
make[2]: *** [install.linux-x86] Error 2

ok this doesn't make sense at all!
Because cmlog is statically linked. So why can adding this produce some
or other reference messup.

ok so I've added two include lines to the source file cmlogtestMain.cpp
#include "cmlogClient.h"
#include <unistd.h>

now I ran make clean and then make
See attached file for output.

Maybe cmlog is just not meant for me :)

-Heinrich



On Tue, 2007-10-23 at 12:10 -0700, Allison, Stephanie wrote:
> HI Heinrich,
>  
> Here is what I do to add cmlog to a 3.14 soft IOC:
>  
> (1) Update CONFIG_SITE.Common.linux-x86 (or whatever OS you use) to add these lines:
> CMLOG = <location of cmlog, ie /afs/slac/g/lcls/cmlog for LCLS>
> CMLOG_ARCH = <architecture, ie Linux-i386>
> 
> (2) In your app's src/Makefile, add these lines:
> USR_INCLUDES += -I$(CMLOG)/include 
> cmlog_DIR += $(CMLOG)/lib/$(CMLOG_ARCH) 
> <app>_LIBS += cmlog 
>  
> (3) You may want to keep your cmlogrc and cmlogTagTable files in your src directory and install them via Makefile:
>  
> SCRIPTS_IOC += cmlogTagTable
> SCRIPTS_HOST += cmlogrc
> 
> (4) Add these env vars to whatever setup file you use:
> CMLOG_HOST
> CMLOG_PORT
> CMLOG_CONFIG location of cmlogrc
> CDEVTAGTABLE location of cmlogTagTable
>  
> Stephanie Allison
>  
> ________________________________
> 
> From: [email protected] on behalf of Heinrich du Toit
> Sent: Tue 10/23/2007 7:05 AM
> To: TechTalk EPICS
> Subject: cmlog ?
> 
> 
> 
> Hi
> 
> What do I need to add to my IOC Makefile to link with cmlog?
> 
> Maybe somebody have this already? Then I don't have to dig through docs
> to convert the std Makefile stuff in cmlog docs to EPICS build system
> stuff.
> 
> Would appreciate it thanks :)
> 
> -Heinrich
> 
> 
> 
make -C configure install
make[1]: Entering directory `/home/heinrich/EPICS/cmlogtest/configure'
perl /epics/base/configure/tools/convertRelease.pl -h linux-x86 checkRelease
perl /epics/base/configure/tools/makeMakefile.pl O.linux-x86 ../..
mkdir O.Common
make -C O.linux-x86 -f ../Makefile TOP=../.. T_A=linux-x86 install
make[2]: Entering directory `/home/heinrich/EPICS/cmlogtest/configure/O.linux-x86'
perl /epics/base/configure/tools/convertRelease.pl -h linux-x86 CONFIG_APP_INCLUDE
perl /epics/base/configure/tools/convertRelease.pl -h linux-x86 RULES_INCLUDE
make[2]: Leaving directory `/home/heinrich/EPICS/cmlogtest/configure/O.linux-x86'
make[1]: Leaving directory `/home/heinrich/EPICS/cmlogtest/configure'
make -C cmlogtestApp install
make[1]: Entering directory `/home/heinrich/EPICS/cmlogtest/cmlogtestApp'
make -C src install
make[2]: Entering directory `/home/heinrich/EPICS/cmlogtest/cmlogtestApp/src'
perl /epics/base/configure/tools/makeMakefile.pl O.linux-x86 ../../..
mkdir O.Common
make -C O.linux-x86 -f ../Makefile TOP=../../.. T_A=linux-x86 install
make[3]: Entering directory `/home/heinrich/EPICS/cmlogtest/cmlogtestApp/src/O.linux-x86'
make[3]: Leaving directory `/home/heinrich/EPICS/cmlogtest/cmlogtestApp/src/O.linux-x86'
make[3]: Entering directory `/home/heinrich/EPICS/cmlogtest/cmlogtestApp/src/O.linux-x86'
perl /epics/base/configure/tools/makeIncludeDbd.pl base.dbd ../O.Common/cmlogtestInclude.dbd
Expanding dbd
/epics/base/bin/linux-x86/dbExpand  -I . -I .. -I ../../../dbd -I /epics/base/dbd -o ../O.Common/cmlogtest.dbd ../O.Common/cmlogtestInclude.dbd
Installing dbd file ../../../dbd/cmlogtest.dbd
perl /epics/base/bin/linux-x86/registerRecordDeviceDriver.pl ../O.Common/cmlogtest.dbd cmlogtest_registerRecordDeviceDriver > temp.cpp
mv temp.cpp cmlogtest_registerRecordDeviceDriver.cpp
/usr/bin/g++ -c   -D_POSIX_C_SOURCE=199506L -D_POSIX_THREADS -D_XOPEN_SOURCE=500        -D_X86_  -DUNIX  -D_BSD_SOURCE -Dlinux  -D_REENTRANT -ansi  -O3  -Wall          -g  -I. -I.. -I../../../include/os/Linux -I../../../include -I/epics/base/include/os/Linux -I/epics/base/include -I/epics/cmlog/include/os/Linux -I/epics/cmlog/include     -I/epics/cmlog/include    cmlogtest_registerRecordDeviceDriver.cpp 
/usr/bin/g++ -c   -D_POSIX_C_SOURCE=199506L -D_POSIX_THREADS -D_XOPEN_SOURCE=500        -D_X86_  -DUNIX  -D_BSD_SOURCE -Dlinux  -D_REENTRANT -ansi  -O3  -Wall          -g  -I. -I.. -I../../../include/os/Linux -I../../../include -I/epics/base/include/os/Linux -I/epics/base/include -I/epics/cmlog/include/os/Linux -I/epics/cmlog/include     -I/epics/cmlog/include    ../cmlogtestMain.cpp 
In file included from /epics/cmlog/include/cmlogProtocol.h:41,
                 from /epics/cmlog/include/cmlogFilter.h:40,
                 from /epics/cmlog/include/cmlogClient.h:40,
                 from ../cmlogtestMain.cpp:14:
/epics/cmlog/include/cmlogConfig.h:75:1: warning: "/*" within comment
/epics/cmlog/include/cdevDataEntry.h: In constructor âcdevDataEntry::cdevDataEntry()â:
/epics/cmlog/include/cdevDataEntry.h:312: warning: âcdevDataEntry::next_â will be initialized after
/epics/cmlog/include/cdevDataEntry.h:319: warning:   base âcdevDataEntryStorageâ
/epics/cmlog/include/cdevDataEntry.h:319: warning:   when initialized here
/epics/cmlog/include/cdevSlist.h: At global scope:
/epics/cmlog/include/cdevSlist.h:143: warning: âclass cdevSlistIteratorâ has virtual functions but non-virtual destructor
/epics/cmlog/include/cdevSlist.h:181: warning: âclass cdevSlistCursorâ has virtual functions but non-virtual destructor
/epics/cmlog/include/cdevData.h:131: warning: âclass cdevDataâ has virtual functions but non-virtual destructor
/epics/cmlog/include/cdevData.i: In member function âcdevData::operator char*()â:
/epics/cmlog/include/cdevData.i:406: warning: dereferencing type-punned pointer will break strict-aliasing rules
/epics/cmlog/include/cmlogSlist.h: At global scope:
/epics/cmlog/include/cmlogSlist.h:178: warning: âclass cmlogSlistIteratorâ has virtual functions but non-virtual destructor
/epics/cmlog/include/cmlogSlist.h:233: warning: âclass cmlogSlistCursorâ has virtual functions but non-virtual destructor
/epics/cmlog/include/cmlog_cdevMessage.h: In member function âvoid cmlog_cdevMessage::setDeviceList(char**, int)â:
/epics/cmlog/include/cmlog_cdevMessage.h:86: warning: comparison between signed and unsigned integer expressions
/epics/cmlog/include/xdrClass.h: In member function âint XDR_Writer::put_longlong(long long int)â:
/epics/cmlog/include/xdrClass.h:304: warning: dereferencing type-punned pointer will break strict-aliasing rules
/epics/cmlog/include/xdrClass.h: In member function âint XDR_Writer::put_u_longlong(long long unsigned int)â:
/epics/cmlog/include/xdrClass.h:318: warning: dereferencing type-punned pointer will break strict-aliasing rules
/epics/cmlog/include/ace/Addr.h: At global scope:
/epics/cmlog/include/ace/Addr.h:25: warning: âclass ACE_Addrâ has virtual functions but non-virtual destructor
/epics/cmlog/include/ace/INET_Addr.h:24: warning: âclass ACE_INET_Addrâ has virtual functions but non-virtual destructor
/usr/bin/g++ -o cmlogtest  -L/epics/base/lib/linux-x86/ -L/epics/cmlog/lib/linux-x86/ -Wl,-rpath,/epics/base/lib/linux-x86/ -Wl,-rpath,/epics/cmlog/lib/linux-x86/                 cmlogtest_registerRecordDeviceDriver.o cmlogtestMain.o    -lcmlog -lrecIoc -lsoftDevIoc -liocsh -lmiscIoc -lrsrvIoc -ldbtoolsIoc -lasIoc -ldbIoc -lregistryIoc -ldbStaticIoc -lca -lCom 
/usr/bin/ld: cmlogtest: hidden symbol `__stack_chk_fail_local' in /usr/lib/libc_nonshared.a(stack_chk_fail_local.oS) is referenced by DSO
/usr/bin/ld: final link failed: Nonrepresentable section on output
collect2: ld returned 1 exit status
make[3]: *** [cmlogtest] Error 1
make[3]: Leaving directory `/home/heinrich/EPICS/cmlogtest/cmlogtestApp/src/O.linux-x86'
make[2]: *** [install.linux-x86] Error 2
make[2]: Leaving directory `/home/heinrich/EPICS/cmlogtest/cmlogtestApp/src'
make[1]: *** [src.install] Error 2
make[1]: Leaving directory `/home/heinrich/EPICS/cmlogtest/cmlogtestApp'
make: *** [cmlogtestApp.install] Error 2

References:
cmlog ? Heinrich du Toit
RE: cmlog ? Allison, Stephanie

Navigate by Date:
Prev: Re: Tornado 2.2.2 bug Andrew Johnson
Next: Re: EPICS on Mac OS X 10.5 Noboru Yamamoto
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  <20072008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: RE: cmlog ? Allison, Stephanie
Next: New release of Ipac Andrew Johnson
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  <20072008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 10 Nov 2011 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·