Argonne National Laboratory

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

Subject: RE: sequencer under linux questions
From: "Mark Rivers" <rivers@cars.uchicago.edu>
To: "Dennis Nicklaus" <nicklaus@fnal.gov>, <tech-talk@aps.anl.gov>
Date: Fri, 28 Jul 2006 16:45:30 -0500
Hi Dennis,

What version of EPICS and what version of seq are you using?

I just tested it with EPICS 3.14.8.2 and seq 2-0-11 and it worked OK
after editing configure/RELEASE and making a couple of edits to the
st.cmd in the iocBoot directory.

Here is what I did:

corvette> makeBaseApp.pl -t example example
corvette> makeBaseApp.pl -i -t ioc example
The following target architectures are available in base:
    linux-x86
    vxWorks-68040
    vxWorks-ppc604
    vxWorks-ppc603
    win32-x86
    cygwin-x86
What architecture do you want to use? linux-x86
The following applications are available:
    example
What application should the IOC(s) boot?
The default uses the IOC's name, even if not listed above.
Application name? example

corvette> vi configure/RELEASE 
#RELEASE Location of external products
# Run "gnumake clean uninstall install" in the application
# top directory each time this file is changed.
#
# NOTE: The build does not check dependancies on files
# external to this application. Thus you should run
# "gnumake clean uninstall install" in the top directory
# each time EPICS_BASE, SNCSEQ, or any other external
# module defined in the RELEASE file is rebuilt.

TEMPLATE_TOP=$(EPICS_BASE)/templates/makeBaseApp/top

# If you don't want to install into $(TOP) then
# define INSTALL_LOCATION_APP here
#INSTALL_LOCATION_APP=<fullpathname>

#If using the sequencer, point SNCSEQ at its top directory:
SNCSEQ=/home/epics/devel/seq/2-0-11

# EPICS_BASE usually appears last so other apps can override stuff:
EPICS_BASE=/usr/local/epics/base

#Capfast users may need the following definitions
#CAPFAST_TEMPLATES=
#SCH2EDIF_PATH=


corvette> make
make -C configure install
make[1]: Entering directory `/home/epics/devel/example/configure'
perl /usr/local/epics/base/configure/tools/convertRelease.pl -h
linux-x86 checkRelease
perl /usr/local/epics/base/configure/tools/makeMakefile.pl O.linux-x86
../..
perl /usr/local/epics/base/configure/tools/makeMakefile.pl
O.vxWorks-68040 ../..
perl /usr/local/epics/base/configure/tools/makeMakefile.pl
O.vxWorks-ppc604 ../..
perl /usr/local/epics/base/configure/tools/makeMakefile.pl
O.vxWorks-ppc603 ../..
mkdir O.Common
make -C O.linux-x86 -f ../Makefile TOP=../.. T_A=linux-x86 install
make[2]: Entering directory
`/home/epics/devel/example/configure/O.linux-x86'
perl /usr/local/epics/base/configure/tools/convertRelease.pl -h
linux-x86 CONFIG_APP_INCLUDE
perl /usr/local/epics/base/configure/tools/convertRelease.pl -h
linux-x86 RULES_INCLUDE
make[2]: Leaving directory
`/home/epics/devel/example/configure/O.linux-x86'
make -C O.vxWorks-68040 -f ../Makefile TOP=../.. T_A=vxWorks-68040
install
make[2]: Entering directory
`/home/epics/devel/example/configure/O.vxWorks-68040'
perl /usr/local/epics/base/configure/tools/convertRelease.pl -h
linux-x86 CONFIG_APP_INCLUDE
perl /usr/local/epics/base/configure/tools/convertRelease.pl -h
linux-x86 RULES_INCLUDE
make[2]: Leaving directory
`/home/epics/devel/example/configure/O.vxWorks-68040'
make -C O.vxWorks-ppc604 -f ../Makefile TOP=../.. T_A=vxWorks-ppc604
install
make[2]: Entering directory
`/home/epics/devel/example/configure/O.vxWorks-ppc604'
perl /usr/local/epics/base/configure/tools/convertRelease.pl -h
linux-x86 CONFIG_APP_INCLUDE
perl /usr/local/epics/base/configure/tools/convertRelease.pl -h
linux-x86 RULES_INCLUDE
make[2]: Leaving directory
`/home/epics/devel/example/configure/O.vxWorks-ppc604'
make -C O.vxWorks-ppc603 -f ../Makefile TOP=../.. T_A=vxWorks-ppc603
install
make[2]: Entering directory
`/home/epics/devel/example/configure/O.vxWorks-ppc603'
perl /usr/local/epics/base/configure/tools/convertRelease.pl -h
linux-x86 CONFIG_APP_INCLUDE
perl /usr/local/epics/base/configure/tools/convertRelease.pl -h
linux-x86 RULES_INCLUDE
make[2]: Leaving directory
`/home/epics/devel/example/configure/O.vxWorks-ppc603'
make[1]: Leaving directory `/home/epics/devel/example/configure'
make -C exampleApp install
make[1]: Entering directory `/home/epics/devel/example/exampleApp'
make -C src install
make[2]: Entering directory `/home/epics/devel/example/exampleApp/src'
perl /usr/local/epics/base/configure/tools/makeMakefile.pl O.linux-x86
../../..
perl /usr/local/epics/base/configure/tools/makeMakefile.pl
O.vxWorks-68040 ../../..
perl /usr/local/epics/base/configure/tools/makeMakefile.pl
O.vxWorks-ppc604 ../../..
perl /usr/local/epics/base/configure/tools/makeMakefile.pl
O.vxWorks-ppc603 ../../..
mkdir O.Common
make -C O.linux-x86 -f ../Makefile TOP=../../.. T_A=linux-x86 install
make[3]: Entering directory
`/home/epics/devel/example/exampleApp/src/O.linux-x86'
make[3]: Leaving directory
`/home/epics/devel/example/exampleApp/src/O.linux-x86'
make[3]: Entering directory
`/home/epics/devel/example/exampleApp/src/O.linux-x86'
perl /usr/local/epics/base/configure/tools/makeIncludeDbd.pl base.dbd
xxxSupport.dbd dbSubExample.dbd exampleHello.dbd sncExample.dbd
../O.Common/exampleInclude.dbd
Expanding dbd
/usr/local/epics/base/bin/linux-x86/dbExpand  -I . -I .. -I ../../../dbd
-I /home/epics/devel/seq/2-0-11/dbd -I /usr/local/epics/base/dbd -o
../O.Common/example.dbd ../O.Common/exampleInclude.dbd
Installing dbd file ../../../dbd/xxxSupport.dbd
mkdir ../../../dbd
Installing dbd file ../../../dbd/example.dbd
Installing dbd file ../../../dbd/xxxRecord.dbd
/usr/local/epics/base/bin/linux-x86/dbToRecordtypeH  -I . -I .. -I
../../../dbd -I /home/epics/devel/seq/2-0-11/dbd -I
/usr/local/epics/base/dbd  ../xxxRecord.dbd ../O.Common/xxxRecord.h
Installing generated generic include file ../../../include/xxxRecord.h
mkdir ../../../include
/usr/bin/gcc -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 -fPIC -I. -I..
-I../../../include/os/Linux -I../../../include
-I/home/epics/devel/seq/2-0-11/include/os/Linux
-I/home/epics/devel/seq/2-0-11/include
-I/usr/local/epics/base/include/os/Linux -I/usr/local/epics/base/include
../xxxRecord.c 
/usr/bin/gcc -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 -fPIC -I. -I..
-I../../../include/os/Linux -I../../../include
-I/home/epics/devel/seq/2-0-11/include/os/Linux
-I/home/epics/devel/seq/2-0-11/include
-I/usr/local/epics/base/include/os/Linux -I/usr/local/epics/base/include
../devXxxSoft.c 
/usr/bin/ar -rc   libxxxSupport.a      xxxRecord.o devXxxSoft.o 
/usr/bin/ranlib libxxxSupport.a
Installing library ../../../lib/linux-x86/libxxxSupport.a
mkdir ../../../lib
mkdir ../../../lib/linux-x86
/usr/bin/ranlib ../../../lib/linux-x86/libxxxSupport.a
/usr/bin/g++ -o libxxxSupport.so -shared -fPIC
-L/usr/local/epics/base/lib/linux-x86/
-Wl,-rpath,/home/epics/devel/example/lib/linux-x86
-Wl,-rpath,/home/epics/devel/seq/2-0-11/lib/linux-x86
-Wl,-rpath,/usr/local/epics/base/lib/linux-x86        xxxRecord.o
devXxxSoft.o    -lrecIoc -lsoftDevIoc -liocsh -lmiscIoc -lrsrvIoc
-ldbtoolsIoc -lasIoc -ldbIoc -lregistryIoc -ldbStaticIoc -lca -lCom
-lpthread   -lreadline -lcurses -lm -lrt -lgcc
Installing shared library ../../../lib/linux-x86/libxxxSupport.so
preprocessing ../sncProgram.st
/usr/bin/gcc -x c -E   -D_POSIX_C_SOURCE=199506L -D_POSIX_THREADS
-D_XOPEN_SOURCE=500        -D_X86_  -DUNIX  -D_BSD_SOURCE -Dlinux
-D_REENTRANT -I. -I.. -I../../../include/os/Linux -I../../../include
-I/home/epics/devel/seq/2-0-11/include/os/Linux
-I/home/epics/devel/seq/2-0-11/include
-I/usr/local/epics/base/include/os/Linux -I/usr/local/epics/base/include
../sncProgram.st > sncProgram.i
converting sncProgram.i
/home/epics/devel/seq/2-0-11/bin/linux-x86/snc +m   sncProgram.i -o
sncProgram.c.tmp
mv sncProgram.c.tmp sncProgram.c
/usr/bin/gcc -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/home/epics/devel/seq/2-0-11/include/os/Linux
-I/home/epics/devel/seq/2-0-11/include
-I/usr/local/epics/base/include/os/Linux -I/usr/local/epics/base/include
sncProgram.c 
/usr/bin/g++ -o sncProgram
-L/home/epics/devel/seq/2-0-11/lib/linux-x86/
-L/usr/local/epics/base/lib/linux-x86/
-Wl,-rpath,/home/epics/devel/example/lib/linux-x86
-Wl,-rpath,/home/epics/devel/seq/2-0-11/lib/linux-x86
-Wl,-rpath,/usr/local/epics/base/lib/linux-x86        sncProgram.o
-lseq -lpv -lcas -lgdd -liocsh -lasHost -ldbStaticHost -lregistryIoc
-lca -lCom 
perl /usr/local/epics/base/bin/linux-x86/registerRecordDeviceDriver.pl
../O.Common/example.dbd example_registerRecordDeviceDriver > temp.cpp
mv temp.cpp example_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/home/epics/devel/seq/2-0-11/include/os/Linux
-I/home/epics/devel/seq/2-0-11/include
-I/usr/local/epics/base/include/os/Linux -I/usr/local/epics/base/include
example_registerRecordDeviceDriver.cpp 
/usr/bin/gcc -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/home/epics/devel/seq/2-0-11/include/os/Linux
-I/home/epics/devel/seq/2-0-11/include
-I/usr/local/epics/base/include/os/Linux -I/usr/local/epics/base/include
../dbSubExample.c 
/usr/bin/gcc -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/home/epics/devel/seq/2-0-11/include/os/Linux
-I/home/epics/devel/seq/2-0-11/include
-I/usr/local/epics/base/include/os/Linux -I/usr/local/epics/base/include
../exampleHello.c 
converting ../sncExample.stt 
/home/epics/devel/seq/2-0-11/bin/linux-x86/snc    ../sncExample.stt -o
sncExample.c.tmp
mv sncExample.c.tmp sncExample.c
/usr/bin/gcc -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/home/epics/devel/seq/2-0-11/include/os/Linux
-I/home/epics/devel/seq/2-0-11/include
-I/usr/local/epics/base/include/os/Linux -I/usr/local/epics/base/include
sncExample.c 
/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/home/epics/devel/seq/2-0-11/include/os/Linux
-I/home/epics/devel/seq/2-0-11/include
-I/usr/local/epics/base/include/os/Linux -I/usr/local/epics/base/include
../exampleMain.cpp 
/usr/bin/g++ -o example  -L../../../lib/linux-x86//
-L/home/epics/devel/seq/2-0-11/lib/linux-x86/
-L/usr/local/epics/base/lib/linux-x86/
-Wl,-rpath,/home/epics/devel/example/lib/linux-x86
-Wl,-rpath,/home/epics/devel/seq/2-0-11/lib/linux-x86
-Wl,-rpath,/usr/local/epics/base/lib/linux-x86
example_registerRecordDeviceDriver.o dbSubExample.o exampleHello.o
sncExample.o exampleMain.o    -lxxxSupport -lseq -lpv -lrecIoc
-lsoftDevIoc -liocsh -lmiscIoc -lrsrvIoc -ldbtoolsIoc -lasIoc -ldbIoc
-lregistryIoc -ldbStaticIoc -lca -lCom 
Installing binary ../../../bin/linux-x86/sncProgram
mkdir ../../../bin
mkdir ../../../bin/linux-x86
Installing binary ../../../bin/linux-x86/example
make[3]: Leaving directory
`/home/epics/devel/example/exampleApp/src/O.linux-x86'
make -C Db install
make[2]: Entering directory `/home/epics/devel/example/exampleApp/Db'
perl /usr/local/epics/base/configure/tools/makeMakefile.pl O.linux-x86
../../..
perl /usr/local/epics/base/configure/tools/makeMakefile.pl
O.vxWorks-68040 ../../..
perl /usr/local/epics/base/configure/tools/makeMakefile.pl
O.vxWorks-ppc604 ../../..
perl /usr/local/epics/base/configure/tools/makeMakefile.pl
O.vxWorks-ppc603 ../../..
mkdir O.Common
make -C O.linux-x86 -f ../Makefile TOP=../../.. T_A=linux-x86 install
make[3]: Entering directory
`/home/epics/devel/example/exampleApp/Db/O.linux-x86'
Installing db file ../../../db/dbExample1.db
mkdir ../../../db
Installing db file ../../../db/dbExample2.db
Installing db file ../../../db/dbSubExample.db
make[3]: Leaving directory
`/home/epics/devel/example/exampleApp/Db/O.linux-x86'
make -C O.vxWorks-68040 -f ../Makefile TOP=../../.. T_A=vxWorks-68040
install
make[3]: Entering directory
`/home/epics/devel/example/exampleApp/Db/O.vxWorks-68040'
make[3]: Nothing to be done for `install'.
make[3]: Leaving directory
`/home/epics/devel/example/exampleApp/Db/O.vxWorks-68040'
make -C O.vxWorks-ppc604 -f ../Makefile TOP=../../.. T_A=vxWorks-ppc604
install
make[3]: Entering directory
`/home/epics/devel/example/exampleApp/Db/O.vxWorks-ppc604'
make[3]: Nothing to be done for `install'.
make[3]: Leaving directory
`/home/epics/devel/example/exampleApp/Db/O.vxWorks-ppc604'
make -C O.vxWorks-ppc603 -f ../Makefile TOP=../../.. T_A=vxWorks-ppc603
install
make[3]: Entering directory
`/home/epics/devel/example/exampleApp/Db/O.vxWorks-ppc603'
make[3]: Nothing to be done for `install'.
make[3]: Leaving directory
`/home/epics/devel/example/exampleApp/Db/O.vxWorks-ppc603'
make[2]: Leaving directory `/home/epics/devel/example/exampleApp/Db'
make[1]: Leaving directory `/home/epics/devel/example/exampleApp'
make -C iocBoot install
make[1]: Entering directory `/home/epics/devel/example/iocBoot'
make -C iocexample install
make[2]: Entering directory
`/home/epics/devel/example/iocBoot/iocexample'
perl /usr/local/epics/base/configure/tools/convertRelease.pl -a
linux-x86 envPaths
make[2]: Leaving directory
`/home/epics/devel/example/iocBoot/iocexample'
make[1]: Leaving directory `/home/epics/devel/example/iocBoot'


corvette> cd iocBoot/iocexample/
/home/epics/devel/example/iocBoot/iocexample

corvette> vi st.cmd
#!../../bin/linux-x86/example

## You may have to change example to something else
## everywhere it appears in this file

#< envPaths

## Register all support components
dbLoadDatabase("../../dbd/example.dbd",0,0)
example_registerRecordDeviceDriver(pdbbase)

## Load record instances
dbLoadRecords("../../db/dbExample1.db","user=epics")

iocInit()

## Start any sequence programs
seq sncExample,"user=epics"
~
"st.cmd" 18L, 409C written


corvette> ../../bin/linux-x86/example st.cmd
#!../../bin/linux-x86/example
## You may have to change example to something else
## everywhere it appears in this file
#< envPaths
## Register all support components
dbLoadDatabase("../../dbd/example.dbd",0,0)
example_registerRecordDeviceDriver(pdbbase) 
## Load record instances
dbLoadRecords("../../db/dbExample1.db","user=epics")
iocInit()
Starting iocInit
########################################################################
####
###  EPICS IOC CORE built on Apr 21 2006
###  EPICS R3.14.8.2 $R3-14-8-2$ $2006/01/06 15:55:13$
########################################################################
####
iocInit: All initialization complete
## Start any sequence programs
seq sncExample,"user=epics"
SEQ Version 2.0.11: Thu Apr 20 14:52:16 2006
Spawning state program "sncExample", thread 0x80c9620: "sncExample"
epics> seqShow
Program Name     Thread ID  Thread Name      SS Name

sncExample       0x80c9620  sncExample       ss1             


Mark Rivers



> -----Original Message-----
> From: Dennis Nicklaus [mailto:nicklaus@fnal.gov] 
> Sent: Friday, July 28, 2006 1:54 PM
> To: tech-talk@aps.anl.gov
> Subject: sequencer under linux questions
> 
> I've tried to build a SNL/sequencer application under linux 
> in both ways 
> suggested in the
> directions in the Makefile, and I seem to be one bit of 
> directions short 
> in either way.
> If I build it as a component of my application, then how do I run it?
> 
> For this, I uncomment these lines in the Makefile
> ESG_SRCS += sncExample.stt
> ESG_LIBS += seq pv
> (my application is ESG)
> and get things to build, but then after I run st.cmd and am at the 
> "epics>" prompt of iocsh,
> what command do I give to run the sequence?
> None of  seq, sncExample, seqShow,... work. They just give me 
> a "Command 
> Not Found" message.
> 
> "nm" verifies that the sncExample  symbol is there, along with some 
> related othes
> 0804c020 d seqChan
>        U seq_delay
>        U seq_delayInit
>        U seqRegisterSequencerCommands
>        U seqRegisterSequencerProgram
> 0804c0a0 d seqSS
> 0804c0c0 D sncExample
> 0804af54 T sncExampleRegistrar
> 0804a73c T _start
> 0804c060 d state_ss1
> 
> 
> If I alter the Makefile and make it standalone, I get a 
> complaint that 
> there is no "main()"
> routine, as shown below.  Where do I pick up a main() from?
> 
> 
> $ make
> make -C O.linux-x86 -f ../Makefile TOP=../../.. T_A=linux-x86 install
> make[1]: Entering directory 
> `/mnt/disk1/p/epics/support/agilentsg/ESGApp/src/O.linux-x86'
> /usr/bin/g++ -o sncExample  -L/p/epics/support/seq/lib/linux-x86/ 
> -L/p/epics/v3_14_8_f2/lib/linux-x86/         
> -Wl,-rpath,/mnt/disk1/p/epics/support/agilentsg/lib/linux-x86 
> -Wl,-rpath,/p/epics/support/seq/lib/linux-x86 
> -Wl,-rpath,/p/epics/support/asyn/4-6/lib/linux-x86 
> -Wl,-rpath,/p/epics/v3_14_8_f2/lib/linux-x86        sncExample.o    
> -lseq -lpv -lcas -lgdd -liocsh -lasHost -ldbStaticHost -lregistryIoc 
> -lca -lCom
> /usr/lib/gcc-lib/i386-redhat-linux/3.2.3/../../../crt1.o(.text
> +0x18): In 
> function `_start':
> : undefined reference to `main'
> collect2: ld returned 1 exit status
> make[1]: *** [sncExample] Error 1
> 
> 
> Thanks,
> Dennis
> 
> 
> 


Navigate by Date:
Prev: Re: Moxa N-Port, ASYN and IOC Exit John William Sinclair
Next: Re: Could not connect to EPICS home most of the time Aravamuthan Govindan
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  <20062007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017 
Navigate by Thread:
Prev: sequencer under linux questions Dennis Nicklaus
Next: incorrect time stamp for one record in an IOC Geoff Savage
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  <20062007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017 
ANJ, 02 Sep 2010 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·