• Compilation for VC9-x64 fails

    From Kees de Bruin@21:1/5 to All on Mon Apr 16 03:28:20 2018
    We are using an older version of Visual Studio (2008/VC9 configuration) and I'm having problems compiling ACE 6.4.7 for x64. I use the following steps to create the VC9 project and solution files:

    1. Create a default.features file with:

    ssl=1
    openssl11=1

    2. Run

    perl c:\ACE_wrappers\bin\mwc.pl -type vc9 -recurse -hierarchy -relative ACE_ROOT=c:\ACE_wrappers

    3. Create config.h with:

    // This is set to be able to call ACE_Reactor::purge_pending_notifications.
    // This is needed because otherwise notifications can arrive at an EventHandler
    // for which handle_close is called
    #define ACE_HAS_REACTOR_NOTIFICATION_QUEUE 1
    #define ACE_HAS_STANDARD_CPP_LIBRARY 1
    #define ACE_HAS_STDCPP_STL_INCLUDES 1
    #define ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB 1
    #define ACE_NO_INLINE 1
    // Uncomment the following line to enable ACE debug logging
    //#define ACE_NTRACE 0
    #include "ace/config-win32.h"

    4. We are using STLPort 5.2.1 so we add the proper directories in Visual Studio 2008

    5. Run the following in a Visual Studio 2008 x64 Win64 command prompt

    set SSL_ROOT=C:\OpenSSL\REL
    devenv C:\ACE_wrappers\ace\ace.sln

    When I now compile e.g. ACE.cpp (using Debug|x64) I get the following errors:

    Compiling...
    ACE.cpp
    c:\program files (x86)\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(17) : error C2371: 'size_t' : redefinition; different basic types
    predefined C++ types (compiler internal)(19) : see declaration of 'size_t'
    C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\winnt.h(12935) : error C3861: '__readfsdword': identifier not found
    C:\Modules\STLPort\R5_2_1\Include\stlport\stl/_algobase.h(256) : warning C4244: 'argument' : conversion from 'const ptrdiff_t' to 'size_t', possible loss of data
    C:\Modules\STLPort\R5_2_1\Include\stlport\stl/_algobase.h(627) : warning C4244: 'argument' : conversion from 'const ptrdiff_t' to 'size_t', possible loss of data
    .\ACE.cpp(579) : warning C4244: '+=' : conversion from 'ssize_t' to 'size_t', possible loss of data
    .\ACE.cpp(635) : warning C4244: '+=' : conversion from 'ssize_t' to 'size_t', possible loss of data
    .\ACE.cpp(814) : warning C4244: '+=' : conversion from 'ssize_t' to 'size_t', possible loss of data
    .\ACE.cpp(869) : warning C4244: '+=' : conversion from 'ssize_t' to 'size_t', possible loss of data
    .\ACE.cpp(1026) : warning C4244: '+=' : conversion from 'ssize_t' to 'size_t', possible loss of data
    .\ACE.cpp(1093) : warning C4244: '+=' : conversion from 'ssize_t' to 'size_t', possible loss of data
    .\ACE.cpp(1356) : warning C4244: '+=' : conversion from 'ssize_t' to 'size_t', possible loss of data
    .\ACE.cpp(1416) : warning C4244: '+=' : conversion from 'ssize_t' to 'size_t', possible loss of data
    .\ACE.cpp(1598) : warning C4244: '+=' : conversion from 'ssize_t' to 'size_t', possible loss of data
    .\ACE.cpp(1654) : warning C4244: '+=' : conversion from 'ssize_t' to 'size_t', possible loss of data
    .\ACE.cpp(1818) : warning C4244: '+=' : conversion from 'ssize_t' to 'size_t', possible loss of data
    .\ACE.cpp(1891) : warning C4244: '+=' : conversion from 'ssize_t' to 'size_t', possible loss of data
    .\ACE.cpp(2134) : warning C4244: '+=' : conversion from 'ssize_t' to 'size_t', possible loss of data
    .\ACE.cpp(2177) : warning C4244: '+=' : conversion from 'ssize_t' to 'size_t', possible loss of data

    Any suggestions on how to fix this? Compilation for x64 works as I can compile OpenSSL 1.1.0h without problems.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Johnny Willemsen@21:1/5 to Kees de Bruin on Wed Apr 18 23:39:20 2018
    Hi,

    Very strange, haven't seen this before, maybe related to STLPort?

    Best regards,

    Johnny Willemsen
    Remedy IT
    http://www.remedy.nl

    On Monday, April 16, 2018 at 12:28:22 PM UTC+2, Kees de Bruin wrote:
    We are using an older version of Visual Studio (2008/VC9 configuration) and I'm having problems compiling ACE 6.4.7 for x64. I use the following steps to create the VC9 project and solution files:

    1. Create a default.features file with:

    ssl=1
    openssl11=1

    2. Run

    perl c:\ACE_wrappers\bin\mwc.pl -type vc9 -recurse -hierarchy -relative ACE_ROOT=c:\ACE_wrappers

    3. Create config.h with:

    // This is set to be able to call ACE_Reactor::purge_pending_notifications.
    // This is needed because otherwise notifications can arrive at an EventHandler
    // for which handle_close is called
    #define ACE_HAS_REACTOR_NOTIFICATION_QUEUE 1
    #define ACE_HAS_STANDARD_CPP_LIBRARY 1
    #define ACE_HAS_STDCPP_STL_INCLUDES 1
    #define ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB 1
    #define ACE_NO_INLINE 1
    // Uncomment the following line to enable ACE debug logging
    //#define ACE_NTRACE 0
    #include "ace/config-win32.h"

    4. We are using STLPort 5.2.1 so we add the proper directories in Visual Studio 2008

    5. Run the following in a Visual Studio 2008 x64 Win64 command prompt

    set SSL_ROOT=C:\OpenSSL\REL
    devenv C:\ACE_wrappers\ace\ace.sln

    When I now compile e.g. ACE.cpp (using Debug|x64) I get the following errors:

    Compiling...
    ACE.cpp
    c:\program files (x86)\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(17) : error C2371: 'size_t' : redefinition; different basic types
    predefined C++ types (compiler internal)(19) : see declaration of 'size_t'
    C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\winnt.h(12935) : error C3861: '__readfsdword': identifier not found
    C:\Modules\STLPort\R5_2_1\Include\stlport\stl/_algobase.h(256) : warning C4244: 'argument' : conversion from 'const ptrdiff_t' to 'size_t', possible loss of data
    C:\Modules\STLPort\R5_2_1\Include\stlport\stl/_algobase.h(627) : warning C4244: 'argument' : conversion from 'const ptrdiff_t' to 'size_t', possible loss of data
    .\ACE.cpp(579) : warning C4244: '+=' : conversion from 'ssize_t' to 'size_t', possible loss of data
    .\ACE.cpp(635) : warning C4244: '+=' : conversion from 'ssize_t' to 'size_t', possible loss of data
    .\ACE.cpp(814) : warning C4244: '+=' : conversion from 'ssize_t' to 'size_t', possible loss of data
    .\ACE.cpp(869) : warning C4244: '+=' : conversion from 'ssize_t' to 'size_t', possible loss of data
    .\ACE.cpp(1026) : warning C4244: '+=' : conversion from 'ssize_t' to 'size_t', possible loss of data
    .\ACE.cpp(1093) : warning C4244: '+=' : conversion from 'ssize_t' to 'size_t', possible loss of data
    .\ACE.cpp(1356) : warning C4244: '+=' : conversion from 'ssize_t' to 'size_t', possible loss of data
    .\ACE.cpp(1416) : warning C4244: '+=' : conversion from 'ssize_t' to 'size_t', possible loss of data
    .\ACE.cpp(1598) : warning C4244: '+=' : conversion from 'ssize_t' to 'size_t', possible loss of data
    .\ACE.cpp(1654) : warning C4244: '+=' : conversion from 'ssize_t' to 'size_t', possible loss of data
    .\ACE.cpp(1818) : warning C4244: '+=' : conversion from 'ssize_t' to 'size_t', possible loss of data
    .\ACE.cpp(1891) : warning C4244: '+=' : conversion from 'ssize_t' to 'size_t', possible loss of data
    .\ACE.cpp(2134) : warning C4244: '+=' : conversion from 'ssize_t' to 'size_t', possible loss of data
    .\ACE.cpp(2177) : warning C4244: '+=' : conversion from 'ssize_t' to 'size_t', possible loss of data

    Any suggestions on how to fix this? Compilation for x64 works as I can compile OpenSSL 1.1.0h without problems.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Kees de Bruin@21:1/5 to All on Thu Apr 19 01:33:28 2018
    Instead of building from the IDE I can get it to compile from the command prompt:

    1. Open Visual Studio 2008 x64 Win64 command prompt
    2. Set SSL_ROOT
    3. Set INCLUDE and LIB to have STLPort in front
    4. Run devenv ace.sln /rebuild "Debug|x64" /project ace.vcproj /useenv

    Now it will properly build the ACE library.

    The "/useenv" is critical as it seems that the paths are not set properly when omitted.

    Based on this it seems that the IDE is not getting the proper paths which is confirmed when you start a command prompt from the IDE and inspect the value of PATH.

    For now I've updated our development guide to build ACE using the command line instead of the IDE.

    Op donderdag 19 april 2018 08:39:22 UTC+2 schreef Johnny Willemsen:
    Hi,

    Very strange, haven't seen this before, maybe related to STLPort?

    Best regards,

    Johnny Willemsen
    Remedy IT
    http://www.remedy.nl

    On Monday, April 16, 2018 at 12:28:22 PM UTC+2, Kees de Bruin wrote:
    We are using an older version of Visual Studio (2008/VC9 configuration) and I'm having problems compiling ACE 6.4.7 for x64. I use the following steps to create the VC9 project and solution files:

    1. Create a default.features file with:

    ssl=1
    openssl11=1

    2. Run

    perl c:\ACE_wrappers\bin\mwc.pl -type vc9 -recurse -hierarchy -relative ACE_ROOT=c:\ACE_wrappers

    3. Create config.h with:

    // This is set to be able to call ACE_Reactor::purge_pending_notifications.
    // This is needed because otherwise notifications can arrive at an EventHandler
    // for which handle_close is called
    #define ACE_HAS_REACTOR_NOTIFICATION_QUEUE 1
    #define ACE_HAS_STANDARD_CPP_LIBRARY 1
    #define ACE_HAS_STDCPP_STL_INCLUDES 1
    #define ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB 1
    #define ACE_NO_INLINE 1
    // Uncomment the following line to enable ACE debug logging
    //#define ACE_NTRACE 0
    #include "ace/config-win32.h"

    4. We are using STLPort 5.2.1 so we add the proper directories in Visual Studio 2008

    5. Run the following in a Visual Studio 2008 x64 Win64 command prompt

    set SSL_ROOT=C:\OpenSSL\REL
    devenv C:\ACE_wrappers\ace\ace.sln

    When I now compile e.g. ACE.cpp (using Debug|x64) I get the following errors:

    Compiling...
    ACE.cpp
    c:\program files (x86)\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(17) : error C2371: 'size_t' : redefinition; different basic types
    predefined C++ types (compiler internal)(19) : see declaration of 'size_t'
    C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\winnt.h(12935) : error C3861: '__readfsdword': identifier not found
    C:\Modules\STLPort\R5_2_1\Include\stlport\stl/_algobase.h(256) : warning C4244: 'argument' : conversion from 'const ptrdiff_t' to 'size_t', possible loss of data
    C:\Modules\STLPort\R5_2_1\Include\stlport\stl/_algobase.h(627) : warning C4244: 'argument' : conversion from 'const ptrdiff_t' to 'size_t', possible loss of data
    .\ACE.cpp(579) : warning C4244: '+=' : conversion from 'ssize_t' to 'size_t', possible loss of data
    .\ACE.cpp(635) : warning C4244: '+=' : conversion from 'ssize_t' to 'size_t', possible loss of data
    .\ACE.cpp(814) : warning C4244: '+=' : conversion from 'ssize_t' to 'size_t', possible loss of data
    .\ACE.cpp(869) : warning C4244: '+=' : conversion from 'ssize_t' to 'size_t', possible loss of data
    .\ACE.cpp(1026) : warning C4244: '+=' : conversion from 'ssize_t' to 'size_t', possible loss of data
    .\ACE.cpp(1093) : warning C4244: '+=' : conversion from 'ssize_t' to 'size_t', possible loss of data
    .\ACE.cpp(1356) : warning C4244: '+=' : conversion from 'ssize_t' to 'size_t', possible loss of data
    .\ACE.cpp(1416) : warning C4244: '+=' : conversion from 'ssize_t' to 'size_t', possible loss of data
    .\ACE.cpp(1598) : warning C4244: '+=' : conversion from 'ssize_t' to 'size_t', possible loss of data
    .\ACE.cpp(1654) : warning C4244: '+=' : conversion from 'ssize_t' to 'size_t', possible loss of data
    .\ACE.cpp(1818) : warning C4244: '+=' : conversion from 'ssize_t' to 'size_t', possible loss of data
    .\ACE.cpp(1891) : warning C4244: '+=' : conversion from 'ssize_t' to 'size_t', possible loss of data
    .\ACE.cpp(2134) : warning C4244: '+=' : conversion from 'ssize_t' to 'size_t', possible loss of data
    .\ACE.cpp(2177) : warning C4244: '+=' : conversion from 'ssize_t' to 'size_t', possible loss of data

    Any suggestions on how to fix this? Compilation for x64 works as I can compile OpenSSL 1.1.0h without problems.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Johnny Willemsen@21:1/5 to Kees de Bruin on Thu Apr 19 10:58:25 2018
    Hi,

    Good to hear it works now. When you have any suggestions for documentation improvements please open a new pull request at https://github.com/DOCGroup/ACE_TAO.

    Best regards,

    Johnny Willemsen
    Remedy IT
    http://www.remedy.nl

    On Thursday, April 19, 2018 at 10:33:31 AM UTC+2, Kees de Bruin wrote:
    Instead of building from the IDE I can get it to compile from the command prompt:

    1. Open Visual Studio 2008 x64 Win64 command prompt
    2. Set SSL_ROOT
    3. Set INCLUDE and LIB to have STLPort in front
    4. Run devenv ace.sln /rebuild "Debug|x64" /project ace.vcproj /useenv

    Now it will properly build the ACE library.

    The "/useenv" is critical as it seems that the paths are not set properly when omitted.

    Based on this it seems that the IDE is not getting the proper paths which is confirmed when you start a command prompt from the IDE and inspect the value of PATH.

    For now I've updated our development guide to build ACE using the command line instead of the IDE.

    Op donderdag 19 april 2018 08:39:22 UTC+2 schreef Johnny Willemsen:
    Hi,

    Very strange, haven't seen this before, maybe related to STLPort?

    Best regards,

    Johnny Willemsen
    Remedy IT
    http://www.remedy.nl

    On Monday, April 16, 2018 at 12:28:22 PM UTC+2, Kees de Bruin wrote:
    We are using an older version of Visual Studio (2008/VC9 configuration) and I'm having problems compiling ACE 6.4.7 for x64. I use the following steps to create the VC9 project and solution files:

    1. Create a default.features file with:

    ssl=1
    openssl11=1

    2. Run

    perl c:\ACE_wrappers\bin\mwc.pl -type vc9 -recurse -hierarchy -relative ACE_ROOT=c:\ACE_wrappers

    3. Create config.h with:

    // This is set to be able to call ACE_Reactor::purge_pending_notifications.
    // This is needed because otherwise notifications can arrive at an EventHandler
    // for which handle_close is called
    #define ACE_HAS_REACTOR_NOTIFICATION_QUEUE 1
    #define ACE_HAS_STANDARD_CPP_LIBRARY 1
    #define ACE_HAS_STDCPP_STL_INCLUDES 1
    #define ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB 1
    #define ACE_NO_INLINE 1
    // Uncomment the following line to enable ACE debug logging
    //#define ACE_NTRACE 0
    #include "ace/config-win32.h"

    4. We are using STLPort 5.2.1 so we add the proper directories in Visual Studio 2008

    5. Run the following in a Visual Studio 2008 x64 Win64 command prompt

    set SSL_ROOT=C:\OpenSSL\REL
    devenv C:\ACE_wrappers\ace\ace.sln

    When I now compile e.g. ACE.cpp (using Debug|x64) I get the following errors:

    Compiling...
    ACE.cpp
    c:\program files (x86)\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(17) : error C2371: 'size_t' : redefinition; different basic types
    predefined C++ types (compiler internal)(19) : see declaration of 'size_t'
    C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\winnt.h(12935) : error C3861: '__readfsdword': identifier not found
    C:\Modules\STLPort\R5_2_1\Include\stlport\stl/_algobase.h(256) : warning C4244: 'argument' : conversion from 'const ptrdiff_t' to 'size_t', possible loss of data
    C:\Modules\STLPort\R5_2_1\Include\stlport\stl/_algobase.h(627) : warning C4244: 'argument' : conversion from 'const ptrdiff_t' to 'size_t', possible loss of data
    .\ACE.cpp(579) : warning C4244: '+=' : conversion from 'ssize_t' to 'size_t', possible loss of data
    .\ACE.cpp(635) : warning C4244: '+=' : conversion from 'ssize_t' to 'size_t', possible loss of data
    .\ACE.cpp(814) : warning C4244: '+=' : conversion from 'ssize_t' to 'size_t', possible loss of data
    .\ACE.cpp(869) : warning C4244: '+=' : conversion from 'ssize_t' to 'size_t', possible loss of data
    .\ACE.cpp(1026) : warning C4244: '+=' : conversion from 'ssize_t' to 'size_t', possible loss of data
    .\ACE.cpp(1093) : warning C4244: '+=' : conversion from 'ssize_t' to 'size_t', possible loss of data
    .\ACE.cpp(1356) : warning C4244: '+=' : conversion from 'ssize_t' to 'size_t', possible loss of data
    .\ACE.cpp(1416) : warning C4244: '+=' : conversion from 'ssize_t' to 'size_t', possible loss of data
    .\ACE.cpp(1598) : warning C4244: '+=' : conversion from 'ssize_t' to 'size_t', possible loss of data
    .\ACE.cpp(1654) : warning C4244: '+=' : conversion from 'ssize_t' to 'size_t', possible loss of data
    .\ACE.cpp(1818) : warning C4244: '+=' : conversion from 'ssize_t' to 'size_t', possible loss of data
    .\ACE.cpp(1891) : warning C4244: '+=' : conversion from 'ssize_t' to 'size_t', possible loss of data
    .\ACE.cpp(2134) : warning C4244: '+=' : conversion from 'ssize_t' to 'size_t', possible loss of data
    .\ACE.cpp(2177) : warning C4244: '+=' : conversion from 'ssize_t' to 'size_t', possible loss of data

    Any suggestions on how to fix this? Compilation for x64 works as I can compile OpenSSL 1.1.0h without problems.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)