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

Subject: Re: Announce: sequencer 2.1.0 release candidate
From: Andrew Johnson <[email protected]>
To: Benjamin Franksen <[email protected]>
Cc: [email protected]
Date: Fri, 1 Jul 2011 12:02:41 -0500
Hi Ben,

On 2011-07-01 Benjamin Franksen wrote:
> 
> I am happy to announce the first release candidate of version 2.1.0 of the
> EPICS sequencer. You can download from here:

Testing against Base R3.14.12.1:

Building on solaris-sparc stops here:

/opt/SUNWspro/bin/CC -c  -D_POSIX_C_SOURCE=199506L  -D_XOPEN_SOURCE=500          
-DPVCA   -DUNIX  -DSOLARIS=10 -mt  -D__EXTENSIONS__   -O   +w           -
xcode=pic32  -I. -I../O.Common -I. -I.. -I../../../include/os/solaris -
I../../../include -I/usr/local/iocapps/R3.14.12.1/base/3-14-12-1-
asd1/include/os/solaris -I/usr/local/iocapps/R3.14.12.1/base/3-14-12-1-
asd1/include       ../pvCa.cc 
"../pvCa.cc", line 204: Error: The function "alloca" must have a prototype.
"../pvCa.cc", line 204: Error: Cannot use int to initialize char*.
"../pvCa.cc", line 272: Error: The function "alloca" must have a prototype.
"../pvCa.cc", line 272: Error: Cannot use int to initialize char*.
"../pvCa.cc", line 298: Error: The function "alloca" must have a prototype.
"../pvCa.cc", line 298: Error: Cannot use int to initialize char*.
"../pvCa.cc", line 477: Error: The function "alloca" must have a prototype.
"../pvCa.cc", line 477: Error: Cannot use int to initialize char*.

I can fix this with:

#if (__STDC_VERSION__ < 199901L) && !defined(__GNUC__)
#  include <alloca.h>
#endif

The conditional is necessary to avoid warnings from vxWorks, which doesn't 
have an alloca.h header (and I wonder if this might need a WIN32 equivalent as 
well, see below).

When it gets to compiling in src/snc I get lots of these warnings:

"../types.h", line 44: warning: typedef redeclared: uint

one of these:

"../analysis.c", line 1340: warning: integer overflow detected: op "<<"

and this:

"../gen_tables.c", line 185: warning: implicit function declaration: alloca

which results in this failure:

/opt/SUNWspro/bin/CC -o snc  -L/usr/local/iocapps/R3.14.12.1/base/3-14-12-1-
asd1/lib/solaris-sparc -R/usr/local/iocapps/R3.14.12.1/base/3-14-12-1-
asd1/lib/solaris-sparc         -L/usr/local/lib -mt  -z ignore -z combreloc -z 
lazyload  -R/usr/local/lib          lexer.o snl.o main.o expr.o var_types.o 
analysis.o gen_code.o gen_ss_code.o gen_tables.o sym_table.o    -lrecIoc -
lsoftDevIoc -lmiscIoc -lrsrvIoc -ldbtoolsIoc -lasIoc -ldbIoc -lregistryIoc -
ldbStaticIoc -lca -lCom -lCom   
Undefined			first referenced
 symbol  			    in file
alloca                              gen_tables.o
ld: fatal: Symbol referencing errors. No output written to snc

I can fix that with this 2-line #elif addition:

#ifdef _WIN32
#  include <malloc.h>
#elif (__STDC_VERSION__ < 199901L) && !defined(__GNUC__)
#  include <alloca.h>
#endif


I then get this failure when it gets to building in src/dev:

/opt/SUNWspro/bin/cc -c  -D_POSIX_C_SOURCE=199506L  -D_XOPEN_SOURCE=500            
-DUNIX  -DSOLARIS=10 -mt  -D__EXTENSIONS__   -xO4        -I../../seq       -
xcode=pic32  -I. -I../O.Common -I. -I.. -I../../../include/os/solaris -
I../../../include -I/usr/local/iocapps/R3.14.12.1/base/3-14-12-1-
asd1/include/os/solaris -I/usr/local/iocapps/R3.14.12.1/base/3-14-12-1-
asd1/include       ../devSequencer.c 
"../devSequencer.c", line 182: warning: implicit function declaration: alloca
/opt/SUNWspro/bin/CC -xar -o   libseqDev.a         devSequencer.o
/opt/SUNWspro/bin/CC -o libseqDev.so -z defs -G -h libseqDev.so -z text -
L/home/phoebus3/ANJ/epics/modules/soft/seq-2.1.0-rc1/lib/solaris-sparc -
L/usr/local/iocapps/R3.14.12.1/base/3-14-12-1-asd1/lib/solaris-sparc -
R/home/phoebus3/ANJ/epics/modules/soft/seq-2.1.0-rc1/lib/solaris-sparc -
R/usr/local/iocapps/R3.14.12.1/base/3-14-12-1-asd1/lib/solaris-sparc         -
L/usr/local/lib -mt  -z ignore -z combreloc -z lazyload  -R/usr/local/lib           
devSequencer.o   -lseq -lpv -lrecIoc -lsoftDevIoc -lmiscIoc -lrsrvIoc -
ldbtoolsIoc -lasIoc -ldbIoc -lregistryIoc -ldbStaticIoc -lca -lCom   -lposix4 
-lpthread    -lreadline -lcurses -lm -lCstd -lsocket -lnsl -lumem -lCrun -lc 
Undefined                       first referenced
 symbol                             in file
alloca                              devSequencer.o
ld: fatal: Symbol referencing errors. No output written to libseqDev.so
make[3]: *** [libseqDev.so] Error 1

but I can fix that just like in gen_tables.c

I also get these warnings from compiling bittypes.c:

/opt/SUNWspro/bin/cc -c  -D_POSIX_C_SOURCE=199506L  -D_XOPEN_SOURCE=500            
-DUNIX  -DSOLARIS=10 -mt  -D__EXTENSIONS__   -xO4                -I. -
I../O.Common -I. -I.. -I../../../include/os/solaris -I../../../include -
I/usr/local/iocapps/R3.14.12.1/base/3-14-12-1-asd1/include/os/solaris -
I/usr/local/iocapps/R3.14.12.1/base/3-14-12-1-asd1/include       bittypes.c 
"../bittypes.st", line 36: warning: initializer does not fit or is out of 
range: -1
"../bittypes.st", line 38: warning: initializer does not fit or is out of 
range: -1
"../bittypes.st", line 40: warning: initializer will be sign-extended: -1

After fixing all the build errors I ran the tests, which the first time 
resulted in an assert failure in cbLow:

norace.................ok 30/30                                              
A call to 'assert(pca)'
    by thread 'cbLow' failed in ../dbCa.c line 336.
EPICS Release EPICS R3.14.12.1-asd1 2011/04/26 21:43:15.
Local time is 2011-07-01 11:21:28.624182050 CDT
Please E-mail this message to the author or to [email protected]
Calling epicsThreadSuspendSelf()
Thread cbLow (466b8) suspended

Two subsequent re-runs both passed all tests without failing, although it is 
skipping 10 tests in pvGetIoc:

ok  2 - immediate completion:      expected=1==1=anon
ok  3 # SKIP no immediate completion
ok  4 - synchronous get:           expected=1==1=named

ok 14 - immediate completion:      expected=6==6=anon
ok 15 # SKIP no immediate completion
ok 16 - synchronous get:           expected=6==6=named

ok 26 - immediate completion:      expected=10==10=anon
ok 27 # SKIP no immediate completion
ok 28 - synchronous get:           expected=10==10=named

ok 38 - immediate completion:      expected=14==14=anon
ok 39 # SKIP no immediate completion
ok 40 - synchronous get:           expected=14==14=named

ok 50 - immediate completion:      expected=19==19=anon
ok 51 # SKIP no immediate completion
ok 52 - synchronous get:           expected=19==19=named

ok 62 - immediate completion:      expected=23==23=anon
ok 63 # SKIP no immediate completion
ok 64 - synchronous get:           expected=23==23=named

ok 74 - immediate completion:      expected=27==27=anon
ok 75 # SKIP no immediate completion
ok 76 - synchronous get:           expected=27==27=named

ok 86 - immediate completion:      expected=31==31=anon
ok 87 # SKIP no immediate completion
ok 88 - synchronous get:           expected=32==32=named

ok 97 - synchronous get:           expected=36==36=anon
ok 98 # SKIP no immediate completion
ok 99 - immediate completion:      expected=36==36=anon

ok 109 - synchronous get:           expected=40==40=anon
ok 110 # SKIP no immediate completion
ok 111 - immediate completion:      expected=40==40=anon


On solaris-x86 with the above changes I get the same results as solaris-sparc, 
plus one additional warning (which you can ignore):

/opt/SUNWspro/bin/cc -c  -D_POSIX_C_SOURCE=199506L  -D_XOPEN_SOURCE=500          
-D_X86_  -DUNIX  -DSOLARIS=10 -mt  -D__EXTENSIONS__   -xO4                -I. 
-I../O.Common -I. -I.. -I../../../include/os/solaris -I../../../include -
I/usr/local/iocapps/R3.14.12.1/base/3-14-12-1-asd1/include/os/solaris -
I/usr/local/iocapps/R3.14.12.1/base/3-14-12-1-asd1/include       lexer.c 
"./snl.h", line 73: warning: macro redefined: SS


On linux-x86_64 (RHEL 6) I get one build warning from snc (which I also saw on 
solaris BTW), but all of the runtests pass:

../syncq.st:16: warning: leaving out the queue size is deprecated, queue size 
defaults to 100 elements

On linux-x86 (which also cross-builds for rtems-mvme3100) I got the same 
warning for ../syncq.st, but no other issues and all the runtests passed.

The darwin-x86 system I use doesn't have re2c installed, I'll ask if it can be 
and try it when I can.

Thanks,

- Andrew
-- 
Optimization is the process of taking something that works and
replacing it with something that almost works, but costs less.
-- Roger Needham

References:
Announce: sequencer 2.1.0 release candidate Benjamin Franksen

Navigate by Date:
Prev: Re: Announce: sequencer 2.1.0 release candidate Benjamin Franksen
Next: RE: SNL seq-2.0.13 on Linux 64 bits: not all monitored PVs receive their first monitor event Allison, Stephanie
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  <20112012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Re: Announce: sequencer 2.1.0 release candidate Benjamin Franksen
Next: Announce: sequencer 2.1.0 release candidate 2 Benjamin Franksen
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  <20112012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 18 Nov 2013 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·