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  2014  <20152016  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  2014  <20152016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: RE: Base 3.14.12.5-rc1 Available
From: <[email protected]>
To: <[email protected]>
Date: Fri, 13 Mar 2015 14:59:04 +0000
Hi,

I’ve compiled and run base 3.14.12.5-rc1 on Windows 8 64bit with Visual Studio 2013, shared build, both windows-x64-debug and windows-x64 as EPICS_HOST_ARCH targets - all built OK and “make runtests” passed too :-)

I noticed a couple of warnings in the build log that might have some relevance

c:\epics-base-3.14.12.5-rc1\src\ca\oldAccess.h(594) : warning C4930: 'epicsGuardRelease<T> guardRelease(void)': prototyped function not called (was a variable definition intended?)
        with
        [
            T=epicsMutex
        ]
        c:\epics-base-3.14.12.5-rc1\src\ca\sgAutoPtr.h(59) : see reference to function template instantiation 'void ca_client_context::whenThereIsAnExceptionDestroySyncGroupIO<T>(epicsGuard<epicsMutex> &,T &)' being compiled
        with
        [
            T=syncGroupWriteNotify
        ]
        c:\epics-base-3.14.12.5-rc1\src\ca\sgAutoPtr.h(55) : while compiling class template member function 'sgAutoPtr<syncGroupWriteNotify>::~sgAutoPtr(void)'
        ..\CASG.cpp(216) : see reference to function template instantiation 'sgAutoPtr<syncGroupWriteNotify>::~sgAutoPtr(void)' being compiled
        ..\CASG.cpp(216) : see reference to class template instantiation 'sgAutoPtr<syncGroupWriteNotify>' being compiled

Passing “guard” as the argument would remove the warning, but I don’t know if that is the desired behaviour. Removing the () from the line gives a “no appropriate default constructor” error.   

cl -c              /favor:blend   /nologo /D__STDC__=0 /D_CRT_SECURE_NO_DEPRECATE /D_CRT_NONSTDC_NO_DEPRECATE   /Zi /RTCsu   /W3 /w44355        /MDd     -I. -I..\\O.Common -I. -I.. -I..\\..\\..\\include\\os\\WIN32 -I..\\..\\..\\include         ..\\tool_lib.c 
tool_lib.c
c:\epics-base-3.14.12.5-rc1\include\alarmString.h(30) : warning C4273: 'epicsAlarmSeverityStrings' : inconsistent dll linkage
        C:\epics-base-3.14.12.5-rc1\include\alarm.h(46) : see previous definition of 'epicsAlarmSeverityStrings'
c:\epics-base-3.14.12.5-rc1\include\alarmString.h(40) : warning C4273: 'epicsAlarmConditionStrings' : inconsistent dll linkage
        C:\epics-base-3.14.12.5-rc1\include\alarm.h(101) : see previous definition of 'epicsAlarmConditionStrings'

epicsAlarmSeverityStrings is declared epicsShareExtern in alarm.h but just extern in alarmString.h – making both extern removes the warning, making them both epicsShareExtern causes a “error C2491: 'epicsAlarmSeverityStrings' : definition of dllimport data not allowed” issue when compiling  tool_lib.c 

I also enclose a diff of a couple of minor mods I have locally in 3-14-12-4:
* With a debug build on windows, isprint() throws an exception if the function argument is < 0
* The windows implementation of currentTime::getCurrentTime is missing a divide by EPICS_TIME_TICKS_PER_SEC when reporting a time discontinuity

Regards,

Freddie

> -----Original Message-----
> From: [email protected] [mailto:tech-talk-
> [email protected]] On Behalf Of Andrew Johnson
> Sent: 09 March 2015 20:07
> To: EPICS tech-talk
> Subject: Base 3.14.12.5-rc1 Available
> 
> The first Release Candidate version of the next EPICS Base-3.14.12.5
> release is now available for download from the Base R3.14.12 or the Base
> Downloads web-pages.
>   http://www.aps.anl.gov/epics/base/R3-14/12.php
> 
> This is a patch release, containing all of the Known Problems fixes and
> a number of other minor (backwards-compatible) enhancements to 3.14.12,
> mostly to the build system. Please read the Release Notes linked from
> the above web-page for details of the significant changes.
> 
> Please report problems with this version to tech-talk as soon as
> possible. If no major issues are discovered in the next two weeks
> Base-3.14.12.5 will be released on March 23rd.
> 
> Thanks to everyone who has reported problems and contributed patches.
> 
> - Andrew
> 
> --
> Doctorow's Law: Anytime someone puts a lock on something you own,
>     against your wishes, and doesn't give you the key, they're
>     not doing it for your benefit.
Index: src/libCom/osi/os/WIN32/osdTime.cpp
===================================================================
--- src/libCom/osi/os/WIN32/osdTime.cpp	(revision 60)
+++ src/libCom/osi/os/WIN32/osdTime.cpp	(revision 61)
@@ -366,9 +366,9 @@
         LONGLONG epicsTimeCurrent = this->epicsTimeLast + offset;
         if ( this->epicsTimeLast > epicsTimeCurrent ) {
             double diff = static_cast < double >
-                ( this->epicsTimeLast - epicsTimeCurrent );
+				(this->epicsTimeLast - epicsTimeCurrent) / EPICS_TIME_TICKS_PER_SEC;
             errlogPrintf (
-                "currentTime::getCurrentTime(): %f sec "
+                "currentTime::getCurrentTime(): %g sec "
                 "time discontinuity detected\n",
                 diff );
         }
Index: src/libCom/misc/epicsString.c
===================================================================
--- src/libCom/misc/epicsString.c	(revision 60)
+++ src/libCom/misc/epicsString.c	(revision 61)
@@ -131,7 +131,7 @@
             case '\'':  len = epicsSnprintf(outpos, maxout, "\\'"); break;
             case '\"':  len = epicsSnprintf(outpos, maxout, "\\\""); break;
             default:
-                if (isprint(0xff & (int)c))
+                if ( c >= 0 && isprint(0xff & (int)c) )
                     len = epicsSnprintf(outpos, maxout, "%c", c);
                 else
                     len = epicsSnprintf(outpos, maxout, "\\%03o",
@@ -166,7 +166,7 @@
             nout++;
             break;
         default:
-            if (!isprint(0xff & (int)c))
+            if ( c < 0 || !isprint(0xff & (int)c) )
                 nout += 3;
         }
     }
@@ -230,7 +230,7 @@
        case '\'':  nout += fprintf(fp, "\\'");  break;
        case '\"':  nout += fprintf(fp, "\\\"");  break;
        default:
-           if (isprint(0xff & (int)c))
+           if ( c >= 0 && isprint(0xff & (int)c) )
                nout += fprintf(fp, "%c", c);
            else
                nout += fprintf(fp, "\\%03o", (unsigned char)c);

Replies:
Re: Base 3.14.12.5-rc1 Available Andrew Johnson
References:
Base 3.14.12.5-rc1 Available Andrew Johnson

Navigate by Date:
Prev: Re: using PI C-863 Mercury motor controller with linux Pearson, Matthew R.
Next: Re: Base 3.14.12.5-rc1 Available Andrew Johnson
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  <20152016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Re: Base 3.14.12.5-rc1 Available Jeong Han Lee
Next: Re: Base 3.14.12.5-rc1 Available Andrew Johnson
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  <20152016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 16 Dec 2015 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·