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
<2007>
2008
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
<2007>
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
|