EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

2002  2003  2004  2005  2006  2007  2008  2009  <20102011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024  Index 2002  2003  2004  2005  2006  2007  2008  2009  <20102011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Re: Latest R3.14 branch: build problem with vxWorks 6.8
From: Andrew Johnson <[email protected]>
To: [email protected]
Date: Thu, 2 Sep 2010 17:28:06 -0500
On Wednesday 01 September 2010 19:26:04 Jeff Hill wrote:
>
> I checked with Eric and we don?t have vxWorks 6.8 installed here
> but Eric mentioned that he was fairly certain that they might
> have it installed at the APS, and if so perhaps I could
> log in up there and have a look at the issue.
>
> I wonder if the APS has seen this issue since they maybe have
> vxWorks 6.8 there? Does the problem occur when the vxWorks
> 6.8 gnu compiler isn't patched?

We have vxWorks 6.8 installed here, with a slightly different vxWorks 
cumulative patch (cum.vxw6-4.1.2-ppc.2010jun15.zip), but Jeff's account does 
not have access to the installation unfortunately (group permissions issue, 
for WRS licensing reasons).

Ron Sluiter pointed out this problem to me a few weeks ago.

uranus% make casStreamOS.o
make -f ../Makefile TOP=../../../.. T_A=vxWorks-ppc604_long  casStreamOS.o
make[1]: Entering directory `/home/phoebus3/ANJ/epics/base/3-14-
dev/src/cas/build/O.vxWorks-ppc604_long'

/usr/local/vw/vxWorks-6.8/gnu/4.1.2-vxworks-6.8/x86-linux2/bin/ccppc -c            
-DCPU=PPC604  -DvxWorks -include 
/usr/local/vw/vxWorks-6.8/vxworks-6.8/target/h/vxWorks.h    -O2   -Wall     -
mcpu=604 -mstrict-align -fno-implicit-fp -mlongcall    -fno-builtin  -MMD -I. 
-I../O.Common -I. -I.. -I../../../../src/cas/generic -
I../../../../src/cas/io/bsdSocket -I../../../../src/cas/generic/st -
I../../../../src/cas/../ca -I../../../../include/os/vxWorks -
I../../../../include       -I/usr/local/vw/vxWorks-6.8/vxworks-6.8/target/h -
I/usr/local/vw/vxWorks-6.8/vxworks-6.8/target/h/wrn/coreip 
../../../../src/cas/generic/st/casStreamOS.cc
../../../../src/cas/generic/st/casStreamOS.cc: In member function 'virtual 
epicsTimerNotify::expireStatus casStreamIOWakeup::expire(const epicsTime&)':
../../../../src/cas/generic/st/casStreamOS.cc:283: error: unable to find a 
register to spill in class 'FLOAT_REGS'
../../../../src/cas/generic/st/casStreamOS.cc:283: error: this is the insn:
(insn:HI 489 488 603 42 (set (reg:DF 120 [ SR$1349 ])
        (mem/s/c:DF (plus:SI (reg/f:SI 113 sfp)
                (const_int 16 [0x10])) [66 D.21287.delay+0 S8 A128])) 301 
{*movdf_hardfloat32} (insn_list:REG_DEP_ANTI 488 (nil))
    (nil))
../../../../src/cas/generic/st/casStreamOS.cc:283: confused by earlier errors, 
bailing out
make[1]: *** [casStreamOS.o] Error 1
make[1]: Leaving directory `/home/phoebus3/ANJ/epics/base/3-14-
dev/src/cas/build/O.vxWorks-ppc604_long'
make: *** [casStreamOS.o] Error 2


However it's obviously an optimizer issue, it will build quite happily when 
optimization is turned off:

uranus% make CROSS_OPT=NO casStreamOS.o
make -f ../Makefile TOP=../../../.. T_A=vxWorks-ppc604_long  casStreamOS.o
make[1]: Entering directory `/home/phoebus3/ANJ/epics/base/3-14-
dev/src/cas/build/O.vxWorks-ppc604_long'

/usr/local/vw/vxWorks-6.8/gnu/4.1.2-vxworks-6.8/x86-linux2/bin/ccppc -c            
-DCPU=PPC604  -DvxWorks -include 
/usr/local/vw/vxWorks-6.8/vxworks-6.8/target/h/vxWorks.h    -g   -Wall     -
mcpu=604 -mstrict-align -fno-implicit-fp -mlongcall    -fno-builtin  -MMD -I. 
-I../O.Common -I. -I.. -I../../../../src/cas/generic -
I../../../../src/cas/io/bsdSocket -I../../../../src/cas/generic/st -
I../../../../src/cas/../ca -I../../../../include/os/vxWorks -
I../../../../include       -I/usr/local/vw/vxWorks-6.8/vxworks-6.8/target/h -
I/usr/local/vw/vxWorks-6.8/vxworks-6.8/target/h/wrn/coreip 
../../../../src/cas/generic/st/casStreamOS.cc
make[1]: Leaving directory `/home/phoebus3/ANJ/epics/base/3-14-
dev/src/cas/build/O.vxWorks-ppc604_long'


Therefore a temporary workaround is to add the following lines to 
src/cas/build/Makefile:

casStreamOS_CXXFLAGS_vxWorks-ppc604_long += -O0
casStreamOS_CXXFLAGS_vxWorks-ppc604 += -O0

This turns off optimization for that specific combination of file and CPU 
architecture, but I'm not proposing this as a final solution.  It is not 
needed for the ppc604 on vxWorks 5.5.2, or for the mpc8540 on vxWorks 6.8 
(which is really a different CPU architecture anyway).  It might also be 
needed for the ppc603, I haven't checked.

- Andrew
-- 
The best FOSS code is written to be read by other humans -- Harald Welte



Replies:
Re: Latest R3.14 branch: build problem with vxWorks 6.8 Ernest L. Williams Jr.
References:
Latest R3.14 branch: build problem with vxWorks 6.8 Ernest L. Williams Jr.
Re: Latest R3.14 branch: build problem with vxWorks 6.8 Ernest L. Williams Jr.
RE: Latest R3.14 branch: build problem with vxWorks 6.8 Jeff Hill

Navigate by Date:
Prev: Re: Latest R3.14 branch: build problem with vxWorks 6.8 Ernest L. Williams Jr.
Next: Re: Latest R3.14 branch: build problem with vxWorks 6.8 Ernest L. Williams Jr.
Index: 2002  2003  2004  2005  2006  2007  2008  2009  <20102011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Re: Latest R3.14 branch: build problem with vxWorks 6.8 Ernest L. Williams Jr.
Next: Re: Latest R3.14 branch: build problem with vxWorks 6.8 Ernest L. Williams Jr.
Index: 2002  2003  2004  2005  2006  2007  2008  2009  <20102011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 02 Feb 2012 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·