EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

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

Subject: Re: EPICS 7 and VxWorks 6.9 for PPC604?
From: "Johnson, Andrew N. via Core-talk" <core-talk at aps.anl.gov>
To: Dirk Zimoch <dirk.zimoch at psi.ch>
Cc: EPICS core-talk <core-talk at aps.anl.gov>, Michael Davidsaver <mdavidsaver at gmail.com>
Date: Wed, 3 Jun 2020 17:51:25 +0000
I suspect that the CPU-specific code in gcc for the ppc604 target is older than for the ppc32 target and can’t cope with newer constructs, we’ve had similar issues before. That’s why I really want to encourage you try the ppc32 targets, I don’t think they will show these errors at all and switching will save you time investigating the problems.

- Andrew

On Jun 3, 2020, at 12:30 PM, Zimoch Dirk (PSI) via Core-talk <core-talk at aps.anl.gov> wrote:

3 files have problems implementing the pure virtual function epicsTimerNotify::expire(): fdmgr.cc line 152, epicsTime.cpp line 62 and epicsTimerTest.cpp line 319. What helps is -O1 or -no-expensive-optimizations.

As I expect problems with any code that implements expire() I have now added 'CXXFLAGS += -fno-expensive-optimizations' to the general options for that architecture, not only for the 3 failing files.

This does not yet solve the problem with typeCast.h.

More tests tomorrow.

-----Ursprüngliche Nachricht-----
Von: Michael Davidsaver <mdavidsaver at gmail.com>
Gesendet: Mittwoch, 3. Juni 2020 18:48
An: Zimoch Dirk (PSI) <dirk.zimoch at psi.ch>; 'core-talk at aps.anl.gov' <core-
talk at aps.anl.gov>
Betreff: Re: AW: EPICS 7 and VxWorks 6.9 for PPC604?

On 6/3/20 8:31 AM, Zimoch Dirk (PSI) wrote:
I will try the selective -fno-inline ...

If vxworks 6.7 had gcc 4.1 then the threshold for using
__attribute__((always_inline)) is now being crossed.

https://github.com/epics-
base/pvDataCPP/blob/0fa927afa7d92f490f92eb4906e27046080309e2/src/misc
/pv/templateMeta.h#L15-L16

-----Ursprüngliche Nachricht-----
Von: Zimoch Dirk (PSI)
Gesendet: Mittwoch, 3. Juni 2020 17:30
An: 'Michael Davidsaver' <mdavidsaver at gmail.com>; 'core-
talk at aps.anl.gov'
<core-talk at aps.anl.gov>
Betreff: AW: EPICS 7 and VxWorks 6.9 for PPC604?

It's gcc 4.3.3.

Using -O0 (as used to fix bug 1702298) in helps for fdmgr.cpp but not for
typeCast.h.

-----Ursprüngliche Nachricht-----
Von: Michael Davidsaver <mdavidsaver at gmail.com>
Gesendet: Mittwoch, 3. Juni 2020 17:13
An: Zimoch Dirk (PSI) <dirk.zimoch at psi.ch>; 'core-talk at aps.anl.gov' <core-
talk at aps.anl.gov>
Betreff: Re: EPICS 7 and VxWorks 6.9 for PPC604?

For those of us who aren't so familiar with vxworks, which GCC version(s)
are
involved.

You may remember https://bugs.launchpad.net/epics-base/+bug/1702298


On 6/3/20 8:04 AM, Zimoch Dirk (PSI) via Core-talk wrote:
Has anyone already compiled EPICS 7 for VxWorks 6.9 for PPC604?
I have problems:

With -O2 it fails here:

../fdmgr/fdmgr.cpp: In member function 'virtual
epicsTimerNotify::expireStatus timerForOldFdmgr::expire(const
epicsTime&)':
../fdmgr/fdmgr.cpp:152: error: unable to find a register to spill in class
'FLOAT_REGS'
../fdmgr/fdmgr.cpp:152: error: this is the insn:
(insn:HI 16 15 17 2 ../fdmgr/fdmgr.cpp:151 (set (reg:DF 126 [
D.11913.delay
])
       (mem/s/j/c:DF (plus:SI (reg/f:SI 113 sfp)
               (const_int 8 [0x8])) [0 D.11913.delay+0 S8 A64])) 336
{*movdf_hardfloat32} (expr_list:REG_EQUIV (mem/s/j/c:DF (plus:SI (reg/f:SI
113
sfp)
               (const_int 8 [0x8])) [0 D.11913.delay+0 S8 A64])
       (nil)))
../fdmgr/fdmgr.cpp:152: confused by earlier errors, bailing out

With -O1 (or lower) it comliles the above but then fails here:

../../src/misc/pv/typeCast.h: In function
'void<unnamed>::castVTyped(size_t,
void*, const void*) [with TO = std::basic_string<char, std::char_traits<char>,
std::allocator<char> >, FROM = float]':
../../src/misc/pv/typeCast.h:195: sorry, unimplemented: inlining failed in
call
to 'TO epics::pvData::castUnsafe(const FROM&) [with TO =
std::basic_string<char, std::char_traits<char>, std::allocator<char> >, FROM
=
float]': recursive inlining
../../src/misc/typeCast.cpp:38: sorry, unimplemented: called from here

At least the compiler is "sorry".  I feel much better.

BTW: VxWorks 6.7 has no such problems.

Dirk




-- 
Complexity comes for free, simplicity you have to work for.


Replies:
Re: EPICS 7 and VxWorks 6.9 for PPC604? Zimoch Dirk (PSI) via Core-talk
References:
EPICS 7 and VxWorks 6.9 for PPC604? Zimoch Dirk (PSI) via Core-talk
Re: EPICS 7 and VxWorks 6.9 for PPC604? Michael Davidsaver via Core-talk
AW: EPICS 7 and VxWorks 6.9 for PPC604? Zimoch Dirk (PSI) via Core-talk
AW: EPICS 7 and VxWorks 6.9 for PPC604? Zimoch Dirk (PSI) via Core-talk
Re: AW: EPICS 7 and VxWorks 6.9 for PPC604? Michael Davidsaver via Core-talk
AW: AW: EPICS 7 and VxWorks 6.9 for PPC604? Zimoch Dirk (PSI) via Core-talk

Navigate by Date:
Prev: AW: AW: EPICS 7 and VxWorks 6.9 for PPC604? Zimoch Dirk (PSI) via Core-talk
Next: Re: make runtests fails with "touch: missing file operand" Johnson, Andrew N. via Core-talk
Index: 2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  <20202021  2022  2023  2024 
Navigate by Thread:
Prev: AW: AW: EPICS 7 and VxWorks 6.9 for PPC604? Zimoch Dirk (PSI) via Core-talk
Next: Re: EPICS 7 and VxWorks 6.9 for PPC604? Zimoch Dirk (PSI) via Core-talk
Index: 2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  <20202021  2022  2023  2024 
ANJ, 04 Jun 2020 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·