Experimental Physics and Industrial Control System
Hi John,
It looks to me like the patch file on the EPICS Web site is not quite up
to date. It dates from Nov. 21, 2008. However, on Dec. 1 the following
change was made, fixing the position of the "volatile" keyword.
corvette:osi/os/WIN32>cvs diff -wb -r1.38.2.8 -r1.38.2.9 osdTime.cpp
Index: osdTime.cpp
===================================================================
RCS file:
/net/phoebus/epicsmgr/cvsroot/epics/base/src/libCom/osi/os/WIN32/osdTime
.cpp,v
retrieving revision 1.38.2.8
retrieving revision 1.38.2.9
diff -u -w -b -r1.38.2.8 -r1.38.2.9
--- osdTime.cpp 21 Nov 2008 23:23:25 -0000 1.38.2.8
+++ osdTime.cpp 1 Dec 2008 17:03:03 -0000 1.38.2.9
@@ -8,7 +8,7 @@
\***********************************************************************
**/
//
-// $Id: osdTime.cpp,v 1.38.2.8 2008/11/21 23:23:25 anj Exp $
+// $Id: osdTime.cpp,v 1.38.2.9 2008/12/01 17:03:03 anj Exp $
//
// Author: Jeff Hill
//
@@ -85,7 +85,7 @@
epicsTimerNotify::expireStatus expire ( const epicsTime & );
};
-static volatile currentTime * pCurrentTime = 0;
+static currentTime * volatile pCurrentTime = 0;
static const LONGLONG FILE_TIME_TICKS_PER_SEC = 10000000;
static const LONGLONG EPICS_TIME_TICKS_PER_SEC = 1000000000;
static const LONGLONG ET_TICKS_PER_FT_TICK =
I am actually using the version of osdTime.cpp from R3-14-11-pre1 (but
with 3-14-10 of other code) and it works. That uses a different fix.
Mark
-----Original Message-----
From: John Dobbins [mailto:[email protected]]
Sent: Monday, August 10, 2009 3:10 PM
To: Mark Rivers
Cc: Andrew Johnson; [email protected]
Subject: RE: Building ASYN on Windows
Mark,
I applied the patch WIN32-osdTime.patch to
base-3.14.10/src/libCom/osi/os/WIN32/osdTime.cpp
but on build I now get the compile error:
cl /nologo /EHsc /GR -c /D_CRT_SECURE_NO_DEPRECATE
/D_CRT_NONSTDC_NO_DEPRECATE /D__STDC__=0 /Ox /GL /W3 /w44355
/MT
-DEPICS_DLL_NO -I. -I..\\O.Common -I.
-I..\\..\\..\\src\\libCom\\osi\\os\\WIN32
-I..\\..\\..\\src\\libCom\\osi\\os\\default -I..
-I..\\..\\..\\src\\libCom\\bucketLib -I..\\..\\..\\src\\libCom\\ring
-I..\\..\\..\\src\\libCom\\calc -I..\\..\\..\\src\\libCom\\cvtFast
-I..\\..\\..\\src\\libCom\\cppStd
-I..\\..\\..\\src\\libCom\\cxxTemplates
-I..\\..\\..\\src\\libCom\\dbmf -I..\\..\\..\\src\\libCom\\ellLib
-I..\\..\\..\\src\\libCom\\env -I..\\..\\..\\src\\libCom\\error
-I..\\..\\..\\src\\libCom\\f
dmgr -I..\\..\\..\\src\\libCom\\freeList
-I..\\..\\..\\src\\libCom\\gpHash
-I..\\..\\..\\src\\libCom\\iocsh -I..\\..\\..\\src\\libCom\\logClient
-I..\\..\\..\\src\\libCom\\macLib -I..\\..\\..\\src\\libCom\\misc
-I..\\..\\..\\src\\libCom\\osi -I..\\..\\..\\src\\libCom\\taskwd
-I..\\..\\..\\src\\libCom\\timer -I..\\..\\..\\src\\libCom\\tsDefs
-I..\\..\\..\\include\\os\\WIN32 -I..\\..\\..\\include
/Tp ..\\..\\..\\src\\libCom\\osi\\os\\WIN32\\osdTime.cpp
osdTime.cpp
..\..\..\src\libCom\osi\os\WIN32\osdTime.cpp(106) : error C2662:
'currentTime::s
tartPLL' : cannot convert 'this' pointer from 'volatile currentTime' to
'currentTime &'
Conversion loses qualifiers
..\..\..\src\libCom\osi\os\WIN32\osdTime.cpp(125) : error C2662:
'currentTime::g
etCurrentTime' : cannot convert 'this' pointer from 'volatile
currentTime'
to 'currentTime &'
Conversion loses qualifiers
make[3]: *** [osdTime.obj] Error 2
make[3]: Leaving directory
`W:/winDev/epics/R3.14.10/base-3.14.10/src/libCom/O.w
in32-x86'
make[2]: *** [install.win32-x86] Error 2
make[2]: Leaving directory
`W:/winDev/epics/R3.14.10/base-3.14.10/src/libCom'
make[1]: *** [libCom.install] Error 2
make[1]: Leaving directory `W:/winDev/epics/R3.14.10/base-3.14.10/src'
make: *** [src.install] Error 2
John
> John,
>
>> I tried to pretend nothing was wrong, I ran makeBaseApp.pl for
example
> app
>> and built it successfully, but when I run it I get:
>
>> W:\tmp\example\iocBoot\iocmyExample>..\..\bin\win32-x86\myExample.exe
> st.cmd
>> epicsThread: Unknown C++ exception in thread "timerQueue" at Mon Aug
> 10
>> 2009 15:03:39.518960139
>
> That error does not have anything to do with your build errors, that
is
> a known bug in base 3.14.10 on win32-x86.
>
> In the Known Problems file for 3.14.10
> (http://www.aps.anl.gov/epics/base/R3-14/10-docs/KnownProblems.html)
> you will see this item:
>
> "IOCs or other EPICS programs running on a Win32 system with multiple
> CPUs may die at startup. This patch applied to the
> base/src/libCom/osi/os/WIN32/osdTime.cpp file solves an issue with
time
> provider registration on Windows."
>
> Apply that patch to base and it should fix your problem.
>
> Mark
>
> -----Original Message-----
> From: [email protected]
> [mailto:[email protected]] On Behalf Of John Dobbins
> Sent: Monday, August 10, 2009 2:31 PM
> To: Andrew Johnson
> Cc: [email protected]
> Subject: Re: Building ASYN on Windows
>
>> Hi John
>>
>> On Monday 10 August 2009 11:39:47 John Dobbins wrote:
>>>
>>> The R3.14.10 Visual C++ build fails when executing the created file
>>> genApps.exe.
>>>
>>> The MinGW build fails when executing the created file dBToMenuH.exe
>>
>> Both of those failures were in programs that were built earlier in
the
>> process. What is strange though is that those aren't the first
> programs
>> to
>> be run that we built earlier; that honor goes to e_flex.exe and
>> antelope.exe
>> which are both used when compiling in the base/src/dbStatic directory
> and
>> which run quite happily on your builds. Indeed for your Visual C++
> build
>> all
>> of the code that you actually need to build IOCs and Mark's
> areaDetector
>> application have successfully been built by that stage, so you could
>> ignore
>> the gdd build failure (which is only needed for non-IOC CA servers)
> and
>> continue on to compile your other modules at this point.
>>
>> Question: What was your PATH set to when you were building these?
You
>> didn't
>> have the bin directory from another release of Base or from the EPICS
>> Win32
>> extensions in the path did you? I would guess not, but I'd like to
be
>> sure
>> of that.
>
>
> PATH =
>
C:\Perl\site\bin;C:\Perl\bin;C:\Xilinx\10.1\ISE\bin\nt;C:\Xilinx\10.1\IS
>
E\lib\nt;C:\Xilinx\10.1\ISE\smartmodel\nt\installed_nt\lib\pcnt.lib;C:\W
> INDOWS\system32;C:\WINDOWS;C:\WINDOWS\system32\wbem;C:\Program
> Files\Hummingbird\Connectivity\11.00\Accessories\;c:\program
> files\microsoft sql server\90\tools\binn\;C:\Program
> Files\MATLAB\R2006a\bin\win32;C:\Program
> Files\Sudowin\Clients\Console;C:\Program
>
Files\TortoiseSVN\bin;C:\strawberry\c\bin;C:\strawberry\perl\bin;C:\Prog
> ram
> Files\Agilent\IO Libraries Suite\bin;C:\Program Files\IVI
> Foundation\IVI\bin;C:\Program Files\IVI
> Foundation\VISA\WinNT\Bin\;C:\Program Files\IVI
> Foundation\VISA\winnt\agvisa;C:\Program Files\Microsoft Visual Studio
> 8\VC\bin;C:\Program Files\Microsoft Visual Studio
> 8\Common7\IDE;C:\Program
> Files\GnuWin32\bin;W:\winDev\epics\R3.14.10\base-3.14.10\bin\win32-x86
>
>
>
>
>
>
>
>>> I am including the full output from both builds below, which
includes
>>> some warnings.
>>
>> At a brief glance through I recognize many of those warnings, which
> are
>> not
>> something that could have caused this problem.
>>
>> The interesting thing is that in both cases the same error code
> occurs,
>> which
>> Mark Rivers points out to mean access violation (I'm taking his word
>> there).
>>
>>> Any advice on how to proceed from this point would be welcome.
>>
>> If you still have or can repeat the VC++ build, just use that and
> ignore
>> the
>> build failure in gdd, the parts of Base you need have already built
>> correctly
>> by then so you can continue to build the other modules. It would be
> good
>> to
>> get to the bottom of this though.
>>
>> - Andrew
>> --
>> The best FOSS code is written to be read by other humans -- Harold
> Welte
>
>
> I tried to pretend nothing was wrong, I ran makeBaseApp.pl for example
> app
> and built it successfully, but when I run it I get:
>
> W:\tmp\example\iocBoot\iocmyExample>..\..\bin\win32-x86\myExample.exe
> st.cmd
> epicsThread: Unknown C++ exception in thread "timerQueue" at Mon Aug
10
> 2009 15:
> 03:39.518960139
> #!../../bin/win32-x86/myExample
> ## You may have to change myExample to something else
> ## everywhere it appears in this file
> < envPaths
> epicsEnvSet("ARCH","win32-x86")
> epicsEnvSet("IOC","iocmyExample")
> epicsEnvSet("TOP","W:/tmp/example")
> epicsEnvSet("EPICS_BASE","W:/winDev/epics/R3.14.10/base-3.14.10")
> cd W:/tmp/example
> ## Register all support components
> dbLoadDatabase "dbd/myExample.dbd"
> myExample_registerRecordDeviceDriver pdbbase
> ## Load record instances
> dbLoadTemplate "db/userHost.substitutions"
> dbLoadRecords "db/dbSubExample.db", "user=erpoprHost"
> ## Set this to see messages from mySub
> #var mySubDebug 1
> ## Run this to trace the stages of iocInit
> #traceIocInit
> cd W:/tmp/example/iocBoot/iocmyExample
> iocInit
> Starting iocInit
>
########################################################################
> ####
> ## EPICS R3.14.10 $R3-14-10$ $2008/10/27 19:39:04$
> ## EPICS Base built Aug 10 2009
>
########################################################################
> ####
>
> This application has requested the Runtime to terminate it in an
unusual
> way. Please contact the application's support team for more
information.
>
> iocRun: All initialization complete
> ## Start any sequence programs
> #seq sncExample, "user=erpoprHost"
> epics>
>
> At which point I get a Windows dialog to choose debug/send/don't_send
> error report.
>
>
> John
>
>
>
- Replies:
- Re: Building ASYN on Windows Andrew Johnson
- References:
- Building ASYN on Windows John Dobbins
- RE: Building ASYN on Windows Mark Rivers
- RE: Building ASYN on Windows John Dobbins
- Re: Building ASYN on Windows Andrew Johnson
- Re: Building ASYN on Windows John Dobbins
- RE: Building ASYN on Windows Mark Rivers
- RE: Building ASYN on Windows John Dobbins
- Navigate by Date:
- Prev:
RE: Building ASYN on Windows John Dobbins
- Next:
Re: Building ASYN on Windows Andrew Johnson
- 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
2025
- Navigate by Thread:
- Prev:
RE: Building ASYN on Windows John Dobbins
- Next:
Re: Building ASYN on Windows Andrew Johnson
- 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
2025