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: "Ernest L. Williams Jr." <[email protected]>
To: Andrew Johnson <[email protected]>
Cc: "[email protected]" <[email protected]>
Date: Thu, 02 Sep 2010 19:21:10 -0700
Andrew Johnson wrote:
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).
By the way, this happens under vxWorks 6.6 as well.



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:
Ah, okay.  :)


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
I will try this as a temporary work-around.



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.
I just checked the build for  "vxWorks-ppc603"  and that is successful.  :)

Seems that everytime there is a new release of EPICS, the vxWorks-ppc604 is getting hit?

Cheers,
Ernest






- Andrew



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
Re: Latest R3.14 branch: build problem with vxWorks 6.8 Andrew Johnson

Navigate by Date:
Prev: Re: Latest R3.14 branch: build problem with vxWorks 6.8 Andrew Johnson
Next: EPICS Bug Tracker / Releases Ralph Lange
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 Andrew Johnson
Next: EPICS Bug Tracker / Releases Ralph Lange
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 ·