>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
<2014>
2015
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
<2014>
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
|