Andrew,
I just tried to build 3.14.12.2 on win32-x86 using Visual Studio 2008. It
failed with these errors:
cl /nologo /EHsc /GR
-c
/nologo /D__STDC__=0 /D_CRT_SECURE_NO_DEPRECATE
/D_CRT_NONSTDC_NO_DEPRECATE /Ox/GL /W3
/w44355 /D_WIN32_WINNT=0x0503 /MT
-DEPICS_DLL_NO /TP -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\\fdmgr -I..\\..\\..\\src\\libCom\\freeList -I..\\..\\..\\src\\libCom\\gpHash
-I..\\..\\..\\src\\libCom\\iocsh -I..\\..\\..\\src\\libCom\\logClient
-I..\\..\\..\\src\\lib
Com\\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 ..\\..\\..\\src\\libCom\\osi\\os\\WIN32\\osdTime.cpp
osdTime.cpp
..\..\..\src\libCom\osi\os\WIN32\osdTime.cpp(352) : error C2065:
'MINLONGLONG' : undeclared identifier
..\..\..\src\libCom\osi\os\WIN32\osdTime.cpp(430) : error C2065:
'MINLONGLONG' : undeclared identifier
..\..\..\src\libCom\osi\os\WIN32\osdTime.cpp(479) : error C2065:
'MINLONGLONG' : undeclared identifier
make[3]: *** [osdTime.obj] Error 2
make[3]: Leaving directory
`H:/epics/base-3.14.12.2-rc1/src/libCom/O.win32-x86'
make[2]: *** [install.win32-x86] Error 2
make[2]: Leaving directory `H:/epics/base-3.14.12.2-rc1/src/libCom'
make[1]: *** [libCom.install] Error 2
make[1]: Leaving directory `H:/epics/base-3.14.12.2-rc1/src'
make: *** [src.install] Error 2
I was able to fix the error with this change:
corvette:osi/os/WIN32>diff -u osdTime.cpp.orig osdTime.cpp
--- osdTime.cpp.orig 2011-11-29 11:40:13.304344427
-0600
+++ osdTime.cpp 2011-11-29 11:41:19.705649538 -0600
@@ -60,6 +60,8 @@
// for mingw
#if !defined ( MAXLONGLONG )
#define MAXLONGLONG LL_CONSTANT(0x7fffffffffffffff)
+#endif
+#if !defined ( MINLONGLONG )
#define MINLONGLONG LL_CONSTANT(~0x7fffffffffffffff)
#endif
It appears that MAXLONGLONG was defined but MINLONGLONG was not, so the
conditional was failing to define MINLONGLONG. By breaking it into 2
conditionals it fixed the problem. I’ve attached the new version of
the file.
It also generated this warning, which does not look good:
cl
-c
/nologo /D__STDC__=0 /D_CRT_SECURE_NO_DEPRECATE
/D_CRT_NONSTDC_NO_DEPRECATE /Ox /GL /W3 /w44355
/D_WIN32_WINNT=0x0503 /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\\fdmgr -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
..\\..\\..\\src\\libCom\\osi\\os\\WIN32\\osdMutex.c
osdMutex.c
..\..\..\src\libCom\osi\os\WIN32\osdMutex.c(41) : warning C4005:
'_WIN32_WINNT' : macro redefinition
command-line arguments
: see previous definition of '_WIN32_WINNT'
With the above fix I was able to build for the following archs:
cygwin-x86
linux-x86
linux-x86_64
vxWorks-68040
vxWorks-ppc603_long
vxWorks-ppc604_long
win32-x86
windows-x64
Cheers,
Mark
-----Original Message-----
From: [email protected] [mailto:[email protected]] On
Behalf Of Andrew Johnson
Sent: Monday, November 28, 2011 4:58 PM
To: EPICS tech-talk
Subject: EPICS Base 3.14.12.2-rc1 available for testing
The first release candidate for the 3.14.12.2 version of Base is now
available
on the website for general testing. Links to the tarfile and
Release Notes
can be found at http://www.aps.anl.gov/epics/base/R3-14/12.php
Please report any problems you find to tech-talk. If no major
issues are
discovered before December 12th we will release 3.14.12.2 on that date.
Thanks to everyone who has helped with this process.
- Andrew
--
Optimization is the process of taking something that works and
replacing it with something that almost works, but costs less.
-- Roger Needham