Release Notes for OCI's Distribution of TAO 2.2a
Copyright 2019 by Object Computing, Inc.


NOTE:   These release notes can be found in the distribution at ACE_wrappers/OCIReleaseNotes.html.



Table of Contents

  1. General Notes

  2. New Features Since TAO 2.0a including patch levels

  3. Porting Applications from TAO 2.0a to TAO 2.2a

  4. Platforms that this release was tested on:


General Notes

  1. Heritage -- Relationship to DOC Releases

    TAO 2.2a derives from the DOC TAO 2.2.0 micro kit with bugfix-related patches selectively applied to enhance stability. A record of applied patches can be found in OCIChangeLog files installed with the distribution.

  2. Platforms

    As the initial release of this stable series, the platform set was limited to those described below. Support for additional platforms will be added in subsequent patch levels.

  3. Tests

    The great majority of ACE/TAO tests are passing on the current set of platforms. We will report more detailed test results for the individual platforms in subsequent patch releases.

  4. Make Project Creator

    All of ACE/TAO was built using MakeProjectCreator (MPC). This tool is included with this distribution and may be used for your own projects as well. MPC will generate GNU make files, Windows project files for VC++ 7.1/8/9/10, and others. It can be extended to other make systems as well. MPC documentation is available in the distribution at MPC/docs/README or online at http://downloads.ociweb.com/MPC.

  5. GNU Make on Unix

    With the exception of Windows operating systems, ACE and TAO are built with GNU Make. While one can use other tools to build applications using ACE & TAO, using GNU Make permits the leveraging of the existing build system distributed with ACE & TAO. Use gmake version 3.80 (or better), as previous versions have caused build problems on Mac OS and AIX.

  6. Compiler restrictions

    Specific compilers that TAO supports are listed in the platform sections below. In general, TAO 2.2a requires C++ compilers that support namespaces, exceptions, and some basic capabilities of the standard library.

[Top]

New Features

Many important new features and bug fixes have been introduced in TAO 2.2a. They are described briefly here. These and many other features of TAO 2.2a are detailed in OCI's TAO Developer's Guide, Version 2.2a, which is available separately.

For a detailed description of the motivation for and implementation of a particular change, see the appropriate OCIChangeLog or ChangeLog file in the TAO 2.2a source code distribution, such as ACE_wrappers/OCIChangeLog, ACE_wrappers/TAO/OCIChangeLog, ACE_wrappers/TAO/CIAO/OCIChangeLog and ACE_wrappers/TAO/DAnCE/OCIChangeLog. Some ChangeLog entries may include a "ticket" number (e.g., [RT 12345]), to help customers track specific changes they have sponsored.

  1. Features added and bugs/fixes in TAO 2.2a_p26

    • Fixes for dlopen, inet_aton, gethostbyname, and gethostbyaddr on VxWorks 21.03
    • Fixes for many warnings from gcc and Visual Studio
    • Fixes for wide-character builds on Windows
  2. Features added and bugs/fixes in TAO 2.2a_p25

    • GCC 12 support
    • Fixes for Static Initialization Order Issues Reported By AddressSanitizer
    • VxWorks 21.03 support
  3. Features added and bugs/fixes in TAO 2.2a_p24

    • Added support for macOS Monterey
    • TAO_IDL updates for valuetypes and versioned namespaces
  4. Features added and bugs/fixes in TAO 2.2a_p23

    • Fixed a bug in gnuace's make depend
    • Added support for recent GCC versions with -std=c++20
    • Fixed a bug in tao_idl when files or directories have spaces, improved error handling
  5. Features added and bugs/fixes in TAO 2.2a_p22

    • macOS Mojave support, updated other macOS versions
    • Updated ACE_Atomic_Op_GCC to support newer atomic operations when available
    • Added support for Visual C++ with /std:c++17 and 20
  6. Features added and bugs/fixes in TAO 2.2a_p21

    • Fixed SocketConnect::ip_check() concurrency and too-early request issues for Windows
    • make install: use relative links in prefix/share
    • TAO_IDL: IDLv4 Explicitly-named Integer Types
    • TAO_IDL: Fix for issue #1550 - empty case evaluation on unions with enum discriminators
    • Header file for TAO_IDL supported IDL features
  7. Features added and bugs/fixes in TAO 2.2a_p20

    • Support for building with the Android NDK directly
    • Fixes for IPv6 multicast and inet_ntop/inet_pton on Windows
    • Add Missing Export to ACE_OS::thr_gettid
    • TAO_IDL: allow builds in paths with spaces
    • TAO_IDL: fix a memory leak in wstring handling
    • TAO_IDL: Support C++ keywords in DCPS_DATA_SEQUENCE_TYPE
  8. Features added and bugs/fixes in TAO 2.2a_p19

    • Map ACE_CDR LongLong to ACE_INT64
    • Define ACE_HAS_(U)INT*_T for basic types when C++11 is enabled
    • On Windows, use unnamed kernel objects (Events and Semaphores) for USYNC_THREAD
    • Updates for Android NDK builds, including Windows-hosted
    • Improve Multicast Join by Interface Name on Windows
    • TAO_IDL_FE Extended Annotation Support
  9. Features added and bugs/fixes in TAO 2.2a_p18

    • Android platform support merged from the DOC repository
    • Updated configuration files for current macOS/iOS versions
    • Added IPv6 and datagram receive interface support for macOS/iOS
    • Windows API version (_WIN32_WINNT) no longer set by ACE, uses platform default
    • Enabled if_nametoindex on Windows
    • ACE_INET_Addr::is_sitelocal for IPv6
  10. Features added and bugs/fixes in TAO 2.2a_p17

    • NOTE: the VERSION file is now VERSION.txt to avoid conflicts with C++'s standard <version> header on case-insensitive filesystems.
    • sendmsg/recvmsg with msg_control for datagram sockets on Windows
    • gnuace makefile updates
    • Merged changes from the DOC repository providing support for iOS and Linux with glibc 2.30.
    • Merged changes from the DOC repository relating to monotonic time and TAO_IDL Annotations.
    • Merged changes from DOC repository fixing wchar literals in TAO_IDL
  11. Features added and bugs/fixes in TAO 2.2a_p16

    • Added support for the MQX OS.
    • Merged changes from the DOC repository providing support for Android, clang, Visual Studio 2019, Qt 5, and GCC 7+.
    • Merged changes from the DOC repository relating to ACE_Time_Value and timers, TAO_IDL annotations, Impl_Repo, 64-bit and general warnings, and postbuild targets in custom-only projects.
  12. Features added and bugs/fixes in TAO 2.2a_p15

    • Fixed Bugzilla #1220 for SHMIOP
    • Elliptic Curve support in SSLIOP (-SSLECName)
    • Added support for Visual Studio 2017 15.8
  13. Features added and bugs/fixes in TAO 2.2a_p14

    • Fixed DOCGroup issue #554 ACE_Singleton should work after ACE::fini, ACE::init
    • Updated compiler and platform support
    • Added support for OpenSSL version 1.1
  14. Features added and bugs/fixes in TAO 2.2a_p13

    • Extended SL2 Security Manager to easily allow non-secure collocated invocations but still disallow non-secure remote invocations. Fixes Bug #2908
    • Bug 1220 fix applied to SSLIOP (fixed for IIOP long ago)
    • VxWorks 7 compatibility updates
    • Support RPATH settings on latest Apple macOS
  15. Features added and bugs/fixes in TAO 2.2a_p12

    • Improved performance of the FT Naming Service's replicator feature
  16. Features added and bugs/fixes in TAO 2.2a_p11

    • Added support for Mac OS X on x86_64 to get the network adapter address in ACE_OS::getmacaddress().
    • Added support for the December 2016 updates to VxWorks 7.
  17. Features added and bugs/fixes in TAO 2.2a_p10

    • Added support for Mac OS X El Capitan: generic config-macosx.h and platform_macosx.GNU can be used on all versions of Mac OS X instead of using config files that end in the version's code name
    • Added support for Linux on embedded ARM processors like the Raspberry Pi
    • Reimplemented FT Naming Service to make use of a separate ORB for managing peer updates. New command line arguments added to the FT_Naming_Service executable. --ftEndpoint specifies a well-know endpoint for the "replicator" orb, which is managing the peer access.
  18. Features added and bugs/fixes in TAO 2.2a_p9

    • Fixed a significant issue with FaultTolerant Naming service, which turned out to be not as tolerant first though. The problem was identified on RedHat Linux distributions using Perstent storage on an NFS mounted file system.
    • Improvements for the tao_imr include
      • Detachment of child processes is now optional, See $TAO_ROOT/orbsvcs/ImplRepo_Service/README for details
      • Fix some cases where servers were very slow to terminate and triggered the ImR Locator to become unresponsive regarding that service
    • add a new command line argument to the logWalker utility to enable the production of finer-grained output files when multiple files for output is requested. See $TAO_ROOT/utils/logWalker/readme for info on the -dd option as descriped in the README file.
    • Fixed a variety of build dependency issues and other minor bugs in some MPC files.
  19. Features added and bugs/fixes in TAO 2.2a_p8

    • Improve support for wchar-native platforms.
    • Fix ZIOP sending very large messages.
    • Default for -ORBUseParallelConnects is now 1, enabled.
    • Added support for VxWorks 7
    • Added ACE configuration for FACE safety profiles (see config-face-safety.h), note that TAO can't be built in this configuration but OpenDDS can.
    • ACE uses new netdb.h functions (getaddrinfo/getnameinfo) if they are available in place of deprecated functions (gethostbyname/addr).
    • Improvements for the tao_imr include
      • Fix tao_imr truncating very long command lines in verbose server lists.
      • Add new operation to force the removal of a running server.
      • Improve the activator's ability to shut down processes on windows.
      • ImplRepo now builds with uses_wchar=1.
    • Improve support for IPv6 with SSL.
  20. Features added and bugs/fixes in TAO 2.2a_p7

    • Restore support for building on Solaris without Posix thread semantics
    • New SSLIOP Factory option -SSLPassword facilitates distributing password protected private keys.
    • New SSLIOP Factory option -SSLVersionList constrains the list of cipher versions allowed.
    • New SSLIOP Factory option -SSLCheckHost adds a second layer of authentication by comparing the sending hostname to the name or names in the supplied certificate
    • TAO IDL compiler now supports the Fixed type
    • The logWalker debug analysis tool does a better job with pre-TAO 2.0a log files
    • Incremental improvements in the ImR Activator
    • Improved performance of FT ImR state synchronization under heavy load.
    • New IOR Table feature refreshes endpoint lists in IORs
  21. Features added and bugs/fixes in TAO 2.2a_p6

    • Fix a memory leak in ImR that occurred in the backup locator
    • Setting -ORBPreferIPv6Interfaces 0 now causes Address resolution to try IPv4 before trying IPv6.
  22. Features added and bugs/fixes in TAO 2.2a_p5

    • Build compatibility with newer patches of OpenSSL 0.9.8.
    • Fix building static libraries on Solaris.
    • Fix an ImR crash that occurred attempting to kill a server via a dead activator.
    • Fix the connection cleanup strategy used with the Wait on Read client strategy.
  23. Features added and bugs/fixes in TAO 2.2a_p4

    • Build support for MacOSX Mavericks
    • Improved performance of SSLIOP
    • Fix a vulnerability arising from a malformed string in a GIOP payload
    • Fix Thread_Per_Connection strategy holding on to purged connections.
    • Fix the ImR’s MANUAL start mode to insure a crashed/killed server is not automatically restarted.
    • Reimplemented the ImR’s start count feature to limit restart attempts.
  24. Features added and bugs/fixes in TAO 2.2a_p3

    • Improved the performance of the load balancing feature of the tao_ft_naming service. Now a global load balancing strategy may be set via the command line using the new -l ["random"|"round_robin"] argument. The newly implemented random strategy is lockless.
    • Fixed active server detection when switching from the primary ImR locator to the backup. This allows clients to request servers via either locator. The ImR activator now ensures that non PER-CLIENT server instances are unique - no more than one will be running at any time.
    • An interface change between the ImR locator and activator requires both be updated together.
  25. Features added and bugs/fixes in TAO 2.2a_p2

    • Added optional socket connection optimization for Windows.
    • Fix bug with mt_noupcall that allowed upcalls while waiting for a new connection.
    • Improved the performance of dynamic thread pool when activating new threads
    • Improved the performance of the SYNC_WITH_SERVER oneway synchronization when used in conjunction with the CSD framework and POA thread pools.
    • Fix support for long double types when used with dynamic Anys.
    • Fix the ImplRepo to tolerate the case where the database of server info changes size while a list -a operation is being serviced.
  26. Features added and bugs/fixes in TAO 2.2a_p1

    • Fix VxWorks build problem.
    • Fix IPv6 related issues that affect performance on newer Windows platforms
    • Improvments to the Implementation Repository
      • New tao_imr kill command to signal an otherwise unresponsive server.
      • New tao_imr link command to identify groups of POAs that share a server.
      • ImR is better able to avoid errantly starting multiple server instances
      • Addressed several memory leaks and other assorted defects
    • Added a new Client Strategy Factory option, -ORBDefaultSyncScope which takes the label "None", "Transport", "Server", or "Target" to define the sync scope to be used when a Messaging SyncScopePolicy is not in use.
    • Fix for extra CDR padding bytes following a request header when there are no IN or INOUT arguments in the request. This happened when a request had at least one OUT argument, and also had a service context that ended off a CDR alignment boundary. While this is not a problem for TAO-TAO messaging, some non-TAO servers will reject such requests with a MARSHAL exception. See bug 4141 for more information.
    • Improved recursive typecode handling in the IDL compiler
    • Support for using StringValue types in IDL
  27. Features added since TAO 2.0a

    Many features have been added to ACE and TAO since the release of TAO 2.0a. A comprehensive listing is available in the NEWS files of each of the major package root directories. See in particular summaries from the top of the file down to the ACE-6.0.4, TAO-2.0.4, or CIAO-1.0.4 releases.

    The following list provides some highlights.

    • Many performance improvements to the ACE/TAO core libraries.
      • Generated skeleton code presents a smaller footprint, saving between 10 and 60% depending on use.
      • There is now a TIME_POLICY strategy manager allowing for dynamic selection of either system time or highres time
      • ZIOP compressed data performance is improved
      • Generated ValueType OBV_* classes now provide a _copy_value() hook method for better duplication support.
      • Multiple retries on invocation failures is now configurable. This works in conjunction with fault tolerant services to allow for transparent selection of the backup server if the primary fails
      • Improved MIOP implementation to support message fragmentation.
      • Added OpenSSL configuration options SSLCipherList and SSLServerCipherOrder to the SSLIOP_Factory. This allows the SSL/TLS BEAST exploit to be mitigated.
      • Extended CosNotifyFilter::FilterFactory to allow removal of filters created by the factory.
    • A new Dynamic Thread Pool is available for non-RT ORBs and POAs. This allows for automatic spawning of threads at runtime to some configured maximum as well as the destruction of spawned threads as load is reduced. Multiple thread pool definitions can be supplied via service configuration directives, then used by the ORB or POA. POAs may also be supplied dynamic thread pool configuration through new policy objects. Dynamic thread pools may be configured with a minimum and maximum thread counts, and an idle timeout. WHen the configured ORB or POA is activated, the minimum number of threads are spawned. The thread pool grows to the maximum count as load increases, then shrinks back to the minimum as threads sit idle. POA thread pools also accept a configurable message queue limit, above which requests are rejected.
    • The Naming Service and Implementation repository are now Fult Tolerant, supporting a dual-redundant configuration which provides replication and seamless failover between primary and back up servers.
    • Fault Tolerance is available for Naming and Implementation Repository services. This makes use of shared persistent state and communication between a primary and backup instance. Clients make use of automatic retry to switch from a failed primary to a back up server without application intervention.
    • Implementation Repository now uses asynchronous messaging to improve efficiency under heavy use conditions.
    • Implementation Repository is now able to register and launch JacORB servers. Requires JacORB 3.3 or later
    • New ORB initialization arguments:
      • -ORBForwardOnExceptionLimit count supercedes -ORBForwardOnceOnException to accept a count of retries. Exception in this case is CommFail, Transient, ObjectNotExist, InvObjref, ReplyClosed
      • -ORBForwardDelay msecs
      • -ORBDynamicThreadPoolName name
    • New Client Strategy Factory options:
      • Client strategies -ORBWaitStrategy RW and -ORBTransportMuxStrategy Exclusive now work with AMI
      • -ORBCollocationStrategy best selects the best available strategy.
    • Other factory options
      • UIPMC transport -ORBPreferredInterfaces, -ORBListenOnAll
      • MIOP transport -ORBSendThrottling and -ORBEagerDequeueing
      See TAO/docs/options.html or the TAO Developer's Guide 2.2a for details about these new options.
    • IDL Compiler Improvments:
      • Fixed a bug related to component initialization.
      • Fixed a bug related to processing multiple files in a single execution.
  28. Important bug fixes since TAO 2.0a

    Many bugs have been fixed or work-arounds provided since TAO 2.0a. For more details, see the release announcements for the intervening DOC group beta kits (from 2.0.4 to 2.2.0), the ChangeLogs, and the DOC group Bugzilla bug database found at http://bugzilla.dre.vanderbilt.edu. A summary and selection of the more important fixes are listed below.

    • Fixed ACE bugs:
      • bug #897 Extend ACE_Sig_Handler to call handle_close (SIGNAL_MASK) on unregister signal
      • bug #1405 Race condition in ACE_Connector
      • bug #2368 Handle_close not called for event handlers register for signals
      • bug #3051 High_Res_Timer_Test fails within virtual machine
      • bug #3703 ACE_High_Res_Timer runs too slow, when compared to the standard system time function: ACE_OS::gettimeofday().
      • bug #3706 Locking strategy hard-coded for reactor timer queues
      • bug #3707 Reduce overhead for gettimeofday() policy in Timer_Queue
      • bug #3958 debian doesn't ship sslv2 anymore
      • bug #3994 Reduce condition code
      • bug #3996 Move ADBC to its own repository
      • bug #3999 Build ACE+TAO for ARM processor using cross compilation toolchain
      • bug #4002 MPC should always install .inl files
      • bug #4008 Service_Gestalt fails open_i() when loading statics only and a default svc.conf is not present
      • bug #4015 Dev_Poll_Reactor::resumeable_handler should return 1
      • bug #4019 Dev_Poll_Reactor::mask_ops_i should return -1 on error
      • bug #4020 Remove tandem nsk support
      • bug #4021 useless use of dynamic format in ACE_Thread_ID::to_string()
      • bug #4029 ACE_Cache_Map_Manager::find(const KEY&) compile error
      • bug #4055 ACE conditions with pthread and time shift fail
    • Fixed TAO bugs
      • Addressed several Coverity reported issues.
      • bug #1391 _copy_value() not implemented for valuetypes
      • bug #2241 Crash when specifying direct collocation with no direct collocation generated
      • bug #2460 Eliminate hand-crafting of code generated from .pidl files
      • bug #2623 Add ZIOP support to TAO
      • bug #2667 TAO/tests/Nested_Upcall_Crash failing for a long time now (Windows, mainly)
      • bug #3000 Handle leak upon oneway invocation with RW wait startegy
      • bug #3019 Make methods in TAO_ServantBase optional
      • bug #3384 Oneway_Timeouts test failure
      • bug #3531 client leader threads can't give up leadership via set_upcall_thread
      • bug #3608 CompressionFactory should store compressors
      • bug #3610 ZIOP has to be enabled by default
      • bug #3679 ORB should be able to use high res timers
      • bug #3698 Valgrind reports use of uninitialized value
      • bug #3763 alternative C++ mapping - std strings & vectors for IDL strings & sequences
      • bug #3768 Multi-threaded CORBA application can be deadlocked inside TAO
      • bug #3774 Disable upcalls on a per-thread basis
      • bug #3991 major footprint reduction possible in generate skeletons
      • bug #4004 Proposed new Run Length Encoding (RLE) compressor package for TAO
      • bug #4006 Notification service memory growth
      • bug #4009 problem with generating ciao executor
      • bug #4010 Wait_On_Read leaves socket unmonitored after oneway operation
      • bug #4022 SSLIOP enhancement needed to mitigate BEAST attack.
      • bug #4075 Not installing ObjRefTemplate library can lead to a deadlock
      • bug #4080 MIOP servants are still serialized when running in a thread pool
      • bug #4082 Any extraction to equivalent type
      • bug #4086 IDL compiler do not generate "set_attributes" if rw attributes in indirect supports interface
      • bug #4090 Problem generating ostream operator for enums
      • bug #4091 Implement Fault Tolerant Implementation Repository
      • bug #4092 Implement Fault Tolerance for Naming Service
      • bug #4093 Implement Dynamic Thread Pools in ORB
      • bug #4094 Managing Dynamic Thread Pools in POA
      • bug #4095 Provide Load Balancing in Naming Service
      • bug #4096 Enhanced TAO Invocation Retry Mechanism
      • bug #4099 TAO_Service_Type_Repository list_types leaks memory.
      • bug #4100 Several memory leaks in the Trader and fix its tests.
      • bug #4101 Extend TAO's Implementation Repository to allow it to manage JacORB application servers.
      • bug #4103 Bogus Timeouts for large payload RMIs
    • Fixed CIAO/DAnCE bugs:
      • bug #1716 Direct collocation and components do not mix.
      • bug #2530 Doubt about the need for dynamic servant activation
      • bug #3777 Investigate usage of inheritance of generated servants
      • bug #3987 cif common leaks exception
      • bug #4087 tao_idl3_to_idl2 handle mirror port improperly
      • bug #4089 DDS_Base_Connector_T.cpp seems to have a program flow error

[Top]

Porting Applications from TAO 2.0a to TAO 2.2a

MPC

  • No major porting issues.

ACE

  • No major porting issues.

TAO

  • No major porting issues.
[Top]

AIX

The AIX builds use the platform_macros.GNU and config.h files already set up for the AIX platform and compiler.

When using GNU Make that is part of AIX toolbox for Linux applications, it may be necessary to modify the file access permissions of the make executable to ensure the LIBPATH environment variable is propagated to make system properly. This can be done as follows:

chmod 755 /opt/freeware/bin/make

See this message for further information. Use version 3.80, or newer.

Files Used for AIX Builds
Buildplatform_macros.GNUconfig.h
AIX 5.3 with VA C++ 8platform_aix_ibm.GNU with templates=manualconfig-aix-5.x.h

[Top]

HP-UX

The HP-UX builds use the platform_macros.GNU and config.h files already set up for the HP-UX platform and compiler.

Files Used for HP-UX Builds

Buildplatform_macros.GNUconfig.h
HP-UX 11.31 with aCC 6.20 for ia64 (itanium)platform_hpux_aCC.GNUconfig-hpux-11.00.h

[Top]

Linux

The Linux builds use the platform_macros.GNU and config.h files already set up for the Linux platform and compiler.

Files Used for Linux Builds
Buildplatform_macros.GNUconfig.h
Fedora 12 with GCC 4.4.4platform_linux.GNUconfig-linux.h
Ubuntu 10.04 2 LTS with GCC 4.4.3 (Ubuntu 4.4.3-4ubuntu5)platform_linux.GNUconfig-linux.h
Ubuntu 12.04.2 LTS with GCC 4.6.3 (Ubuntu 4.6.3-1ubuntu5platform_linux.GNUconfig-linux.h
Red Hat Enterprise Server 5 with g++ 4.1.1 (Red Hat 4.1.1-52) for x86_64platform_linux.GNUconfig-linux.h
Red Hat Enterprise Server 6.2, 6.3 with g++ 4.4.6 for x86_64platform_linux.GNUconfig-linux.h

[Top]

MacOSX

The MacOSX builds use the platform_macros.GNU and config.h files already set up for the MacOSX platform and compiler.

Files Used for MacOS Builds
Buildplatform_macros.GNUconfig.h
OS X Lion with clang++ 3.0 (tags/Apple/clang-211.12) (based on LLVM 3.0svn)platform_macosx_lion.GNUconfig-macosx-lion.h
OS X Mavericks with clang++ 6.0 (tags/Apple/clang-600.0.51) (based on LLVM 3.5svn)platform_macosx_mavericks.GNUconfig-macosx-mavericks.h

[Top]

Real Time OS's

The Real Time OS builds use the platform_macros.GNU and config.h files developed for the specific platform and compiler.

Files Used for Real Time OS Builds
Buildplatform_macros.GNUconfig.h
LynxOS 5.0.0 with g++ 3.4.3platform_lynxos.GNUconfig-lynxos.h
QNX 6.3.2 with g++ 3.3.5 (qnx-nto)platform_qnx_rtp_gcc.GNUconfig-qnx-rtp.h
VxWorks 6.9 with g++ 4.3.3platform_vxworks.GNUconfig-vxworks.h

[Top]

Solaris

The Solaris builds use the platform_macros.GNU and config.h files already set up for the SunOS platform and compiler.

Files Used for SunOS Builds
Buildplatform_macros.GNUconfig.h
Solaris 10 with Sun C++ 5.9 Patch 124863-01 for sparcplatform_sunos5_sunc++.GNUconfig-sunos5.10.h
Solaris 11 with Sun C++ 5.10 Patch 128229-02 for x86platform_sunos5_sunc++.GNUconfig-sunos5.11.h

Sun C++ Notes

Due to the way that static construction works, it may be necessary to set the LD_BIND_NOW environment variable to a non-null value. If you are getting strange results during process startup, try setting this environment variable and running the process again.

Use the fast=1 instead of optimize=1 for optimizing with Sun compilers because it selects a combination of compilation options for optimum execution speed. Other optimization levels may reduce the footprint, but do not have a corresponding flag in ACE/TAO.

When using a Sun compiler greater than SunCC 5.5, that is, Sun Studio 9 or greater, on Sun OS 5.8, then certain OS patches are required. The patches and levels used at OCI are 109147-37 (-21 is probably adequate), 108434-18 and 108435-18 (earlier versions are not adequate).

[Top]

Windows

The Windows builds use the config.h file as shown below.

Files Used for Windows Builds
Buildconfig.h
Windows XP x64 with Visual C++ 2008 VC9config-win32.h
Windows 7 x64 with Visual C++ 2008 VC9config-win32.h
Windows Server 2003 with Visual C++ 2003 (VC7.1)config-win32.h
Windows Server 2008R2 with Visual C++ 2010 (VC10)config-win32.h

The following config.h file is used for all Windows nightly builds.

// contents of config.h
#define ACE_DISABLE_WIN32_ERROR_WINDOWS
#define ACE_DISABLE_WIN32_INCREASE_PRIORITY
#include "config-win32.h"

The first line disables the popup of error windows when running the automated tests. It is not normally needed for ordinary user programs. It would only be used if an automated build was being done.

The platform_macros.GNU file is not used for Windows platforms.


Windows Compile Notes

  • There are some warnings when compiling using Visual Studio 2005 - 2008 (VC8 - VC9).

  • If using MPC to generate build files, then by default qos and ssl, and any projects that depend on these libraries will not be generated. To enable these features, simply create a text file called ACE_wrappers\bin\MakeProjectCreator\config\default.features with the following contents.

    ssl = 1
    qos = 1
  • (VC 7.1 / .NET 2003 only) When building static libraries you may have to build twice. The first time will compile the IDL, and compile everything that didn't rely on IDL-generated files that don't exist. The second time will finish building files now that the IDL-generated files exist.

[Top]