[ace-users] Build ACE-5.5.8 on windows 2003 server X64 ( AMD 64 ) bit machine with platform SDK

Adam Mitz mitza at ociweb.com
Wed Jul 11 10:16:03 CDT 2007


Hi Venkat,

venkat naidu wrote:
>
>
>
>     I have attempted a build with OCI TAO 1.5a (which includes ACE-5.5.6
>     plus various patches and bugfixes) using just the platform SDK
>     tools (no
>     visual studio) on WinXP-x64.  I had to make some source changes but I
>     did get it to compile.  Once I have time to look into some test
>     failures
>     I'll commit those changes to OCI TAO 1.5a and also the DOC group
>     repository.
>
>  
>  
>  
>  
> please post me the details of steps you have carried out to build the 
> component.(Actually am trying to build only the plain ACE-5.5.8 component)
>  
> i will try my best to build it from my side

Here is what you need to do to try this build:

1. Get the latest MPC
Remove the ACE_wrappers\MPC directory completely.  Replace it with MPC 
from anonymous svn:
cd %ACE_ROOT%
svn co svn://svn.dre.vanderbilt.edu/DOC/MPC/trunk MPC

2. Re-generate the makefiles
mwc.pl -type nmake -value_template systemlibs+=bufferoverflowU.lib 
-value_template platforms=x64

3. Apply the patch (attached)
Once this is in, you shouldn't need anything special in config.h, just 
the normal include of config-win32.h

Please note that this is experimental -- there are no guarantees that 
anything will actually work with this patch.  As you may know, Object 
Computing, Inc., provides commercial support for ACE and TAO (as well as 
other open-source products).  Since ACE is open source and free of 
licensing fees, we do not derive any revenue other than through our 
services and support (and a little from book and CD sales).  So, 
unfortunately, we are unable to provide extensive free support.  Please 
contact sales at ociweb.com for information on opening a support contract.

Thanks,
Adam Mitz
Software Engineer
Object Computing, Inc.

-------------- next part --------------
Index: ace/Numeric_Limits.h
===================================================================
--- ace/Numeric_Limits.h	(revision 285)
+++ ace/Numeric_Limits.h	(working copy)
@@ -220,7 +220,8 @@
   static T max (void) { return std::numeric_limits<T>::max (); }
 };
 
-# if defined (ACE_WIN64) && defined (_MSC_VER) && _MSC_VER <= 1310
+# if (defined (ACE_WIN64) && defined (_MSC_VER) && _MSC_VER <= 1310) \
+    || defined (ACE_LACKS_NUMERIC_LIMITS_64_BIT_TYPES)
 // The Microsoft Platform SDK does not provide std::numeric_limits<>
 // specializations for 64 bit integers so we need to explicitly provide
 // ACE_Numeric_Limits<> specializations to compensate for this
Index: ace/config-win32-msvc-8.h
===================================================================
--- ace/config-win32-msvc-8.h	(revision 285)
+++ ace/config-win32-msvc-8.h	(working copy)
@@ -32,6 +32,15 @@
 #define ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB 1
 #endif
 
+//Detect Platform SDK 64-bit (AMD64) compiler using _MSC_FULL_VER
+#if (defined (_WIN64) || defined (WIN64)) && _MSC_FULL_VER < 140050000
+#  define ACE_AUTO_PTR_LACKS_RESET
+#  define ACE_MSVC_USES_DOUBLE_UNDERSCORE_STAT64
+#  define ACE_HAS_BROKEN_STD_REVERSE_ITERATOR
+#  define ACE_LACKS_NUMERIC_LIMITS_64_BIT_TYPES
+#endif
+
+
 // Windows' timeval is non-conformant (defined in terms of long instead of
 // time_t) and VC8 (on desktop, not CE) changed time_t to a 64-bit value
 // even when compiling a 32-bit application. Therefore, ace/Time_Value
Index: ace/config-lite.h
===================================================================
--- ace/config-lite.h	(revision 285)
+++ ace/config-lite.h	(working copy)
@@ -129,7 +129,8 @@
   // the _RWSTD_NO_CLASS_PARTIAL_SPEC feature test macro below.
 # include <Cstd/stdcomp.h>
 #endif /* __SUNPRO_CC <= 0x580 */
-#if defined (_MSC_VER) && (_MSC_VER <= 1310) && defined (_WIN64)
+#if (defined (_MSC_VER) && (_MSC_VER <= 1310) && defined (_WIN64)) \
+    || defined (ACE_HAS_BROKEN_STD_REVERSE_ITERATOR)
   // VC 7.1 and the latest 64-bit platform SDK still don't define a standard
   // compliant reverse_iterator adapter.
 # define ACE_DECLARE_STL_REVERSE_ITERATORS \
Index: ace/OS_NS_sys_stat.h
===================================================================
--- ace/OS_NS_sys_stat.h	(revision 285)
+++ ace/OS_NS_sys_stat.h	(working copy)
@@ -46,7 +46,11 @@
 #     if _MSC_VER >= 1400
 //      For vc8 which has time_t as 64bit
 //      64-bit file offsets, 64-bit time_t
+#       if defined (ACE_MSVC_USES_DOUBLE_UNDERSCORE_STAT64)
+typedef struct __stat64 ACE_stat;
+#       else
 typedef struct _stat64 ACE_stat;
+#       endif
 #       define ACE_STAT_FUNC_NAME ::_stat64
 #       define ACE_WSTAT_FUNC_NAME ::_wstat64
 #     else


More information about the Ace-users mailing list