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: ioc segfault if - c seq flag is not set or +c?
From: Benjamin Franksen <[email protected]>
To: <[email protected]>
Date: Fri, 15 Apr 2011 01:04:21 +0200
Am Donnerstag, 14. April 2011, um 17:34:34 schrieb J. Lewis Muir:
> On 4/14/11 10:01 AM, Allison, Stephanie wrote:
> > I discovered that even building RTEMS 32 bit sequences (using
> > the RTEMS 32bit tool chain) on a linux-x86_64 build is
> > problematic as the 64bit-built SNC compiler will, in some
> > special cases, convert the .st file to a buggy .c file (in the
> > initialization of the state event masks).
>
> I had a similar problem compiling on RHEL 5 (linux-x86_64) for
> VxWorks (vxWorks-ppc603, vxWorks-ppc604, and
> vxWorks-ppc604_long) using EPICS 3.14.11 (+ Known Problems
> patches), SEQ 2.0.12 (as packaged in SynApps 5.5), and the
> Tornado 2.0.2 toolchain.  I haven't had time to investigate, but
> indeed the SNC compiler was generating .c files that the
> cross-compiler could not compile.  I think the SNC compiler was
> generating integer values greater than what could fit in 32 bits
> which the cross-compiler choked on.

Hello Lewis, Stephanie

I have a preliminary version of seq-2.0.13 that should solve the problems with
64 *target* architectures (including running the SNL program on the same
platform as the host).

However, what you both describe is another matter, namely a 64 bit host system
that generates code unsuitable for a 32 bit target system. This is difficult to
test for me because all our development machines at work are 32 bit, and on my
64 bit machine at home I don't have any cross compilers installed (nor any VME
boards etc). This means I need more detailed bug reports to fix such problems.

Anyway, the bitMask problem is easy to understand and fix even w/o a test
system (now that I know that there is a problem!) by changing

  typedef unsigned long bitMask;

(in seqCom.h) to

  typedef epicsUInt32 bitMask;

This is enough since the compiler prints it with

  printf("\t0x%08lx,\n", (unsigned long)pEventMask[n]);

(assuming that an unsigned long has at least 32 bits on all supported host
platforms, which I believe is the case).

I will include this fix in 2.0.13 which I plan to make available for testing in
the next days.

Cheers
Ben

________________________________

Helmholtz-Zentrum Berlin für Materialien und Energie GmbH

Mitglied der Hermann von Helmholtz-Gemeinschaft Deutscher Forschungszentren e.V.

Aufsichtsrat: Vorsitzender Prof. Dr. Dr. h.c. mult. Joachim Treusch, stv. Vorsitzende Dr. Beatrix Vierkorn-Rudolph
Geschäftsführer: Prof. Dr. Anke Rita Kaysser-Pyzalla, Prof. Dr. Dr. h.c. Wolfgang Eberhardt, Dr. Ulrich Breuer

Sitz Berlin, AG Charlottenburg, 89 HRB 5583

Postadresse:
Hahn-Meitner-Platz 1
D-14109 Berlin

http://www.helmholtz-berlin.de


References:
ioc segfault if - c seq flag is not set or +c? Abadie Lana
RE: ioc segfault if - c seq flag is not set or +c? Allison, Stephanie
Re: ioc segfault if - c seq flag is not set or +c? J. Lewis Muir

Navigate by Date:
Prev: RE: how to write string to waveform record using a scalcout record? Steiner, Mathias
Next: Increase event number limit Euan.Troup
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: ioc segfault if - c seq flag is not set or +c? J. Lewis Muir
Next: Re: ioc segfault if - c seq flag is not set or +c? 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 ·