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: synApps_5_7 build error on Windows 8.1 x64
From: Mark Rivers <[email protected]>
To: Benjamin Franksen <[email protected]>
Cc: Alireza Panna <[email protected]>, "[email protected]" <[email protected]>
Date: Mon, 1 Sep 2014 14:01:29 +0000
>The offending line says:
>
>        ss->timeEntered = INFINITY;
>
> I thought this is standard C? 

This is what GNU says at:
http://www.gnu.org/software/libc/manual/html_node/Infinity-and-NaN.html

***********************************************************************************
— Macro: float INFINITY
An expression representing positive infinity. It is equal to the value produced by mathematical operations like 1.0 / 0.0. -INFINITY represents negative infinity.

You can test whether a floating-point value is infinite by comparing it to this macro. However, this is not recommended; you should use the isfinite macro instead. See Floating Point Classes.

This macro was introduced in the ISO C99 standard.
***********************************************************************************

The Windows VC compiler is not C99, at least not before Visual Studio 2013.

Mark

________________________________________
From: Benjamin Franksen [[email protected]]
Sent: Monday, September 01, 2014 2:57 AM
To: Mark Rivers
Cc: [email protected]; Alireza Panna
Subject: Re: synApps_5_7 build error on Windows 8.1 x64

On Friday 29 August 2014 14:27:55 Mark Rivers wrote:
> I just tried building the following versions of the sequencer on
> windows-x64 (Windows 7, Visual Studio 2010, GNUWin32 make).

> seq-2.1.10
> seq-2.1.13
> seq-2.2.0.1
>
>
> 2.1.10 built with no errors.
>
>
> 2.1.13 did not have the error with lemon.exe that was the subject of
> this thread.  Here is the output when lemon.exe is being used:

> make -C O.windows-x64 -f ../Makefile TOP=../../.. T_A=windows-x64
> install
 make[3]: Entering directory
> `J:/epics/devel/seq-2-1-13/src/snc/O.windows-x64'
> ..\\..\\..\\bin\\windows-x64\\lemon.exe o=. ../snl.lem
> 3 parsing conflicts.
> re2c.exe -s -b -o lexer.c ../snl.re
> make[3]: Leaving directory
> `J:/epics/devel/seq-2-1-13/src/snc/O.windows-x64'
 make[3]: Entering
> directory `J:/epics/devel/seq-2-1-13/src/snc/O.windows-x64'
> However, 2.1.13 did fail much later in the build with the following
> error:

> "converting userfuncEf.i"
> ../../../bin/windows-x64/snc.exe   +m -i  userfuncEf.i -o
> userfuncEf.c.tmp
 perl -MExtUtils::Command -e mv userfuncEf.c.tmp
> userfuncEf.c cl -c             /favor:blend   /nologo /D__STDC__=0
> /D_CRT_SECURE_NO_DEPRECATE /D_CRT_NONSTDC_NO_DEPRECATE   /Ox /GL
> /W3 /w44355       /MT -DEPICS_DLL_NO    -I. -I..\\O.Common -I. -I..
> -I..\\..\\..\\include\\os\\WIN32 -I..\\..\\..\\include
> -IH:\\epics\\base-3.14.12.4\\include\\os\\WIN32
> -IH:\\epics\\base-3.14.12.4\\include       userfuncEf.c userfuncEf.c
> userfuncEf.c(13) : error C2016: C requires that a struct or union has
> at least one member
 ../userfuncEf.st(26) : error C2059: syntax error
> : '}'
> make[3]: *** [userfuncEf.obj] Error 2
> make[3]: Leaving directory
> `J:/epics/devel/seq-2-1-13/test/validate/O.windows-x64'
 make[2]: ***
> [install.windows-x64] Error 2
> make[2]: Leaving directory `J:/epics/devel/seq-2-1-13/test/validate'
> make[1]: *** [validate.install] Error 2
> make[1]: Leaving directory `J:/epics/devel/seq-2-1-13/test'
> make: *** [test.install] Error 2

I believe I fixed this problem in 2.1.14.

> 2.2.0.1 failed very early in the build with the following error:
>
> "Installing generic include file ../../../include/seq_prim_types.h"
> cl -c             /favor:blend   /nologo /D__STDC__=0
> /D_CRT_SECURE_NO_DEPRECATE /D_CRT_NONSTDC_NO_DEPRECATE   /Ox /GL
> /W3 /w44355       /MT -DEPICS_DLL_NO    -I. -I..\\O.Common
 -I. -I..
> -I..\\..\\..\\include\\os\\WIN32 -I..\\..\\..\\include
> -IH:\\epics\\base-3.14.12.4\\include\\os\\WIN32
> -IH:\\epics\\base-3.14.12.4\\include       ..\\seq_main.c seq_main.c
> ..\seq_main.c(282) : error C2124: divide or mod by zero
> make[3]: *** [seq_main.obj] Error 2
> make[3]: Leaving directory
> `J:/epics/devel/seq-2-2-0-1/src/seq/O.windows-x64'
 make[2]: ***
> [install.windows-x64] Error 2
> make[2]: Leaving directory `J:/epics/devel/seq-2-2-0-1/src/seq'
> make[1]: *** [seq.install] Error 2
> make[1]: Leaving directory `J:/epics/devel/seq-2-2-0-1/src'
> make: *** [src.install] Error 2

The offending line says:

        ss->timeEntered = INFINITY;

I thought this is standard C? The error message suggests that the C
compiler implementation (or rather, the standard library that comes with
it) implements INFINITY as something like 1/0. Do we need an extra
compiler switch for this compiler? How is this handled in EPICS base?

Cheers
Ben
--
"Make it so they have to reboot after every typo." ― Scott Adams


________________________________

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ührung: Prof. Dr. Anke Rita Kaysser-Pyzalla, Thomas Frederking

Sitz Berlin, AG Charlottenburg, 89 HRB 5583

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

http://www.helmholtz-berlin.de


Replies:
Re: synApps_5_7 build error on Windows 8.1 x64 Alireza Panna
References:
synApps_5_7 build error on Windows 8.1 x64 Alireza Panna
Re: synApps_5_7 build error on Windows 8.1 x64 Benjamin Franksen
RE: synApps_5_7 build error on Windows 8.1 x64 Mark Rivers
Re: synApps_5_7 build error on Windows 8.1 x64 Benjamin Franksen

Navigate by Date:
Prev: RE: motorApp R6.8 Mclennan PM600 opposite limit datum search mode on linux-arm Mark Rivers
Next: stream device get started? Alireza Panna
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: Re: synApps_5_7 build error on Windows 8.1 x64 Benjamin Franksen
Next: Re: synApps_5_7 build error on Windows 8.1 x64 Alireza Panna
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 ·