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  2011  2012  2013  <20142015  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  2011  2012  2013  <20142015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Re: -D__STDC_VERSION__=199901L
From: matthieu bec <[email protected]>
To: "Pearson, Matthew R." <[email protected]>, "[email protected] list" <[email protected]>
Date: Fri, 05 Sep 2014 16:56:21 -0700

Hi Matthew,

typically you would pass this using the -std option

% gcc -dM -E - < /dev/null | grep STDC_VERSION

% gcc --std=c99 -dM -E - < /dev/null| grep STDC_VERSION
#define __STDC_VERSION__ 199901L

Regards,
Matthieu



On 09/05/2014 04:40 PM, Pearson, Matthew R. wrote:

Hi,

I noticed that epicsUInt64 is not defined on my 64-bit system. In epicsTypes.h I see:

#if __STDC_VERSION__ >= 199901L
     typedef int8_t          epicsInt8;
     typedef uint8_t         epicsUInt8;
     typedef int16_t         epicsInt16;
     typedef uint16_t        epicsUInt16;
     typedef epicsUInt16     epicsEnum16;
     typedef int32_t         epicsInt32;
     typedef uint32_t        epicsUInt32;
     typedef int64_t         epicsInt64;
     typedef uint64_t        epicsUInt64;
#else
     typedef char            epicsInt8;
     typedef unsigned char   epicsUInt8;
     typedef short           epicsInt16;
     typedef unsigned short  epicsUInt16;
     typedef epicsUInt16     epicsEnum16;
     typedef int             epicsInt32;
     typedef unsigned int    epicsUInt32;
#endif

So I tried setting -D__STDC_VERSION__=199901L in:
configure/os/CONFIG.Common.linuxCommon

But I suspect that's the wrong way to do it, because base failed to compile:

/usr/bin/g++ -c  -D_POSIX_C_SOURCE=199506L -D_POSIX_THREADS -D_XOPEN_SOURCE=500 -D__STDC_VERSION__=199901L           -D_X86_64_  -DUNIX  -D_BSD_SOURCE -Dlinux  -D_REENTRANT   -g   -Wall      -m64     -fPIC -MMD -I. -I../O.Common -I. -I.. -I../../../include/os/Linux -I../../../include        ../cac.cpp
In file included from ../comBuf.h:34,
                  from ../cac.h:44,
                  from ../cac.cpp:39:
../../../include/osiWireFormat.h: In function ‘void WireSet(const T&, epicsUInt8*) [with T = char]’:
../comBuf.h:237:   instantiated from ‘unsigned int comBuf::push(const T*, unsigned int) [with T = char]’
../comQueSend.h:123:   instantiated from ‘void comQueSend::push(const T*, unsigned int) [with T = char]’
../comQueSend.h:206:   instantiated from here
../../../include/osiWireFormat.h:208: error: ‘tmp’ has incomplete type


But I'm sure many people are using C99. Any ideas?

Cheers,
Matt


ps.

[mkp@bl99-dassrv1 base]$ rpm -q libstdc++
libstdc++-4.4.7-3.el6.x86_64
[mkp@bl99-dassrv1 base]$ g++ -v
Using built-in specs.
Target: x86_64-redhat-linux
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-languages=c,c++,objc,obj-c++,java,fortran,ada --enable-java-awt=gtk --disable-dssi --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/jre --enable-libgcj-multifile --enable-java-maintainer-mode --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --disable-libjava-multilib --with-ppl --with-cloog --with-tune=generic --with-arch_32=i686 --build=x86_64-redhat-linux
Thread model: posix
gcc version 4.4.7 20120313 (Red Hat 4.4.7-3) (GCC)




Data Acquisition and Control Engineer
Spallation Neutron Source
Oak Ridge National Lab







--
Matthieu Bec                GMTO Corp
cell : +1 626 354 9367      251 S Lake Ave, Suite 300
phone: +1 626 204 0527      Pasadena, CA 91101

References:
-D__STDC_VERSION__=199901L Pearson, Matthew R.

Navigate by Date:
Prev: -D__STDC_VERSION__=199901L Pearson, Matthew R.
Next: Re: -D__STDC_VERSION__=199901L Johnson, Andrew N.
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  <20142015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: -D__STDC_VERSION__=199901L Pearson, Matthew R.
Next: Re: -D__STDC_VERSION__=199901L Johnson, Andrew N.
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  <20142015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 17 Dec 2015 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·