diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md
new file mode 100644
index 000000000..c18754917
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/bug_report.md
@@ -0,0 +1,46 @@
+---
+name: Bug report
+about: Create a report to help us improve
+title: ''
+labels: ''
+assignees: ''
+
+---
+
+**Describe the bug**
+
+
+**To Reproduce**
+Steps to reproduce the behavior:
+1.
+2.
+3.
+4.
+
+**Expected behavior**
+
+
+**Screenshots**
+
+
+**Branch**
+
+
+**Eluna**
+- [ ] Enabled
+- [ ] Disabled
+
+**Script**
+
+
+**Crash**
+
+
+**Additional context**
+
+
+**HASH/COMMIT:**
+
+
+
diff --git a/.github/workflows/linux-build.yml b/.github/workflows/linux-build.yml
new file mode 100644
index 000000000..1903bc9dd
--- /dev/null
+++ b/.github/workflows/linux-build.yml
@@ -0,0 +1,65 @@
+
+name: linux build
+
+on:
+ push:
+ paths-ignore:
+ - '.github/ISSUE_TEMPLATE/**'
+ - '.github/ISSUE_TEMPLATE.md'
+ - '.github/PULL_REQUEST_TEMPLATE.md'
+ - 'sql/**'
+ - '.drone.yml'
+ - 'README.md'
+ - 'LICENSE'
+ - '.gitignore'
+ - 'CONTRIBUTING.md'
+
+ pull_request:
+ paths-ignore:
+ - '.github/ISSUE_TEMPLATE/**'
+ - '.github/ISSUE_TEMPLATE.md'
+ - '.github/PULL_REQUEST_TEMPLATE.md'
+ - 'sql/**'
+ - '.drone.yml'
+ - 'README.md'
+ - 'LICENSE'
+ - '.gitignore'
+ - 'CONTRIBUTING.md'
+
+
+# This is what will cancel the previous workflow
+concurrency:
+ group: ${{ github.workflow }}-${{ github.ref }}
+ cancel-in-progress: true
+
+jobs:
+ build:
+ runs-on: ${{ matrix.os }}
+ strategy:
+ #matrix declaration
+ matrix:
+ os: [ubuntu-latest]
+ compiler: [gcc, clang]
+
+ steps:
+
+ #git checkout
+ - uses: actions/checkout@v2
+
+ - name: ubuntu dependencies
+ #ubuntu dependencies
+ if: matrix.os == 'ubuntu-latest'
+ run: |
+ sudo apt-get -qq install libmysql++-dev libace-dev libtbb-dev
+ sudo apt-get -qq install cmake build-essential cppcheck git make libiberty-dev openssl libssl-dev
+
+ #build and install
+ #ubuntu
+ - name: ubuntu build & install
+ run: |
+ mkdir build
+ mkdir _install
+ cd build
+ cmake ../ -DCMAKE_INSTALL_PREFIX=../_install -DWITH_WARNINGS=0 -DUSE_EXTRACTORS=0 -DACE_USE_EXTERNAL=1 -DTBB_USE_EXTERNAL=1
+ make -j2
+ make install
diff --git a/.github/workflows/windows-build.yml b/.github/workflows/windows-build.yml
new file mode 100644
index 000000000..7439b6c39
--- /dev/null
+++ b/.github/workflows/windows-build.yml
@@ -0,0 +1,91 @@
+
+name: windows build
+
+on:
+ push:
+ paths-ignore:
+ - '.github/ISSUE_TEMPLATE/**'
+ - '.github/ISSUE_TEMPLATE.md'
+ - '.github/PULL_REQUEST_TEMPLATE.md'
+ - 'sql/**'
+ - '.drone.yml'
+ - 'README.md'
+ - 'LICENSE'
+ - '.gitignore'
+ - 'CONTRIBUTING.md'
+
+ pull_request:
+ paths-ignore:
+ - '.github/ISSUE_TEMPLATE/**'
+ - '.github/ISSUE_TEMPLATE.md'
+ - '.github/PULL_REQUEST_TEMPLATE.md'
+ - 'sql/**'
+ - '.drone.yml'
+ - 'README.md'
+ - 'LICENSE'
+ - '.gitignore'
+ - 'CONTRIBUTING.md'
+
+# This is what will cancel the previous workflow
+concurrency:
+ group: ${{ github.workflow }}-${{ github.ref }}
+ cancel-in-progress: true
+
+jobs:
+ build:
+ runs-on: ${{ matrix.os }}
+ strategy:
+ #matrix declaration
+ matrix:
+ include:
+ - os: windows-2019
+
+ steps:
+
+ #git checkout
+ - uses: actions/checkout@v2
+
+ #windows dependencies
+ - name: windows dependencies
+ #Sets versions for ACE/TBB
+ env:
+ ACE_VERSION: 6.5.11
+ ACE_VERSION2: 6_5_11
+ TBB_VERSION: 2020.3
+
+ run: |
+ #directory variables
+ export ACE_ROOT=$GITHUB_WORKSPACE/ACE_wrappers
+ export TBB_ROOT_DIR=$GITHUB_WORKSPACE/tbb
+ #wget
+ choco install -y wget --version 1.20
+ #ACE package download
+ wget http://github.com/DOCGroup/ACE_TAO/releases/download/ACE%2BTAO-$ACE_VERSION2/ACE-$ACE_VERSION.zip
+ unzip ACE-$ACE_VERSION.zip
+ rm ACE-$ACE_VERSION.zip
+ #configuration of ACE header
+ echo "#include \"ace/config-win32.h\"" >> $ACE_ROOT/ace/config.h
+ #TBB package download
+ wget https://github.com/oneapi-src/oneTBB/releases/download/v$TBB_VERSION/tbb-$TBB_VERSION-win.zip
+ unzip tbb-$TBB_VERSION-win.zip
+ rm tbb-$TBB_VERSION-win.zip
+ #openssl
+ choco install -y openssl --version=1.1.1.500
+ #git bash shell
+ shell: bash
+
+ #build and install
+ #windows
+ - name: windows build & install
+ run: |
+ #directory variables
+ export ACE_ROOT=$GITHUB_WORKSPACE/ACE_wrappers
+ cd $GITHUB_WORKSPACE/ACE_wrappers
+ /c/Program\ Files\ \(x86\)/Microsoft\ Visual\ Studio/2019/Enterprise/MSBuild/Current/Bin/MSBuild.exe "ACE_wrappers_vs2019.sln" //p:Configuration=Release //p:Platform=x64 //t:ACE //m:2
+ cd $GITHUB_WORKSPACE
+ mkdir build
+ cd build
+ cmake -D TBB_ROOT_DIR=$GITHUB_WORKSPACE/tbb -DWITH_WARNINGS=0 -DUSE_EXTRACTORS=0 -G "Visual Studio 16 2019" -A x64 ..
+ /c/Program\ Files\ \(x86\)/Microsoft\ Visual\ Studio/2019/Enterprise/MSBuild/Current/Bin/MSBuild.exe "HellfireCore.sln" //p:Platform=x64 //p:Configuration=Release //m:2
+ #git bash shell
+ shell: bash
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 000000000..c43320101
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,117 @@
+#
+# NOTE! Don't add files that are generated in specific
+# subdirectories here. Add them in the ".gitignore" file
+# in that subdirectory instead.
+#
+# NOTE! Please use 'git-ls-files -i --exclude-standard'
+# command after changing this file, to see if there are
+# any tracked files which get ignored after the change.
+#
+# Normal rules
+#
+.*
+*.o
+*.o.*
+
+*.so
+*.so.dbg
+*.bin
+*.gz
+
+# Visual studio solution files
+*.tlog
+*.vcxproj
+*.vcxproj.filters
+*.sln
+*.db
+*.opendb
+*.exp
+*.res
+CMakeSettings.json
+/out/
+
+# CLion files
+cmake-build-debug
+
+#
+# Top-level generic files
+#
+bin
+build
+tags
+TAGS
+!.gitignore
+!.gitattributes
+
+#
+# Build generated files
+#
+autom4te.cache
+
+#
+# Editors / debuggers / other output files
+#
+*~
+*.bak
+*.orig
+*.patch
+callgrind.out.*
+
+#
+# Git stuff
+#
+# stgit directories
+patches-*
+
+#
+# Github stuff
+#
+!.github/
+
+#
+# VS binaries output
+#
+bin/*
+win/*
+
+#
+# VS temporary files
+#
+*.ncb
+*.suo
+*.sdf
+*.opensdf
+*.sln.cache
+*.vsp
+ipch
+*.user
+
+
+#
+# CMake temporary files
+#
+CMakeFiles
+CMakeCache.txt
+cmake_install.cmake
+
+#
+# OS specific
+#
+# MacOS
+.DS_Store
+
+# Nostalrius
+newsletter
+patch
+php
+
+sql/migrations/*.py
+sql/migrations/characters_db_updates.sql
+sql/migrations/logon_db_updates.sql
+sql/migrations/logs_db_updates.sql
+sql/migrations/world_db_updates.sql
+
+# Generating by CMake
+revision.h
+migrations_list.h
+Progression.h
diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100644
index 000000000..bf85c720b
--- /dev/null
+++ b/CMakeLists.txt
@@ -0,0 +1,540 @@
+# Copyright (C) 2005-2011 MaNGOS
+# Copyright (C) 2009-2011 MaNGOSZero
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+project(HellfireCore)
+
+# CMake policies
+cmake_minimum_required(VERSION 3.1...3.20)
+
+# Allow -DACE_ROOT, -DTBB_ROOT, etc.
+if(${CMAKE_VERSION} VERSION_GREATER "3.11")
+ cmake_policy(SET CMP0074 NEW)
+endif()
+
+set(CMAKE_MODULE_PATH
+ ${CMAKE_MODULE_PATH}
+ ${CMAKE_SOURCE_DIR}/cmake
+)
+
+set(SUPPORTED_CLIENT_BUILD "CLIENT_BUILD_2_4_3" CACHE STRING "Client version the core will support")
+option(USE_STD_MALLOC "Use standard malloc instead of TBB" OFF)
+option(TBB_DEBUG "Use TBB debug librairies" OFF)
+option(ACE_USE_EXTERNAL "Use external ACE" 1)
+option(USE_ANTICHEAT "Use anticheat" OFF)
+option(USE_SCRIPTS "Compile scripts" ON)
+option(USE_EXTRACTORS "Compile extractors" OFF)
+option(USE_LIBCURL "Compile with libcurl for email support" OFF)
+option(USING_CM_MAP "Use cmangos map" OFF)
+option(USING_VM_MAP "Use vmangos map" OFF)
+
+if(UNIX)
+ option(DEBUG_SYMBOLS "Include Debug Symbols" ON)
+endif()
+
+find_package(PCHSupport)
+if(${CMAKE_VERSION} VERSION_GREATER_EQUAL "3.16")
+ option(USE_PCH "Use precompiled headers" ON)
+endif()
+
+if(PCHSupport_FOUND AND (${CMAKE_VERSION} VERSION_GREATER_EQUAL "3.16"))
+ if(MSVC)
+ option(USE_PCH_OLD "Use old precompiled headers implementation" ON)
+ else()
+ option(USE_PCH_OLD "Use old precompiled headers implementation" OFF)
+ endif()
+else()
+ unset(USE_PCH_OLD CACHE)
+endif()
+
+if(USE_LIBCURL)
+ find_package(CURL REQUIRED)
+ #add_definitions(-D_HAS_AUTO_PTR_ETC) # for VS2017 ACE support, won't do any harm to other compilers
+ #set(CMAKE_CXX_STANDARD 17)
+ #set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /std:c++17")
+endif()
+
+# Force out-of-source build
+string(COMPARE EQUAL "${CMAKE_SOURCE_DIR}" "${CMAKE_BINARY_DIR}" BUILDING_IN_SOURCE)
+if(BUILDING_IN_SOURCE)
+ message(FATAL_ERROR
+ "This project requires an out of source build. Remove the file 'CMakeCache.txt' found in this directory before continuing, create a separate build directory and run 'cmake [options]' from there."
+ )
+endif()
+
+if(WIN32)
+ if(MSVC)
+ if(MSVC_VERSION LESS 1900)
+ message(FATAL_ERROR "Only Visual Studio 2015 or newer is supported")
+ endif()
+ endif()
+
+ # Added by Giperion, in WIN32 output all compiled files in one directory
+ set( CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/bin )
+ set( CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/lib )
+ # Allow creating folders in solution
+ set_property(GLOBAL PROPERTY USE_FOLDERS ON)
+endif()
+
+find_package(Platform REQUIRED)
+find_package(Git)
+
+# Output description of this script
+message(STATUS
+ "\nThis script builds the MaNGOS server.
+ Options that can be used in order to configure the process:
+ PREFIX: Path where the server should be installed to
+ USE_PCH: Use precompiled headers
+ To set an option simply type -D
+
Because older
+platforms that are not maintained tend to fall into a broken state and
+clutter the ACE sources with code that is no longer used, the development
+team reserves the right to remove ACE configuration files and source code
+specific to inactive platform configurations that are not
+listed on the scoreboard.
+
The table below summarizes each group's role and where you can get more
+detailed information. For information on TAO's platform coverage and
+support, please also see TAO's install
+document.
+
+
+
Groups Involved in ACE Development and Support
+
+
+
Group
+
Platforms
+
For more information
+
+
+
+
DOC Group
+
Windows 2000, XP (MSVC++ 7.1, 8, 9, and 10);
+ many versions of Linux/Intel (many compilers).
+
Maintains ACE on many platforms required for their ACE and
+ TAO service offerings. We support AIX,
+ Embarcadero C++ Builder,
+ Windows CE, MinGW, Microsoft Visual C++, GCC,
+ Cygwin, VxWorks 6.x (kernel and rtp), OpenVMS on IA64,
+ BlueCAT Linux, RedHat Linux, Fedora, MacOSX, Solaris,
+ Tru64, SuSE Linux on Alpha/IA32/EM64T/IA64, RTEMS, QNX, LynxOS,
+ HPUX on IA64, and Android.
+ The Intel C++ compiler is supported on
+ Windows 32/64bit, Linux IA32/EM64T/IA64, MacOSX.
+
Responsible for continued maintenance and testing of platforms
+ to which ACE has been ported, but aren't supported by the
+ above groups. These include
+ Digital UNIX (Compaq Tru64) 4.0 and 5.0;
+ IRIX 6.x; UnixWare 7.1.0;
+ Linux on PPC; OpenMVS;
+ Tandem; SCO; FreeBSD; NetBSD; OpenBSD;
+ Macintosh OS X; OS/9; PharLap ETS 13;
+ QNX RTP and Neutrino 2.0; Interix (Windows Services for Unix)
+
+
+
Not maintained
+
The following platforms have been ported to in the past but are
+ no longer maintained and may be removed from ACE at any time.
+ If you want to have support for these environments contact one
+ of the commercial support organisations. The platforms include:
+ Chorus; DG/UX; HP-UX 9, 10 and 11.00; pSOS;
+ SunOS 4.x and Solaris with SunC++ 4.x; VxWorks 5.4 and earlier;
+ Microsoft Visual C++ 5, 6, and 7.0; Borland C++ Builder 4, 5, 6, and 2006.
+ For up-to-date listings on platform that are deprecated and pending
+ removal from ACE, please see the NEWS file.
+
+
+
+
+
Although the DOC group has provided outstanding support for ACE
+over the years, ACE's success has greatly increased the amount of
+effort required to keep up with its maintenance, answer users'
+questions, and give design guidance. Riverace offers world-class
+commercial services to support ACE users. OCI, PrismTech, and Remedy
+offer similar services for TAO, allowing the DOC group's primary focus
+to shift back to their main goal: research. The DOC group is
+fundamentally focused on (and funded
+by) advanced R&D projects. The group continues to be
+intimately involved in ACE+TAO development and maintenance, but with
+revised priorities for maintenance. The bug
+fixing policies followed by the DOC group are designed to strike a
+balance between their many research
+projects and their commitment to the ACE+TAO user
+community. Naturally, we will be happy to accept well-tested
+patches from the ACE+TAO user community for any platforms that aren't
+supported by the DOC group, Riverace, OCI or Remedy IT.
ACE (as well as TAO and CIAO) use MPC
+(MakeProjectCreator) to generate files used by all supported build
+tools (such as GNUmakefiles for UNIX based platforms, sln and vcproj
+files for VC71/VC8 and Embarcadero makefiles) on various platforms. To
+help new users to bootstrap quickly the release bundles of ACE (as
+well as TAO) include all needed files to use the build
+instructions in this document.
+
+
+
+If it is necessary to generate
+files for build tools for other compilers, one must
+run MPC to generate the
+appropriate files. Please see USAGE, README, and README for ACE files for
+details. The options that have been used to generate the above build
+files can be found in
+global.features file.
+
Many features in ACE can be modified by defining some macros in
+ $ACE_ROOT/ace/config.h. These macros should
+ always appear before including
+ your platform specific config file.
+
However, if you want to undefine/redefine macros defined in the
+ platform specific config file, these #undef should
+ come after the config file.
+
If you're planning to build ACE on multiple platforms, you may
+ want to consider cloning the source tree
+ before you start.
+Here's what you need to do to build ACE using GNU Make and ACE's traditional
+per-platform configuration method:
+
+
+
Install GNU make
+ 3.79.1 or greater on your system (available via http
+ anonymous ftp from ftp.gnu.org in the
+ pub/gnu/make/ directory).
+ You must use GNU make when using ACE's traditional
+ per-platform configuration method or ACE won't compile.
+
+
Add an environment variable called ACE_ROOT that contains the
+ name of the root of the directory where you keep the ACE wrapper
+ source tree. The ACE recursive Makefile scheme needs this information.
+ There are several ways to set the ACE_ROOT variable. For example:
+
+ BASH or Bourne Shell:
+ export ACE_ROOT=/home/cs/faculty/schmidt/ACE_wrappers
+
+
+
+ If you're building a number of versions of ACE, however, (e.g., for
+ different OS platforms or for different releases of ACE) you might use
+ the following approach (assuming TCSH/CSH):
+
+ setenv ACE_ROOT $cwd
+
+
+
Create a configuration file, $ACE_ROOT/ace/config.h,
+ that includes the appropriate platform/compiler-specific
+ header configurations from the ACE source directory. For example:
+
+#include "ace/config-linux.h"
+
+ The platform/compiler-specific configuration file
+ contains the #defines that are used throughout ACE to indicate
+ which features your system supports. See the
+ $ACE_ROOT/ace/README file for a description of these
+ macro settings. If you desire to add some site-specific or build-specific
+ changes, you can add them to your config.h file; place them
+ before the inclusion of the platform-specific
+ header file.
+
+ There are config files for most versions of UNIX. If there
+ isn't a version of this file that matches your
+ platform/compiler, you'll need to make one. Please send email
+ to the ace-users list
+ if you get it working so it can be added to the master ACE
+ release.
+
+
+
Create a build configuration file,
+ $ACE_ROOT/include/makeinclude/platform_macros.GNU,
+ that contains the appropriate platform/compiler-specific
+ Makefile configurations, e.g.,
+
+ This file contains the compiler and Makefile directives that are
+ platform/compiler-specific. If you'd like to add make options, you
+ can add them before including the platform-specific configuration.
+ NOTE! There really is not a # character before 'include' in the
+ platform_macros.GNU file. # is a comment character.
+
+
If you wish to install ACE (using "make install"), set the
+ installation prefix in platform_macros.GNU.
+
+INSTALL_PREFIX = /usr/local
+
+ Headers will be installed to $INSTALL_PREFIX/include, executables to
+ $INSTALL_PREFIX/bin, documentation and build system files to
+ $INSTALL_PREFIX/share and libraries to $INSTALL_PREFIX/lib. The library
+ directory can be customized by setting INSTALL_LIB (for example,
+ INSTALL_LIB=lib64). With INSTALL_PREFIX set, RPATH will be enabled for
+ all executables and shared libraries. To disable RPATH (for example,
+ if $INSTALL_PREFIX/$INSTALL_LIB is already a system-known location for
+ shared libraries such as those listed in /etc/ld.so.conf), set the make
+ macro install_rpath to 0 by adding install_rpath=0 to platform_macros.GNU.
+
+
Note that because ACE builds shared libraries, you'll need to set
+ LD_LIBRARY_PATH (or equivalent for your platform) to the directory
+ where binary version of the ACE library is built into. For example,
+ you probably want to do something like the following:
+
When all this is done, hopefully all you'll need to do is type:
+
+ % make
+ at the ACE_ROOT directory. This will build the ACE
+ library, tests, the examples, and the sample applications.
+ Building the entire ACE release can take a long time and consume
+ lots of disk space, however. Therefore, you might consider
+ cd'ing into the $ACE_ROOT/ace directory and
+ running make there to build just the ACE library.
+ As a sanity check, you might also want to build and run the
+ automated "one-button" tests in
+ $ACE_ROOT/tests. Finally, if you're also
+ planning on building TAO, you
+ should build the gperf
+ perfect hash function generator application in
+ $ACE_ROOT/apps/gperf.
+
+
If you've set the INSTALL_PREFIX before building, now run
+
% make install
+
+
If you need to regenerate the ace/Svc_Conf_y.cpp file,
+ you'll need to
+ get GNU Bison.
+ However, you should rarely, if ever, need to do this.
+
This section contains instructions for building ACE on Microsoft
+Windows with a variety of compilers and development environments.
+
+
First, if you are upgrading from an older release, the recommended practice
+is to start with a clean directory. Unpacking the newer release over an older
+one will not clean up any old files, and trying to use the environment's
+"Clean" command will probably not account for all existing files.
+
+
For using MPC and our perl based test framework we recommend
+our windows users to use Active
+State Perl.
ACE contains project files for
+Visual Studio 2009 (VC9), and Visual Studio 2010 (VC10).
+Visual Studio 2005 supports building for
+desktop/server Windows as well as for Windows CE and Windows Mobile. Since
+not all users will be interested in the CE/Mobile capability, these platforms
+have separate solution and project files from the desktop/server Windows.
+Furthermore, VC7.1, VC8, VC9, and 10 use different file formats but the same file
+suffixes (.sln and .vcproj). To support both
+environments, ACE supplies files with different names for the different
+development and target platforms. The platform/name mapping is shown below.
+All solution files have a .sln suffix and all project files have
+a .vcproj suffix.
+
+
+The free Visual C++ 2008 Express Edition will work in place of the traditional
+Visual Studio editions. All the other notes in this document
+that are for VC8 / VC9 also apply to the express edition. MFC, 64-bit, and
+CE/mobile options are not available with the express edition. 64-bit binaries
+can be built with the compiler and linker included in the Windows SDK, using nmake as the build system (generate nmake makefiles with mwc.pl -type nmake).
+
+
+
Mapping of Platform to Solution/Project File Name
+
+
+
Platform
+
File Name
+
+
+
+
VC7.1
+
name_vc71
+
+
+
+
VC8 for desktop/server
+
name_vc8
+
+
+
+
VC8 for Windows CE/Mobile
+
name_WinCE
+
+
+
+
VC9 for desktop/server
+
name_vc9
+
+
+
+
VC10 for desktop/server
+
name_vc10
+
+
+
+
+
The VC++ compiler and linker can now be invoked from GNU make just like
+most UNIX builds. Follow the instructions in the
+ACE/GNU Configuration sections and see the additional information in the
+comments of
+platform_win32_msvc.GNU.
+
+
+
If you happen to open a VC7.1 file from within VC8, it will offer to convert
+the file to the newer format for you. With the stock VC8, do not do this;
+Visual Studio will crash while attempting to convert the large
+solution and project files to build ACE. Simply refuse the conversion and
+open the file with the correct format. Note that Microsoft has fixed this
+problem. See
+
+https://msdn.microsoft.com/visualc/downloads/default.aspx for information.
+
+
+
+
Uncompress the ACE distribution into a directory, where it will
+ create a ACE_wrappers directory containing the distribution. The
+ ACE_wrappers directory will be referred to as ACE_ROOT in the
+ following steps -- so ACE_ROOT\ace would be C:\ACE_wrappers\ace if
+ you uncompressed into the root directory.
+
+
Create a file called config.h in the ACE_ROOT\ace
+ directory that contains:
+
+ #include "ace/config-win32.h"
+
+
+
The static, DLL and MFC library builds are kept in
+ different workspaces. Files with names *_Static contain project
+ files for static builds. Workspaces for static and DLL builds will be
+ available through the stock release at DOC group's website. The
+ workspaces for MFC are not available and have to be generated using
+ MPC. Please see MPC's README for
+ details.
+
Now load the solution file for ACE (ACE_ROOT/ACE.sln).
+
+
Make sure you are building the configuration (i.e, Debug/Release)
+ the one you'll use (for example, the debug tests need the debug
+ version of ACE, and so on). All these different configurations are
+ provided for your convenience. You can either adopt the scheme to
+ build your applications with different configurations, or use
+ ace/config.h to tweak with the default settings on
+ NT. Note: If you use the dynamic libraries,
+ make sure you include ACE_ROOT\lib in your PATH whenever you run
+ programs that uses ACE. Otherwise you may experience problems
+ finding ace.dll or aced.dll.
+
+
To use ACE with MFC libraries, also add the following to
+ your config.h file. Notice that if you want to
+ spawn a new thread with CWinThread, make sure you spawn the
+ thread with THR_USE_AFX flag set.
+
+ #define ACE_HAS_MFC 1
+
+ By default, all of the ACE projects use the DLL versions of the
+ MSVC run-time libraries. You can still choose use the static (LIB)
+ versions of ACE libraries regardless of run-time libraries. The
+ reason we chose to link only the dynamic run-time library is that
+ almost every NT box has these library installed and to save disk
+ space. If you prefer to link MFC as a static library into ACE, you
+ can do this by defining ACE_USES_STATIC_MFC in your
+ config.h file. However, if you would like to link
+ everything (including the MSVC run-time libraries) statically,
+ you'll need to modify the project files in ACE yourself.
+
Static version of ACE libraries are built with
+ ACE_AS_STATIC_LIBS defined. This macro should
+ also be used in application projects that link to static ACE
+ libraries
+
+ Optionally you can also add the line
+
+ #define ACE_NO_INLINE
+
+ before the #include statement in ACE_ROOT\ace\config.h to disable
+ inline function and reduce the size of static libraries (and your
+ executables.)
+
+
ACE DLL and LIB naming scheme:
+
+ We use the following rules to name the DLL and LIB files in ACE
+ when using MSVC.
+
+ "Library/DLL name" + (Is static library ? "s" :
+ "") + (Is Debugging enable ? "d" : "")
+ + {".dll"|".lib"}
+
+
+
+
More information for ACE/TAO on MSVC can be found
+here. The doxygen version of this
+document is available under Related Topics in the ACE Library.
+
+ACE TESTS
+
+The tests are located in ACE_ROOT\tests. There is also a solution in
+that directory to build all the tests (tests.sln)
+
+Once you build all the tests (Batch Build works well for this), you
+can run perl script run_test.pl in the
+tests directory to try all the tests.
+
+If you are building for a machine without a network card, you may want
+to check here first.
+
+
+
Uncompress the ACE distribution into a directory, where it will
+ create an
+ ACE_wrappers directory containing the source. The ACE_wrappers
+ directory will be referred to as ACE_ROOT in the following steps -- so
+ ACE_ROOT\ace would be C:\ACE_wrappers\ace when you uncompressed into the
+ root directory.
+
+
Create a file called config.h in the ACE_ROOT\ace
+ directory that contains at least:
+
+ #include "ace/config-win32.h"
+
+
Open a RAD Studio Command Prompt.
+
+
Set the ACE_ROOT environment variable to point to the ACE_wrappers
+ directory. For example:
+
+ set ACE_ROOT=C:\ACE_wrappers
+
+
Add ACE_wrappers\lib and ACE_wrappers\bin to the PATH environment variable:
+
+ set PATH=%ACE_ROOT%\lib;%ACE_ROOT%\bin;%PATH%
+
+
Change to the ACE_ROOT\ace directory.
+
+ cd %ACE_ROOT%\ace
+
+
Generate the bmake makefiles using MPC. Use the bmake project type for C++ Builder:
+
+ %ACE_ROOT%\bin\mwc.pl -type bmake
+
+
You can build several different versions of ACE by setting the following optional environment
+ variables before you run make:
+
+ Set the environment variable below to build a debug version of ACE
+ set DEBUG=1
+
+ Set the environment variable below to build a unicode version of ACE
+ set UNICODE=1
+
+ Set the environment variable below to build a version of ACE with
+ Codeguard support. Should only be used when DEBUG is also set
+ set CODEGUARD=1
+
+ By default we are using the clang based compilers. At the moment you
+ want to compile using the old bcc32 compiler set the CLASIC environment variable
+ set CLASSIC=1
+
+ Set the environment variable below to build a version of ACE optimized
+ for a certain CPU. For this there are special compiler flags
+ (-3/-4/-5/-6), see the Embarcadero help for more info.
+ set CPU_FLAG=-6
+
+ You can then start the build with the command
+ make -f Makefile.bmak all
+
+ You may also enable the options by passing them as command line options to make, for example:
+ make -f Makefile.bmak -DDEBUG all
+
+
Build ACE by doing:
+
+ make -f Makefile.bmak all
+
+
+
+
+
+Note that when you run make in a sub directory you give make -f Makefile.bmak all. The all is needed to make sure the complete project is build.
+
+Before you can build the tests you need to build the protocols directory.
+Change the directory to ACE_ROOT\protocols and start:
+
+%ACE_ROOT%\bin\mwc.pl -type bmake
+make -f Makefile.bmak all
+
+
+The tests are located in ACE_ROOT\tests, change to this directory.
+You build then the tests with the following commands:
+
+%ACE_ROOT%\bin\mwc.pl -type bmake
+make -f Makefile.bmak all
+
+
+Once you build all the tests, you can run the automated test script using:
+
perl run_test.pl
in the
+tests directory to try all the tests. You need to make
+sure the ACE bin and lib directory (in this case
+%ACE_ROOT%\bin and %ACE_ROOT%\lib)
+are on the path before you try to run the tests. If your executables are
+compiled into a subdirectory, add -ExeSubDir subdirname to the
+command.
+If you are building for a machine without a network card, you may want
+to check here first.
+
+
+Building and installing ACE on MinGW
+uses a mix of a UNIX building process and
+Win32 configuration files.
+Also, as MinGW uses GNU g++, you may want to take
+a look at the Compiling ACE with GNU g++ section.
+
+
+You will need the MinGW build tools and libraries, downloable from
+http://www.mingw.org.
+
+
+For our build we require the packages
+MinGW and MSYS.
+
+
+
+
Install the MinGW tools (including the MinGW Development toolkit) into a common directory, say c:/mingw.
+
+
+
Install the MSYS tools into a common directory, say c:/msys.
+
+
+
Open a MSYS shell. Set your PATH environment variable so
+ your MinGW's bin directory is first:
+
+
% export PATH=/c/mingw/bin:$PATH
+
+
+
Add an ACE_ROOT environment variable pointing to the
+ root of your ACE wrappers source tree:
+
+
% export ACE_ROOT=/c/work/mingw/ACE_wrappers
+
+
+ From now on, we will refer to the root directory of the ACE
+ source tree as $ACE_ROOT.
+
+
+
Create a file called config.h in the
+ $ACE_ROOT/ace directory that contains:
+
+
#include "ace/config-win32.h"
+
+
+
Create a file called platform_macros.GNU in the
+ $ACE_ROOT/include/makeinclude directory containing:
+
+
include $(ACE_ROOT)/include/makeinclude/platform_mingw32.GNU
+
+
+ In the above text, don't replace $(ACE_ROOT) with the
+ actual directory, GNU make will take the value from the
+ environment variable you defined previously.
+
+
+ If you lack Winsock 2, add the line
+
+
winsock2 = 0
+
+
+ before the previous one.
+
+
+
+ If you want to install ACE (using "make install") and want all the .pc files generated,
+ set the installation prefix in platform_macros.GNU.
+
INSTALL_PREFIX=/c/ACE
+
+ Headers will be installed to $INSTALL_PREFIX/include, documentation and
+ build system files to $INSTALL_PREFIX/share and libraries to $INSTALL_PREFIX/lib. With INSTALL_PREFIX set, RPATH will be enabled.
+ To disable RPATH (for example, if $INSTALL_PREFIX/$INSTALL_LIB is already
+ a system-known location for shared libraries), set the make macro
+ install_rpath to 0 by adding install_rpath=0 to platform_macros.GNU.
+
+
+
+
In the MSYS shell, change to the $ACE_ROOT/ace directory and
+ run make:
+
+
% cd $ACE_ROOT/ace
+ % make
+
+
+
+ This should create libACE.dll (the Win32 shared library) and
+ libACE.dll.a (the Win32 import library for the DLL).
+ Note that the name for the ACE DLL follows the MinGW convention, which itself
+ resembles UNIX.
+
+
+ If you want static libs also, you may run:
+
+
% make static_libs_only=1
+
+
+
Run make install:
+
+
% make install
+
+
+ This should create ACE.pc to use with pkg-config.
+
+If you are building for a machine without a network card, you may want
+to check here first.
+
+
+Building and installing ACE on Cygwin
+uses the UNIX building process.
+Also, as Cygwin uses GNU g++, you may want to take
+a look at the Compiling ACE with GNU g++ section.
+
+
+You will need the Cygwin build tools and libraries, downloable from
+http://www.cygwin.com.
+For our build we require the following packages besides the packages the
+setup selects by default:
+
+
Open a Cygwin shell. Set your PATH environment variable so
+ your Cygwin bin directory is first:
+
+
% export PATH=//c/cygwin/bin:$PATH
+
+
+ or
+
+
% export PATH=/cygdrive/c/cygwin/bin:$PATH
+
+
+
+ Note Cygwin uses ``/'' as directory separator,
+ and ``//X'' as a notation for Win32 drive X.
+ Note also that you can't use ``c:/cygwin/bin''
+ because, for Cygwin,
+ ``:'' is path separator character, as in UNIX.
+
+
+
Add an ACE_ROOT environment variable pointing to the
+ root of your ACE wrappers source tree (in this example c:/work/cygwin/ACE_wrappers):
+
+
+ Note here you can't use the ``//X'' Cygwin
+ notation as this is seen by Cygwin's compiler and it doesn't
+ support that (it does support ``/'' as directory
+ separator however).
+
+
+ From now on, we will refer to the root directory of the ACE
+ source tree as $ACE_ROOT.
+
+
+
Create a file called config.h in the
+ $ACE_ROOT/ace directory that contains:
+
+
#include "ace/config-cygwin32.h"
+
+
+
Create a file called platform_macros.GNU in the
+ $ACE_ROOT/include/makeinclude directory containing:
+
+
include $(ACE_ROOT)/include/makeinclude/platform_cygwin32.GNU
+
+
+ In the above text, don't replace $(ACE_ROOT) with the
+ actual directory, GNU make will take the value from the
+ environment variable you defined previously.
+
+
On the Cygwin shell, change to the $ACE_ROOT/ace directory and
+ run make:
+
+
% cd $ACE_ROOT/ace
+ % make
+
+
+
+ This should create libACE.dll (the Win32 shared library) and
+ libACE.dll.a (the Win32 import library for the DLL).
+ Note the name for the ACE DLL on Cygwin follows the UNIX convention.
+
include
+$(ACE_ROOT)/include/makeinclude/platform_win32_interix.GNU
+
for your platform_macros.GNU file.
+
ACE should build fine with just 'make', the only other option tried thus far is
+'make static_libs_only=1' which also works. Any
+other options may not work.
+
ACE TESTS
+
The tests are located in $ACE_ROOT/tests. After building the library, you can
+change to that directory and run make:
+
% cd $ACE_ROOT/tests % make
+
Once you build all the tests, you can run run_test.pl in the tests directory to try all the tests:
+For the most part, you should be able to follow the instructions above
+to build ACE and applications that use it. Start with the
+Unix instructions above to build ACE and the
+applications that use it. Please see below for more information on
+building ACE on NT hosts for VxWorks targets.
VxWorks builds are done with a cross compiler, i.e., the compiles
+ are done on a workstation creating object modules which are
+ downloaded and loaded into the VxWorks target system.
+
C++ object modules must be post-processed by a VxWorks
+ utility called "munch" to set up calls to static constructors and destructors.
+ ACE integrates the makefile includes/rules files
+ distributed with VxWorks to achieve maximum compatibility and reuse the target
+ specifications and buildcommands defined by Windriver itself.
+ The original ACE support for VxWorks included a perl script called
+ $ACE_ROOT/bin/ace_ld,
+ which was called from the Makefiles, replacing
+ the traditional ld step. Although this script is currently still
+ available it is not used anymore.
+ You must have perl installed to use ace_ld. If perl is not on your path, you'll
+ have to set PERL_PATH to the full path (including
+ perl.exe), either in your
+ $(ACE_ROOT)/include/makeinclude/platform_macros.GNU
+ or in your environment.
+
Wind River provides GCC/G++ cross-compilers for the
+ supported target platforms. The executables are named cc<target>
+ and g++<target>; for example, ccppc and g++cpp for PowerPC
+ targets.
+
+
+You'll have to let ACE know the target type at compile time. There
+are several ways to do this; please see the
+$ACE_ROOT/include/makeinclude/platform_vxworks5.5.x.GNU
+platform file for detailed information.
+
+The VxWorks platform_vxworks*.GNU files are set up so that shared
+libraries are not built on VxWorks, by default. Only static
+libraries, with .a extension, are built. Therefore, it's not
+necessary to set the LD_LIBRARY_PATH environment variable on your host
+system when building for VxWorks targets. Please note, however, if
+you use TAO on VxWorks that you will need to set your LD_LIBRARY_PATH
+to find the TAO IDL compiler libraries (installed in the ace
+directory) on the host.
#define INCLUDE_CPLUS /* include C++ support */
+#define INCLUDE_CPLUS_IOSTREAMS /* include iostreams classes */
+#define INCLUDE_POSIX_ALL /* include all available POSIX functions */
+
+
+For completeness, here are the non-default #defines that
+we used for VxWorks 5.3.1/g++ 2.7.2:
+
+
#define INCLUDE_CPLUS /* include C++ support */
+#define INCLUDE_CPLUS_IOSTREAMS /* include iostreams classes */
+#define INCLUDE_CONFIGURATION_5_2 /* pre-tornado tools */
+#define INCLUDE_DEBUG /* pre-tornado debugging */
+#define INCLUDE_LOADER /* object module loading */
+#define INCLUDE_NET_SYM_TBL /* load symbol table from network */
+#define INCLUDE_SYM_TBL_SYNC /* synchronize host and target symbol tables */
+#define INCLUDE_NFS /* nfs package */
+#define INCLUDE_PING /* ping() utility */
+#define INCLUDE_POSIX_ALL /* include all available POSIX functions */
+#define INCLUDE_RDB /* remote debugging package */
+#define INCLUDE_RLOGIN /* remote login */
+#define INCLUDE_RPC /* rpc package */
+#define INCLUDE_SECURITY /* shell security for network access */
+#define INCLUDE_SHELL /* interactive c-expression interpreter */
+#define INCLUDE_SHOW_ROUTINES /* show routines for system facilities*/
+#define INCLUDE_SPY /* spyLib for task monitoring */
+#define INCLUDE_STARTUP_SCRIPT /* execute start-up script */
+#define INCLUDE_STAT_SYM_TBL /* create user-readable error status */
+#define INCLUDE_SYM_TBL /* symbol table package */
+#define INCLUDE_UNLOADER /* object module unloading */
+#define INCLUDE_WINDVIEW /* WindView command server */
+
+
+Also, automatic construction/destruction of static objects
+should be enabled.
+
+If you use TAO, it's also a good idea to increase the
+NUM_FILES parameter from its default of 50 to,
+say, 1000.
+
+Please note that those VxWorks kernel configuration parameters
+are set in the VxWorks configAll.h file. You must rebuild your
+VxWorks kernel after modifying that file.
+
+If you're first getting started with ACE and/or VxWorks, I recommend
+just building the ACE library and tests first. (Some of the ACE
+examples, in System_V_IPC, don't build on VxWorks yet.) Then try
+running the tests. Please see $ACE_ROOT/tests/README for the latest
+status of the ACE tests on VxWorks.
+
+Please note that the main entry point is renamed to
+ace_main (configurable via ACE_MAIN) on VxWorks with g++,
+to comply with its restriction against using main.
+In addition, ACE_HAS_NONSTATIC_OBJECT_MANAGER is enabled by default
+to cleanly support construction and destruction of static objects.
+Please see the Non-static
+ACE_Object_Manager discussion for the important implication
+of this feature.
+
+ACE threads (VxWorks tasks) can be named, for example, by supplying a
+non-null argument to the Thread_Manager spawn routines. However,
+names beginning with "==ace_t==" are forbidden because
+that prefix is used internally by ACE.
+
+You can spawn a new task to run ace_main, using either
+VxWorks sp, or ACE'S spa.
+spa can be used from the VxWorks shell to pass arguments
+to ace_main. Its usage is:
+
+
+spa ace_main, "arg1" [, ...]
+
+
+All arguments must be quoted, even numbers. You can start also ace_main
+without spawning another thread by using:
+
+
+spaef ace_main, "arg1" [, ...]
+
+
+ACE also provides the function vx_execae which is capable of running
+ace_main in a separate thread, wait for the task to finish and return
+the return code from ace_main:
+
+
+int vx_execae (FUNCPTR acemain,char* arguments, int prio = 0, int opt = 0, int stacksz = 0);
+
+
+You could call this from the VxWorks shell like:
+
+
+When prio, opt or stacksz are omitted or specified
+as 0 default values will be used. See the VxWorks shell documentation for the
+defaults for prio and opt. For stacksz the default is
+ACE_NEEDS_HUGE_THREAD_STACKSIZE.
+The arguments string will be parsed and passed on to ace_main as
+a regular argc and argv.
+
+Be aware of the fact that when you execute ace_main directly from the VxWorks
+shell argc will be zero and argv* will also be zero. Using argv[0] will not return
+the program name, but will result in a crash.
+The ACE helper functions spa, spaef and vx_execae prevent
+this problem by building a regular argc and argv which also contain a
+valid argv[0] element.
+
+NOTE: Since VxWorks support is currently being reworked with
+an initial focus on static builds the support for shared builds is momentarily
+broken. This will be remedied(!) as soon as possible.
+
+ACE supports shared libraries for VxWorks, but only with the g++
+compiler. To build shared libraries instead of the default static
+libraries, added shared_libs_only=1 to either your
+ACE_wrappers/include/makeinclude/platform_macros.GNU or
+your make invocation. Then, be sure to load the ACE (and
+any other) shared library before loading your executable(s).
+
+A shared library for VxWorks uses the same code as for a static
+(non-shared) library. However, calls to static constructors/
+destructors are added. The code in the shared library must
+be reentrant if you shared it between programs (tasks). The
+ACE library meets this requirement.
+
+Shared libraries reduce build time, executable size, and load
+time of the executable. But, you must manually load the shared
+library before loading your executable(s) with a command such as:
+
+-> ld < libACE.so
+
+Shared libraries can be unloaded the same way an executable
+(module) is unloaded.
+
+NOTE: Shared libraries on VxWorks aren't the same as
+shared libraries on other operating systems. In particular, there is
+no support for creating copies of writeable global (static) data in
+the shared library. This includes the singleton ACE_Object_Manager
+instance pointer. If you share global data between separate programs,
+they may not work properly. See the discussion of shared code and
+reentrancy in the VxWorks' Programmers Guide.
+
+Instead of trying to run separate programs onto a VxWorks target, we
+recommend creating just one program, and spawning a thread for each
+task. The TAO IDL_Cubit test collocation
+test is a good example.
+
+It's easy to link your ACE and/or TAO libraries into the VxWorks kernel.
+Just build shared versions, but
+disable the munch step. The easiest way to do that is to set the
+LD make variable to the name of your linker. For
+example, to build a libACE.so for PowerPC that can be linked into
+the kernel:
+
% cd $ACE_ROOT/ace
+% make LD=ldppc shared_libs_only=1
+
+After building the shared lib, link it into the kernel by setting
+the MACH_EXTRA make variable in the kernel configuration
+Makefile. Then, build the kernel using make exe.
+
+The ACE tests write their output files in a directory named
+log/, below the current (tests) directory.
+
+
+To run the tests from the build directory on an NT host where you crossbuild your
+VxWorks ACE/TAO you can set up the Target Server File System (TSFS) in your Target Server
+configuration. If you f.i. set the root for the TSFS to the root directory of your builddisk
+you can set the default directory for the target by issueing the following command
+from a Host shell: '@cd "/tgtsvr/{path to ACE}/ACE_wrappers/tests"'.
+The '@' addition makes sure this command is executed for the target environment and not the
+local host shell environment.
+If you also issue the command 'cd {path to ACE}/ACE_wrappers/tests' you can execute the
+generated one button testscript like: '< run_test.vxworks'.
+
+
+Running the ACE tests automatically from the ACE autobuild tool using Target Server and Host
+shell options is also supported.
+
+
+If you don't have NFS included in your VxWorks kernel, you can use these steps, provided by
+Clarence M. Weaver,
+to run the tests and capture their output:
+
+
What I did was create a log directory on the boot NT host of my VxWorks
+ target.
+
I copied all the test applications and the run_test.vxworks script to
+ the parent of the log directory.
+
Using the target shell not the host shell, I "cd" to the directory
+ containing the script and test programs.
+
Invoked the script using < run_test.vxworks from this target shell.
+
+
+Kirk Davies provided this
+approach for running the ACE tests on Tornado II:
+
+
+
Under Tornado II, I set up the Target Server File System (TSFS), and
+ the test logs get written to the log subdirectory under that.
+
You have to set an environment variable before running the tests:
+
+The following, very useful information was contributed by
+Chris Ryan
+and Paul von Behren.
+Please submit corrections, additions, or clarifications to the
+the ACE mailing list.
+
+NOTE:The make (version 3.74) that is provided with
+Tornado 2.2 cannot be used to build ACE. A working version is available
+from the WindRiver support site, download the
+
+make3_80.gvk_patches and the
+
+make3_80.tor2_2.new_dependency_rules package and install them.
+
+Using the Cygnus tools, this approach works:
+
+
You'll build both your NT and VxWorks executables in the same
+ workspace (directory hierarchy). This works because the NT
+ compiler and ACE's Makefiles put their output in different
+ directories.
+
Set up your
+ ACE_wrappers/include/makeinclude/platform_macros.GNU
+ as usual for VxWorks. See
+ the
+ g++/VxWorks platform file for more information.
+
Create an ACE_wrappers/ace/config.h file that looks
+ something like the following.
+
#if defined (_MSC_VER) || defined (__BORLANDC__)
+# include "ace/config-win32.h"
+#else
+# include "ace/config-vxworks5.x.h"
+#endif
+
+
Set your ACE_ROOT, CPP_LOCATION,
+ WIND_BASE, and WIND_HOST_TYPE environment
+ variables.
+
Build for NT, then build for VxWorks.
+
+
+A few additional Windows Notes, from Paul von Behren:
The Tornado IDE will use a standard Makefile for project
+ builds, but does not have a GUI interface for managing the
+ Makefile. By default, it will use rules from Makefile in the current
+ directory and you can configure it to add certain Makefile
+ targets to the project. If you have ACE_ROOT defined
+ before starting Tornado, you can specify an ACE Makefile as a Tornado
+ target and Tornado will then call make from the menu.
+
+
+And Chris Ryan's instructions for building for VxWorks targets
+on Windows NT hosts:
+
+
+
+
+ aced.dll is produced in an ACE NT source tree according to
+ documented procedure for Windows VC++ ACE build.
+
+ cygwin.dll is from the Cygnus GNU software download and install.
+
+
Basically, follow documented procedure for ACE build/install on UNIX
+ platform. Create a $ACE_ROOT/ace/config.h that looks
+ like:
+
#include "config-vxworks5.x.h"
+
+
+ And create a
+ $ACE_ROOT/include/makeinclude/platform_macros.GNU
+ that looks like:
+
+ WIND_BASE = /tornado
+ WIND_HOST_TYPE = x86-win32
+ CPU = I80486
+ include $(ACE_ROOT)/include/makeinclude/platform_vxworks5.5.x.GNU
+
+
+
When using cygnus windows GNUTools on WinNT you have to start
+ make with "--unix" option, otherwise WinNT shell cmd.exe is responded and
+ not sh.exe, i.e.,
+
make --unix static_libs_only=1
+
+
+
+
TAO on NT Tornado host, VxWorks target.
+
+
+
Build ACE and TAO_IDL in the NT tree as already documented.
+ Be sure to build ACE's gperf on NT, in
+ ACE_wrappers/apps/gperf/src.
+
+
Build $TAO_ROOT/tao
+
CPP_LOCATION=/Program Files/DevStudio/VC/bin/CL.exe
+ cd $TAO_ROOT/tao
+ /gnuwin32/b18/H-i386-cygwin32/bin/make
+
+
+
Build orbsvcs.
+
CPP_LOCATION=/Program Files/DevStudio/VC/bin/CL.exe
+ cd $TAO_ROOT/orbsvcs/orbsvcs
+ /gnuwin32/b18/H-i386-cygwin32/bin/make
+
+
+
Build $TAO_ROOT/tests
+
+
+
+
Jaffar Shaikh's
+Notes for Building ACE and TAO for VxWorks on NT host
+
Scenario: I was building the ACE and TAO for VxWorks
+on NT. The target system was a PPC860 based chassis and another a NT
+host based card.
+
Host System:
+
NT 4.0 workstation with 128 M RAM, 266MHz Pentium.
include
+$(ACE_ROOT)/include/makeinclude/platform_vxworks5.5.x.GNU
+
ACE_COMPONENTS=FOR_TAO (you may choose this option to build ACE
+library that supports TAO)
+
+
+
Steps to Build
+
1) Build Ace.dll under NT
+
In MS Visual C++ open C:\Corba\ACE_wrappers\ace.sln And build Ace
+DLL
+
Copy Ace.dll in C:\bin
+
+
2) Build gperf utility under NT
+
In MS Visual C++ open
+C:\Corba\ACE_wrappers\apps\gperf\src\gperf.sln. Build gperf.exe
+
Copy gperf.exe to C:\bin
+
+
3) Mount Directries in Cygwin
+
Click on Cygnus Solutions -> Cygwin Bash Shell
+
Mount following directories by using mount command.
+
create respective directories first then use mount command
+
+
e.g. Create /Corba directory then use $mount -s "C:\Corba"
+/Corba
+
+
C:\Corba mount to /Corba
+
C:\tornado mount to /tornado
+
C:\Perl mount to /perl
+
C:\Cygwin mount to /cygwin
+
C:\bin mount to /bin
+
C:\Program Files mount to /Program Files
+
+
4) Build ACE in Cygwin
+
$cd /Corba/ACE_wrappers/ace
+
$make static_libs_only=1
+
This will build your ace library libACE.a for VxWorks. If you use
+option shared_libs_only=1 then the build will be libACE.so. The other
+options are same as follows.
The minimum Tao does not have following components,
+
Dynamic Skeleton Interface
+
Dynamic Invocation Interface
+
Dynamic Any
+
Interceptors
+
Interface Repository
+
Advanced POA features
+
CORBA/COM interworking
+
+
You may play around with above options to find suitable build for
+your needs. For example when you give option debug=1 all the debug
+symbols will be created and the build will huge in size. The debug
+symbols are necessary when you want to debug your code.
ACE can be built for Android by using the Android Native Development Kit
+(NDK). This is different than the standard way of writing Android
+applications in Java which run the on Android Runtime or the older Dalvik
+Virtual Machine. Applications built using the NDK are native Linux applications
+written in C or C++ specifically compiled to run on Android systems. In
+addition, applications built using the NDK have access to Android-specific APIs
+much like on Java-based Android applications.
+
+
+
Generating a Toolchain
+
+
To build ACE for Android you need to download the NDK and generate a
+toolchain for the specific Android target you want. The specific target is
+defined by two things:
+
+
+
- The minimal API level to target.
+
A lower level means larger amount of potential users but also
+ potentially less features. Android has many API levels
+ to target. They roughly correspond to the versions of Android.
+
+
- The CPU architecture to target (Also called the Application Binary
+ Interface or ABI by the NDK documentation).
+
In addition to ARM, Android also supports x86 and MIPS,
+ although support for MIPS has been dropped from the NDK. This is the official
+ documentation on the ABIs. These are the ABIs that ACE supports at the
+ time of writing and must be passed to ACE as ANDROID_ABI:
+
+
+
armeabi-v7a
+
32-bit ARM, The default ABI for both the NDK and ACE.
+
armeabi-v7a-with-neon
+
armeabi-v7a with NEON extentions enabled.
+
arm64-v8a
+
64-bit ARM, Sometimes referred to as aarch64.
+
x86
+
32-bit x86
+
x86_64
+
64-bit x86
+
+
+ It should be noted that starting in August 2019, the Google Play
+ Store will require new apps to have 64-bit libraries if they have native
+ libraries. 32-bit native libraries will still supported but they must also
+ have 64-bit libraries. Look up any restrictions that may affect
+ apps you want to publish on the Play Store, including minimum API
+ level.
+
+
+
+
+
+
+
To generate a toolchain, one use must use
+build/tools/make_standalone_toolchain.py in the NDK. A destination must be
+chosen and is denoted here as $TOOLCHAIN. For example, to generate a
+toolchain targeting 32-bit ARM Android 7.0 "Nougat" (API Level 24) and later:
+
+./make_standalone_toolchain.py --arch arm --api 24 --install-dir $TOOLCHAIN
+
+
$TOOLCHAIN/bin must be in your $PATH when building ACE and
+applications using ACE.
+
+
This table shows how the ANDROID_ABI variable and the --arch argument correlate:
+
+
+
ANDROID_ABI
+
--arch
+
+
+
armeabi-v7a
+
arm
+
+
+
armeabi-v7a-with-neon
+
arm
+
+
+
arm64-v8a
+
arm64
+
+
+
x86
+
x86
+
+
+
x86_64
+
x86_64
+
+
+
+
+
Using Older NDKs (Skip if Using NDK r18 or Later)
+
+It is highly recommended to use the latest NDK available assuming
+that it works with ACE. It is possible to use NDKs older than r18, but these
+have caveats:
+
+
+
+ In NDK r16, a file called ndk-version.h was added that
+ contains the version of the NDK. If using an earlier NDK, you must
+ define the macros __NDK_MAJOR__ and __NDK_MINOR__
+ in ace/config.h before
+ #include "ace/config-android.h".
+ The scheme works like this:
+
+
+
Revision
+
__NDK_MAJOR__
+
__NDK_MINOR__
+
+
+
r16
+
16
+
0
+
+
+
r16a
+
16
+
1
+
+
+
r16b
+
16
+
2
+
+
+
+
+ As of NDK r18, the only compiler that comes with the NDK is clang and by
+ default the build system assumes that clang is available and will use it.
+ However there was a transitional period between r12 and r17 where GCC and
+ clang both exist in the NDK. In some cases GCC should be used if linking
+ errors occur with these NDKs (For example missing references to
+ stderr). To let the build system decide between them, set
+ android_force_clang:=0 in
+ include/makeinclude/platform_macros.GNU before including
+ platform_android.GNU. This should be set for NDKs before r15.
+
+
+ There is an unresolved name conflict involving the semun union
+ when using NDK's r14 or earlier and Android API Levels 21 or greater. These
+ combinations are not supported.
+
+
+ There are probably unknown conflicts, especially in the minor revisions
+ before the last minor revision.
+
+ Set ANDROID_ABI to one of the options above. This
+ must match the toolchain --arch argument used according to the table above.
+
+
Set options for debug and optimization options as desired.
+
If you want to compile static, add static_libs_only:=1
+
Must include include $(ACE_ROOT)/include/makeinclude/platform_android.GNU.
+
If building TAO, set the tao idl options specified in the cross compiling instructions in TAO-INSTALL.html
+
+
+
+
+
Generate makefiles (if necessary).
+
Build with GNU make.
+
+
+
+
Native applications using the ACE library can be installed onto devices by
+several different methods. The files can be include as assets of Java
+application and can be written by the Java application into it's executable
+program directory. The native application can be downloaded by a Java
+application and written into the Java applications executable program
+directory. The native application can also be uploaded using the Software
+Development Kit's ADB tool. This method requires uploading the native
+application to a directory that allows execution and having any output
+directed to a writable directory.
+
+Building and installing ACE Network Services on UNIX is relatively
+simple (the process for Win32 is different).
+Here's what you need to do:
+
+
+
+
Build and install ACE on UNIX as described earlier. If ACE is built at the root of the ACE
+ source tree (and ACE has been ported to your platform, of course) the
+ netsvcs static and shared object libraries should be built
+ automatically. In addition, the server driver program
+ (main) contained in $ACE_ROOT/netsvcs/servers/main.cpp
+ should also be compiled and ready to run.
+
+
Set your LD_LIBRARY_PATH environment variable to
+ where the binary version of the ACE netsvcs library. For
+ example, you probably want to do something like the following
By default, if the shared object library is built, the services
+ are linked into the main driver program dynamically.
+ To specify which services should be linked in and executed, edit the
+ $ACE_ROOT/netsvcs/servers/svc.conf
+ file. During your editing, you should update information (such as the
+ default service port numbers) that affects the initialization of
+ services in this file. Refer to the
+ Service Configurator
+ documentation to learn how the configuration file is parsed and
+ how the services are dynamically linked and executed. In
+ addition, refer to the Network
+ Services documentation to learn more about how to configure
+ each network service.
+
+
If you only want to link the services statically, simply remove
+ or rename the svc.conf file.
The first step for all platforms is to build and install the
+OpenSSL distribution. The
+ACE_SSL library must then be built according to the instructions
+below.
+
Unix
+
+
Make sure the OpenSSL header file directory is in your compiler's
+ include path, and that OpenSSL libraries are in your library link/load
+ path (e.g. LD_LIBRARY_PATH). If you
+ installed OpenSSL into a set of directories unknown by the compiler,
+ set the SSL_ROOT environment variable to point to the
+ top level directory of your OpenSSL distribution, i.e. the one
+ containing OpenSSL's include and lib
+ directories.
+
Build ACE as described above. When building ACE, add
+ ssl=1
+ to your make
+ command line invocation, or add it to your
+ platform_macros.GNU file.
+
Build the ACE_SSL library in the $ACE_ROOT/ace/SSL
+ directory. The ACE_ROOT environment variable should be set
+ prior to this point.
+
+
Microsoft Visual Studio
+
+
Set the SSL_ROOT environment variable to the location
+ of the directory containing the OpenSSL inc32 and
+ out32dll directories.
+
Add ssl=1 to your MPC
+ $ACE_ROOT/bin/MakeProjectCreator/config/default.features
+ or $ACE_ROOT/local.features file.
+
At the moment you are using OpenSSL v1.1 or
+ newer also add openssl11=1 to your MPC
+ $ACE_ROOT/bin/MakeProjectCreator/config/default.features
+ or $ACE_ROOT/local.features file.
+
Re-run MPC to add
+ support for building the ACE_SSL library to your MSVC++
+ workspaces and projects.
+
Open the ACE.sln solution, and refer to the ACE build
+ and installation instructions above for details on creating a
+ config.h configuration header for this platform. Once
+ the config.h file has been created, build the
+ ACE_SSL project.
+
+
Embarcadero C++
+
Support for building ACE's ACE_SSL library and TAO's SSLIOP
+ pluggable protocol with Embarcadero C++ does exist.
+
+
Set the SSL_ROOT environment variable to the location
+ of the directory containing the OpenSSL inc32 and
+ out32 directories.
+
Add ssl=1 to your MPC
+ $ACE_ROOT/bin/MakeProjectCreator/config/default.features
+ or $ACE_ROOT/local.features file, and re-run MPC to add
+ support for building the ACE_SSL library to your Embarcadero C++ makefiles.
+
+There is a general method for building and using ACE_Reactors for various GUI
+libraries.
+
Building GUI Reactor Library
+
+
Try to generate build files using MPC. Inspect the output of MPC to find out which features are
+ necessary to build given reactor. Add these features to
+ ACE_wrappers/bin/MakeProjectCreator/*.features file, or pass them directly to MPC
+ using -features command line option. For example, for FlReactor the procedure
+ consists of five steps
+
+
In the first pass one gets that x11 (X11 libraries) is missing.
+ $ mwc.pl -type gnuace
+ Skipping ACE_FlReactor (ace_flreactor.mpc), it requires x11.
+
+ Ensure that X11 libraries are installed, then pass x11=1 feature to MPC.
+
In the second pass one gets that gl (OpenGL library) is missing.
+ $ mwc.pl -type gnuace -features x11=1 ace.mwc
+ Skipping ACE_FlReactor (ace_flreactor.mpc), it requires gl.
+
+ Ensure that OpenGL libraries are installed, then pass gl=1 feature to MPC.
+
In the third pass one gets that fl (Fast Light Toolkit) is missing.
+ $ mwc.pl -type gnuace -features x11=1,gl=1 ace.mwc
+ Skipping ACE_FlReactor (ace_flreactor.mpc), it requires fl.
+
+ Ensure that Fast Light Toolkit libraries are installed, then pass fl=1
+ feature to MPC.
+
In the fourth pass one gets that ace_flreactor feature is missing
+ $ mwc.pl -type gnuace -features x11=1,gl=1,fl=1 ace.mwc
+ Skipping ACE_FlReactor (ace_flreactor.mpc), it requires ace_flreactor.
+
+ Allow MPC to generate makefiles for FlReactor by setting ace_flreactor=1 feature.
+
In the last pass one obtains files for building FlReactor.
+ $ mwc.pl -type gnuace -features x11=1,gl=1,fl=1,ace_flreactor=1 ace.mwc
+
+
+ Currently to simplify MPC generation some of features are turned on by default in
+ ACE_wrappers/bin/MakeProjectCreator/global.features. For examples to generate
+ files related with Fl one has to provide only fl=1 feature. To obtain a more fine grained controll
+ over MPC generation process one may modify ACE_wrappers/bin/MakeProjectCreator/*.features
+ files.
+
+
Required build files are generated now, it is enough then to invoke build tool.
+ For example for under MPC::gnuace one has to call
+ make fl=1. For MPC::vc7 target all features are
+ encoded in generated project files, thus it is enough to compile ACE using MSVC.
+
+
+ The build procedure leads to a specific GUI Reactor library. For example, for
+ Qt and Linux one gets libQtReactor.so, while for
+ Windows the results are shared QtReactor.dll and import
+ QtReactor.lib libraries or their variants depending on build options.
+ When compiling TAO also GUI related libraries are created like libTAO_QtResource.so.
+
Using GUI Reactor Library
+ Here one has at least three use cases:
+
+
Applications with their own build system.
+ To use ACE support for GUI one has to include specific GUI headers and
+ link with specific ACE_[GUI]Reactor library. When using TAO support for GUI one has
+ also to link with specific TAO_[GUI]Resource library.
+
Applications with build system using MPC.
+ In general, it is better to create specific base projects for using ACE GUI support in such application.
+ Base projects provided by ACE ACE_wrappers/bin/MakeProjectCreator/[ace,tao]_[gui][reactor,resource].mpb
+ may be an examples of how to do this.
+
Internal ACE applications like tests or examples.
+ MPC project for internal ACE application using GUI support should be derived from
+ ace_[gui]reactor.mpb base projects. To employ TAO support for GUI one should derive
+ the project from tao_[gui]resource.mpb These base projects ensure that all necessary libraries
+ are linked to the application, specifies features necessary to build a project and moreover impose a
+ build order consistant with ACE. For example, the application project using XtReactor should be
+ derived from ace_xtreactor.mpb.
+
+
Notes on specific GUI Reactors
+
+
QtReactor
+ The build is controlled by ace_qtreactor [1 by default] feature.
+ To build this reactor one has to provide feature qt [0 by default] (Qt library). Moreover,
+ it is assumed that Qt was installed in a standard way
+ and QTDIR points to Qt installation folder. To build TAO
+ support for Qt one should use tao_qtresource [1 by default] feature.
+
XtReactor
+ The build is controlled by ace_xtreactor [1 by default] feature.
+ To build this reactor one has to provide the following features: x11 [1 by default]
+ (X11 libraries) and xt [1 by default] (X11 Toolkit).
+ Moreover, some examples and tests related with XtReactor
+ needs additionall features namely either motif [0 by default] (Motif/Lesstif libraries) or
+ athena [0 by default] (Athena widgets). To build TAO
+ support for xt one should use tao_xtresource
+ [1 by default] feature.
+
TkReactor
+ The is controlled by ace_tkreactor [1 by default] feature. To build this reactor one has to provide
+ tk [0 by default] (Tcl libraries) feature. To build TAO
+ support for Tk one should use tao_tkresource [1 by default] feature.
+
FlReactor
+ The build is controlled by ace_flreactor [1 by default] feature.
+ To build this reactor one has to provide the following features: x11
+ [1 by default] (X11 libraries),
+ gl [1 by default] (OpenGl) and fl
+ [0 by default] (Fast Light Toolkit). To build TAO
+ support for Fl one should use tao_flresource [1 by default] feature.
+ MS Windows: The paths to fltkdll and
+ OpenGL32 libraries, as well as fltk header files
+ should be setup manually for succesfull compilation. Obviosuly,
+ x11switch is ignored for this platform.
+
+
+ Take a look at (CE-status.txt) for
+ up-to-date information about ACE on Windows CE and Windows Mobile.
+
+
Solaris 7, 8, 9, and 10 using Sun ONE Studio 8 (C++ 5.5)
+ or higher, Centerline C++ 2.x, GNU gcc 2.95 and
+ later.
+
+ All the source code and tests should build and run without any
+ problems on Solaris 7, 8, and 9 platforms using the above
+ Sun C++ compilers.
+
+ There are likely to be build problems with older versions or
+ different patchlevels of Sun C++. Likewise, on
+ Solaris with g++ you may need to use GNU as instead of
+ /usr/ccs/bin/as, if you want -gstabs+ and -pipe support.
+
+ Thanks to Susan Liebeskind <shl@janis.gtri.gatech.edu>
+ for providing the following useful information:
+
+ By default, ACE uses both the Solaris and POSIX thread
+ interface. To disable use of the Solaris thread interface, add
+ -D_POSIX_PTHREAD_SEMANTICS to the
+ CFLAGS in your
+ $(ACE_ROOT)/include/makeinclude/platform_macros.GNU.
+ See the Solaris Intro (3) man page for more information.
+
+ To disable ACE thread support completely, build with the
+ threads=0 make flag. See the Makefile Flags section below for more
+ information on make flags.
+
+ If you use g++ on Solaris 7, you might need to rebuild
+ it on a SunOS 5.7 (Solaris 7) host. Some versions of g++
+ provide replacements for system header files. The
+ replacements on older SunOS systems are not compatible with the
+ SunOS 5.7 system headers.
+
+
AIX
+
+ ACE is currently supported on AIX 5.2 and higher using IBM's
+ Visual Age C++ 6 and XL C++ 7 compilers as well as g++ 3.2.
+
+ The ace/config-aix-5.x.h file is recommended for all
+ compilers on all AIX 5L versions. The Asynchronous I/O functionality
+ is disabled by default because its use requires the system administrator
+ to explicitly enable it in the kernel using SMIT. If this has been
+ done and you want to enable asynchronous I/O support in ACE, add:
+ #define ACE_HAS_AIO_CALLS to your config.h
+ file before including ace/config-aix-5.x.h.
+
+ The Visual Age 6.0.0.3 and 6.0.0.4 do have some bugs that makes
+ them unusable for building TAO. TAO has been tested with 6.0.0.12 and
+ had no problems with that version.
+
+ For your platform_macros.GNU file, you should use
+ platform_aix_ibm.GNU when building ACE with any of the
+ IBM compilers and platform_aix_g++.GNU when building ACE
+ with g++.
+
+ BTW, here's a technique from Rob Jordan <jordan@hursley.ibm.com>
+ that can reduce the size of the ACE libraries by about one
+ third, and can also be applied to applications. It works by
+ optimising the sharing of template functions, which are created
+ in an "unusual" way under AIX. It also speeds up
+ compilation.
+
+ Here's how to optimise the ACE library generation:
+
+ Look at the ace/GNUmakefile.ACE
+ in $ACE_ROOT/ace. Create a file called
+ ACE_All_Src.cpp, and add a line to #include
+ each of the source files
+ listed under FILES= in the GNUmakefile. Create a
+ file called ACE_All_Tmp.h
+ and add a line to #include each of the .h files listed under
+ TEMPLATE_FILES= in the GNUmakefile. Now update the
+ GNUmakefile so that
+ FILES=ACE_All_Src and
+ TEMPLATE_FILES=ACE_All_Tmp.
+
+ ACE has been ported to Linux on
+ Intel, Alpha, and PowerPC platforms. If you use a RedHat 5.x
+ distribution, it's best to use RedHat 5.1 or later. ACE works
+ without any modifications on RedHat 5.1 and later, and on
+ Debian 2.1 on both Intel and Alpha. Use the
+ platform_linux.GNU and ace/config-linux.h
+ in your platform_macros.GNU and
+ config.h files, respectively. The same
+ files can be used on PowerPC, with LinuxPPC
+ 1999 (R5), with glibc 2.1.1.
+
+ If you run out of memory, it's easy to add virtual memory on
+ Linux. Please see the mkswap man page. You'll
+ need at least 256 to 300 Mb of virtual memory (RAM + swap) to
+ compile all of ACE+TAO. The System
+ Resource Requirements section has some suggestions on how
+ to reduce the memory requirement.
+
+ The glibc 2.0 dynamic loader isn't thread safe. If you want to
+ use the Invocation API you'll have to set
+ LD_BIND_NOW=true. If you want to use
+ dlopen, you should use RTLD_NOW. The
+ dynamic loader in glibc 2.1 is thread safe.
+
+ NOTE: The TAO NameService uses IP multicasting
+ by default, though it is not required. IP multicast on Linux
+ requires the following:
+
+
+
Enable IP multicast in the Linux kernel. It is enabled in
+ the default RedHat 5.1 kernel. In older distributions, you
+ can enable it by rebuilding your kernel with CONFIG_IP_MULTICAST
+ enabled.
+
Enable IP multicast in ACE. It is enabled by default in
+ ace/config-linux.h. If you don't use
+ IP multicast, add #define ACE_HAS_IP_MULTICAST 0
+ to your ace/config.h before building ACE.
+
There must be a network interface that is up and supports
+ multicast. If you have linuxconf, it's easiest to use that
+ to add a network route for multicast (224.0.0.0) on one of
+ your network interfaces, such as eth0. If
+ you don't have or use linuxconf, try adding a multicast
+ routing table entry using something like this:
+
# route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0
+
+
+
+ Some of the ACE tests fail on older, pre-glibc2 Linux platforms,
+ such as RedHat 4.2. The problems are with threads and
+ thread-specific storage.
+
+
SCO UNIX
+
+ ACE has been ported to SCO UNIX using the GNU g++ 2.7.2
+ compiler. Arturo Montes <mitosys@colomsat.net.co>
+ maintains this code. In addition, he also maintains a version
+ of FSU pthreads.
+
+
SGI IRIX 5.x and 6.x
+
+ ACE used to build fine using the SGI C++ and GNU GCC compilers
+ for IRIX 5.x. It has been ported to IRIX 6.x using the SGI
+ MipsPro 7.1 C++ compiler; be aware that in IRIX 6.2 there is a
+ number of patches that have to be installed and exceptions
+ appear to fail with the O32 ABI. Please check the config files
+ for the details.
+
+
OSF/1 3.2 and 4.0 (a.k.a. Digital UNIX 4.0)
+
+ The Digital UNIX C++ 5.4 through 5.7 compilers have problems
+ with ACE's templates. They compile the lib and most of the test
+ programs, although they warn about template usage. Most tests
+ run, some dump core. If you use a 5.x version of cxx, be sure
+ to set the CXX_VER variable to CXX_5, either on your make
+ command line or in an environment variable. The ACE Makefiles
+ assume by default that the cxx version is 6.x or later.
+
+ CXX 6.0 and 6.1 are much improved over 5.x: V6.0-020, V6.1-025,
+ and later build all of ACE cleanly. All of the tests in
+ $(ACE_ROOT)/tests run successfully with CXX 6.0 and CXX 6.1.
+ Please note that problems have been reported with some versions
+ of CXX 6.1, notably versions -021 and earlier. It's best to use
+ V6.1-022 or later.
+
+ NOTE: if you use Digital UNIX 4.0f or later, you must
+ use ace/config-tru64.h instead of
+ ace/config-osf1-4.0.h. ace/config-tru64.h
+ can be used for all supported compilers on any version of
+ Digital UNIX after and include 4.0. And, with 4.0f and later when
+ using Digital CXX, you must use
+ include/makeinclude/platform_tru64_cxx.GNU instead of
+ include/makeinclude/platform_osf1_4.0.GNU.
+
+
FreeBSD
+
+ FreeBSD is a fast evolving platform. However, it has the
+ advantage of having standard releases. At this moment, ACE is
+ only perodically tested against -stable (3.1R) and we rely a lot
+ on FreeBSD users' feedbacks.
+
+ Notice that on older FreeBSD, ld.so only looks for
+ so libraries with version number appended. ACE makefiles
+ create symlinks for most shared libraries if
+ versioned_so is defined to 1 in
+ $ACE_ROOT/ace with appropriate ACE version.
+ However, this does not work for libACE.so itself so you have to
+ create it manually (If you figure out how to do this, please let
+ us know) like this:
+
+ On newer FreeBSD (3.0 or later,) this is no longer necessary.
+
+
NetBSD
+
+ Like older FreeBSD, NetBSD's ld.so also requires
+ versioned .so files.
+
+
OpenBSD
+
+ ACE has been ported to OpenBSD 3.1 and GNU g++ 2.95.3.
+
+ As with FreeBSD and NetBSD, OpenBSD requires versioned .so
+ files. This is currently handled by the build files and no
+ additional work is needed.
+
+ ACE has been ported to OpenBSD with and without pthreads
+ enabled. When using pthreads, though, C++ exceptions must be
+ disabled. This is a known problem with the current release of
+ OpenBSD (see www.openbsd.org, bug #1750). ACE emulated
+ exceptions work fine.
+
+ Compiling TAO may require the user data segment size
+ restrictions and possibly other options to be increased. This
+ is done by modifying the default user class in /etc/login.conf
+ or by adding a new class and modifying the master passwer file
+ accordingly.
+
+
UnixWare
+
+ Steve Huston <shuston@riverace.com>
+ has ported ACE to work with UnixWare 2.01 and g++.
+
+ Ganesh Pai <gpai@voicetek.com>
+ subsequently did the port for version 2.1.2, also with g++.
+
+ Phil Mesnier <
+ mesnier_p@ociweb.com> updated the port to support
+ UnixWare 7.1.0, with help from Michael Meissnitzer
+ <
+ michael.meissnitzer@siemens.at>, Christian Klepp <
+ christian.klepp@siemens.at
+ > and Engelbert Staller <
+ engelbert.staller@siemens.at>
+ Building ACE (and TAO) on Unixware 7.1.0 requires a very specific
+ g++ build environment. In particular, you must build and install
+ g++ 2.95.2, along with binutils 2.9.1. The order (and the declaration
+ of configuration) is extremely important. Using the gcc compiler
+ provided on the Skunkware CD on a pentium system, here is the recipe
+ I used to build a working environment (as root):
+
mkdir /usr/local/newgnu
+< ftp and untar binutils-2.9.1 >
+< ftp and untar gcc-2.95.2 >
+ mkdir -p build/binutils build/gcc
+ cd build/binutils
+ ../../binutils-2.9.1/configure i386-sco-sysv4
+ gmake # takes a long time
+ gmake install # this creates /usr/local/i386-sco-sysv4/...
+ mkdir /usr/local/i486-pc-sysv5/bin
+ cd /usr/local/i486-pc-sysv5/bin
+ for a in /usr/local/i386-sco-sysv4/bin/*; do ln -s $a .; done
+ #links all the newly installed utilities
+
+ cd /usr/local/newgnu/build/gcc
+ ../../gcc-2.95.2/configure --with-gnu-as --with-gnu-ld
+ gmake bootstrap # takes a long time
+ gmake install
+ mkdir /usr/local/i586-UnixWare7.1.0-sysv5/bin
+ for a in /usr/local/i386-sco-sysv4/bin/*; do ln -s $a .; done
+
+ Once done, ACE and TAO will successfully build and link.
+
+ ACE builds and runs properly on LynxOS 4.0 for Intel
+ and PowerPC targets. LynxOS 2.x and 3.x are no longer supported.
+
+ If you run out of memory on LynxOS, these might help:
+
+
+
Increase the limits in /etc/starttab,
+ then reboot system. We use these limits:
+
# Data, stack, and core file limits (in Kbytes)
+80000
+16000
+102400
+
Enable or expand virtual memory, with something like:
+
# mkcontig /swap 320
+# prio 17 vmstart /swap
+ See the mkcontig and vmstart
+ man pages, and /bin/rc.
+
+
+ Please see the comments in the
+ ACE
+ platform_lynxos.GNU file for information on, and an
+ example of, tailoring for your particular platform.
+
+ NOTE: if you want to use IP multicast on LynxOS, be sure to add
+ this line to your /net/rc.network, and reboot:
+
+ /bin/route add "224.0.0.0" "$my_name"
+
+
+
VxWorks
+
+ David Levine
+ <levine@cs.wustl.edu> has
+ ported ACE to VxWorks 5.2/5.3/5.3.1/5.4 with the GreenHills
+ 1.8.8/1.8.9, g++ and diab compilers that are distributed with
+ VxWorks/Tornado. It is not possible to use VxWorks 5.4
+ and earlier with ACE anymore because the compilers delivered with
+ 5.4 and earlier don't support the C++ features ACE needs.
+
+ At this moment Remedy IT is upgrading
+ and stabilizing ACE/TAO support for Tornado 2.2/VxWorks 5.5.1.
+ Since the existing support for previous VxWorks version has been unsupported
+ and broken for some time and most (potential) users seem to have upgraded to
+ VxWorks 5.5.1 no backporting effort is done. See also here.
+
+
+ Tornado 2.2/VxWorks 5.5.1 support IP multicast. That is not enabled
+ by default in ACE for VxWorks, because it depends on your
+ kernel configuration. To enable it, add
+ #define ACE_HAS_IP_MULTICAST to your
+ ace/config.h.
+
+ NOTE: In order for the ACE Broadcast and Multicast tests to work the VxWorks kernel
+ should receive the packages it sends out locally. By default this is not supported.
+ To enable this behaviour you need to include the IFF_SIMPLEX flag for your required
+ NIC driver. See the following Windriver SPR 4542
+ for more information.
+
+ In addition to all of the other benefits of ACE, it helps work
+ around some deficiencies with VxWorks. The problems are:
+
+
+
+
The program entry point cannot be called "main" with g++. ACE
+ renames it to "ace_main" (configurable via ACE_MAIN) on VxWorks.
+ While this may seem trivial, it is important with legacy code.
+ ACE itself ran into this problem.
+
+
argc/argv isn't used with VxWorks entry points. ACE provides
+ a wrapper function that transparently converts shell command
+ line arguments to argc/argv form. See below
+ for details.
+
+
+
+ Please note that ACE uses one of the spare fields in the Wind
+ River task control block, spare4, for thread-specific storage.
+ This field is specified in only one place, in ace/OS_NS_Thread.inl, so it
+ can easily be changed to one of the other spare fields, if
+ necessary.
+
+ ACE destroys dynamically
+ allocated singletons in the ACE library. But, they may not
+ properly destroy some static objects. If you have trouble
+ running a program multiple times, it may be necessary to unload
+ the module, using unld, and reload it between runs.
+ Alternatively, you could try calling cplusDtors and
+ then cplusCtors between runs.
+
+
MVS OpenEdition
+
+ All of ACE has been ported to OpenEdition by Chuck Gehr <gehr@sweng.stortek.com>.
+ The ACE library, all the tests and most of the examples and apps
+ build clean. There are still some problems that need to be
+ ironed out:
+
+ MVS does not support the dynamic linking dl...() calls that the
+ Service Configurator uses to dynamically link services at run
+ time. As a result, all the examples and apps that use a svc.conf
+ file (for dynamically configuring service objects) do not work,
+ however, most of these apps can be built/run statically. Also,
+ the Svc_Conf_l.cpp and Svc_Conf_y.cpp files are generated using
+ flex and yacc on a ascii (not ebcdic) machine and as a result
+ they don't work very well with ebcdic svc.conf files. We should
+ be able to regenerate these files on MVS but MVS doesn't have
+ flex. This is something that needs to be done.
+
+ Some of the tests do not execute properly. This is a minority
+ and over time the goal is to get to 100%.
+
+ The make scheme for some of the apps still doesn't work
+ perfectly on MVS. This is mainly due to the way shared
+ libraries are handled on MVS. See additional
+ build tips for MVS for more on this.
+
+
QNX Neutrino
+
+ ACE has been ported to QNX Neutrino
+ 2.0. We cross-compile for Neutrino on a QNX4 host using g++
+ 2.8.1, using the ace/config-qnx-neutrino.h
+ and include/makeinclude/platform_qnx_neutrino.GNU
+ configuration files. Many of the ACE tests succeed, though some
+ fail. As the porting effort progresses, we hope to eliminate
+ these failures. If you know of fixes, please send them to
+ us.
+
QNX RTP
+
+ ACE has been ported to QNX RTP
+ . We compile for QNX RTP using the GCC compiler shipped with the
+ distribution, using the ace/config-qnx-rtp.h
+ and include/makeinclude/platform_qnx_rtp_gcc.GNU
+ configuration files.
+ Many of the ACE tests succeed, though some
+ fail. As the porting effort progresses, we hope to eliminate
+ these failures. If you know of fixes, please send them to
+ us.
+
+ Under the current version of QNX RTP ACE fails if compiled with
+ inline=0 .
+
+ The support for RTEMS has been reviVed from version x.5.4. This version
+ was the first version that build again out of the box on RTEMS. Compilation
+ and testing was done for RTEMS with and without networking support. The
+ ACE GNU makefiles do automatically detect whether networking support
+ is available or not.
+
+ Besides the standard config.h/platform_macros.GNU file you will need
+ to set RTEMS_MAKEFILE_PATH to point to the location
+ of your RTEMS installation, see below for an example.
+ When building without network support you will need the ace_for_tao
+ subsetting functionality enabled. For this add ace_for_tao = 1
+ to your bin/MakeProjectCreator/config file and regenerate the
+ GNU makefiles as described here.
+
+
PharLap ETS
+
+ ACE has been ported to Ardence's
+ PharLap ETS
+ version 13. The port was originally done for Pharlap 9.1 and MSVC 6,
+ but has been updated to Pharlap ETS 13 with Visual Studio .NET 2003
+ (VC7.1).
To build for PharLap, you'll need to use MPC to
+ generate .sln/.vcproj files with the ETS configurations. For example:
+
+ That command will generate the same .sln and .vproj files as for
+ regular Windows builds with VC7.1, but they'll have names with an
+ _ETS suffix and will include the "ETS Debug" and
+ "ETS Release" configurations.
+ After generating the needed VC7.1 files, use the ace/config-pharlap.h
+ configuration file, and the instructions
+ for building on Windows. Building the ACE library is the same as
+ for regular Windows platforms, except you choose one of the PharLap
+ ETS configurations to build within Visual Studio.
+ For an example of how to build binaries, see the tests directory.
+ The tests_pharlap_msvc.lnk file is a LinkLoc commands file that the
+ ACE tests are built with. It is likely that local sites may need
+ to adjust this file for their target environment.
+
+ When executing programs on the target system, it is possible that not
+ all of the VC++ support DLLs are resident on the target. In particular,
+ the debug-supporting DLLs may not be present. If you require these, be
+ sure to add those needed. For example, on the standard LabVIEW RT 8.2
+ distribution using Pharlap ETS, the following DLLs must be copied to
+ the target before being able to run Debug programs:
+
+
msvcp71d.dll
+
msvcr71d.dll
+
+
+ To build ACE for National Instruments' LabVIEW RT, use
+ the Pharlap ETS information above, but add the following line to your
+ config.h file:
+
+ #define ACE_PHARLAP_LABVIEW_RT
+
+ This setting makes the necessary adjustments for LabVIEW's implementation
+ of Pharlap ETS.
+
+ By default, the ACE tests log their output/results to the
+ system console on Pharlap ETS. To change this behavior and make the
+ test output log to a file in the log directory under the
+ current working directory while executing, add the following line to
+ your config.h file:
+
+ #define ACE_PHARLAP_TESTLOG_TO_FILE
+
+ This setting has no affect on TAO tests which always write test output
+ to stdout.
+
+
+
Mac OS X (10.2.x)
+
+
ACE builds and runs on Mac OS X 10.2.x, but the following are
+ needed to build it:
+
+
1. The latest version of the Apple Developer Tools
+ (December 2002)
+
2. The dlcompat library (obtained either through Fink or
+ SourceForge)
+
+
When creating $ACE_ROOT/ace/config.h for Mac OS X, you need
+ to add the following if you obtained dlcompat via Fink:
Currently, all ACE tests pass except Process_Mutex_Test and
+ MEM_Stream_Test. Also, Mac OS X doesn't yet support *nix
+ aio_* calls, and ACE does not know anything about Mach.
+
+
The work to port ACE to Mac OS X was done by several people,
+ John Zorko
+ <j.zorko@att.net> is
+ only one of them.
+
+
iPhone/iPod Touch/iPad
+
+
ACE builds and runs on the iPhone/iPod Touch/iPad Hardware
+ and Simulator. Keep in mind that ACE/TAO needs to be built
+ statically since Apple does not allow third party dynamic libraries
+ to be deployed on the hardware. The following are needed to build ACE:
+
+
1. The iPhone SDK.
+
2. When creating $ACE_ROOT/ace/config.h, include
+ config-macosx-iphone-hardware.h if you want to deploy on the
+ hardware, include config-macosx-iphone-simulator.h if you want
+ to deploy on the simulator. Even though those includes are named
+ after the iPhone, the includes work for iPhone/iPod Touch, and iPad.
+
3. You need to define two environment variables. The first is
+ IPHONE_TARGET. Set IPHONE_TARGET to SIMULATOR if you want to deploy
+ on SIMULATOR. Set IPHONE_TARGET to HARDWARE if you want to deploy on
+ the hardware device.
+
4. When creating $ACE_ROOT/include/makeinclude/platform_macros.GNU,
+ include 'include $(ACE_ROOT)/include/makeinclude/platform_macosx_iphone.GNU'
+ in the file.
+
+If you use the GNU GCC g++ compiler please note the following:
+
+
+
ACE/TAO needs g++ 2.95.x or better. Older versions are not usable anymore
+
+
Make sure to update your gcc config.status
+ file. This file is produced when installing gcc; it specifies
+ where to install the binary files that gcc uses. For example,
+ it specifies whether to use Solaris's /usr/ccs/bin
+ binary utils or GNU binary utils. The
+ config.status file is an output of the gcc
+ configure script; it is preferable to use the
+ --prefix option to configure instead
+ of hacking its output.
+
+
If you are getting weird link errors when building libACE
+ on Solaris you are probably using the GNU linker. Try using the
+ Sun linker (/usr/ccs/bin/ld) instead. Note that gcc first looks
+ for the GNU linker if it is installed along with gcc. The only
+ way to not use the GNU linker is to delete it from the
+ installation or to build your own compiler with no linker. Be
+ aware that you still need the libraries and includes of gcc.
+
+ NOTE: if you do use the GNU linker, you might need to change
+ the -G flag to -shared in
+ the SOFLAGS definition in your
+ include/makeinclude/platform_macros.GNU.
+
+
Don't get too confused about contradictory statements in
+ the gcc documentation. It was written by different
+ people...
+
+
Make sure that the linker invoked by gcc produces code
+ that initializes static objects. Please see gcc's
+ documentation for using collect2.
+and the whole make takes less than an hour on my Solaris 7 for intel,
+Pentium-III/550MHz, 256MB memory, 512MB swap machine. (Top secret: I
+renice the 'make' process to the highest priority, -20... ;-)
+
+To save time and space, I set
+
The amount of system resources required to build
+ACE and TAO varies greatly. The required system resources are
+influenced by OS and compiler platform, build options, and component
+configurations. As a rough guide, the typical peak memory requirement
+can be well over 512 MB (notably, for TAO's orbsvcs). Depending on
+your OS and compiler configuration, an entire build
+of ACE and TAO can use well over 4 GB of disk space. It's usually not
+necessary to build all of ACE and TAO, though.
+
+Much less disk space is required for just the libraries. For example,
+see the ACE
+library subset sizes.
+
+If you run out of memory when building, you might consider trying
+some or all of these suggestions:
+
+
Enable or increase virtual memory. If you're on a Linux or LynxOS platform,
+ please see the appropriate sections above.
+
Disable/enable optimization and/or debugging. See the
+ Makefile Flags discussion for information
+ on how to do that via ACE's Makefiles.
+
If you're using g++, try removing -pipe from
+ CFLAGS in your
+ include/makeinclude/platform_macros.GNU file.
+
Restrict the components that you build. For ACE and TAO, see the
+ discussion of ACE_COMPONENTS in the
+ ACE subsets page. For TAO's
+ orbsvcs, see the discussion of TAO_ORBSVCS in
+ orbsvcs Library configuration information.
+
+If disk space is a problem, disabling debugging should greatly
+reduce object code, and therefore, library size. This is especially
+true with g++.
+
+Toshio Hori <toshi@etl.go.jp> provided these tips for reducing
+disk space usage:
+
+To save space on a Unix machine, I usually run
+ 'find . -name \*.sln -o -name \*.vcproj -o -name \*.bmak | xargs rm -f'
+in $ACE_ROOT at first after I untar the distribution. They are
+meaningless in my environment (Files named '*.sln' and '*.vcproj' are
+used for MSVC++ and files named '*.bmak' are for Embarcadero C++
+Builder.)
+
+Finally, to save space, may want to run 'make clean' after 'make'. It
+removes generated object files and leaves libraries/executables
+intact. If you want to remove any of the libraries/executables, as
+well, try 'make realclean'.
+
+
+
+
+
General MPC information
+
+
+The
+Makefile Project Creator (MPC) is a tool that takes platform and
+building tool generic files (mpc files) as input, which describe basic
+information needed to generate a "project" file for various build
+tools, including Make, NMake, Visual C++ 6, Visual C++ 7, etc. Please
+see USAGE, README for documentation on MPC.
+
+
+
+A common usage for creating a Windows workspace containing just the
+core ACE and TAO libraries and executables is the following:
+
+
+
+C:> cd %TAO_ROOT%
+C:> %ACE_ROOT%\bin\mwc.pl -type vc71 TAO_ACE.mwc
+
+
+
+Replace vc71 with whatever project type you want to use. On Linux and
+other UNIX platform use the gnuace type:
+
+
+
+% cd $TAO_ROOT
+% $ACE_ROOT/bin/mwc.pl -type gnuace TAO_ACE.mwc
+
+
+
+This creates the appropriate GNUmakefiles. Additional information on
+how to obtain, configuration, and build ACE+TAO using MPC appear at
+the OCI FAQ.
+
+
+
+If you are attempting to generate project files using MPC, and you get
+the following error message:
+
+
+
ERROR: Unable to find the MPC modules in /builds/ACE_wrappers/MPC.
+You can set the MPC_ROOT environment variable to the location of MPC.
+
+
+
+You need to do one of the following:
+
+
+
+
If you have already obtained MPC, either move it underneath the
+ACE_wrappers directory or set your MPC_ROOT environment variable to point
+to the full path of MPC.
+
Check out MPC from the DOC Group git repository
+and set your MPC_ROOT environment variable.
+
+
+
+You can check
+out MPC from the DOCGroup git repository using the following command.
+
+The README and USAGE files in the MPC/docs directory are an up-to-date
+source of documentation, however it is not a complete set of
+documentation. The TAO Developer's Guide from OCI starting with the
+1.3a version contains more information about MPC.
+
+
+
+The MPC chapter from the TAO Developer's Guide is available at
+http://downloads.ociweb.com/MPC/. Some of MPC has changed since
+this version, but it is largely accurate. An updated version will be
+available as newer versions of the TAO Developer's Guide are released.
+In the meantime, please see the README and USAGE files in the MPC
+directory.
+
+The Eclipse CDT C++ development environment can be used to develop ACE applications. You can configure a new CDT project to build ACE using either a local source distribution or checking out ACE from CVS in Eclipse. These are the steps to create the CDT project to build ACE.
+
+
+
+
To create an Eclipse project for ACE starting from CVS:
+
+
In the "CVS Repository Exploring" perspective, navigate to the module containing ACE.
+
Checkout the module using "Check Out As" and select the "project configured using the New Project Wizard" option.
+
Select "Standard Make C++ Project" for the project type.
+
Follow the steps outlined above, up to the point of running make, for building ACE on your platform. Use "path_to_your_eclipse_workspace"/"project_name" as your $ACE_ROOT.
+
If you had to regenerate the makefiles using MPC, select the root folder for your poject and use the import wizard to add them to your project.
+
Select the root folder for the project and use the "Create Make Target" wizard to setup the appropriate make command and options.
+
Select the root folder and run "Build Make Target." This will build ACE.
+
+
+
+
+
+
+
To create an Eclipse project for ACE from a local source distribution:
+
+
Launch the "New Project Wizard" in Eclipse.
+
Select "Standard Make C++ Project" for the project type.
+
On the project name page, uncheck the "use default" location option and replace the default path with the path to your source distribution.
+
Follow the steps, up to the point of running make, for building ACE on your platform.
+
If you had to regenerate the makefiles using MPC, select the root folder for your poject and use the import wizard to add them to your project.
+
Select the root folder for the project and use the "Create Make Target" wizard to setup the appropriate make command and options.
+
Select the root folder and run "Build Make Target." This will build ACE.
The ACE_Object_Manager can be instantiated
+as a static object, can be instantiated on the stack of the main
+program thread, or can be explicitly instantiated and destroyed by the
+application with ACE::init () and ACE::fini
+(). The comments in the header file,
+ace/Object_Manager.h, as well as Section 1.6.3 in
+The ACE Programmer's Guide
+provide more detail.
+
+
+Special requirements are imposed on applications if the
+ACE_Object_Manager is instantiated, by ACE, on the stack of the main
+thread. This behavior is selected by defining
+ACE_HAS_NONSTATIC_OBJECT_MANAGER in
+ace/config.h. Again, see the ACE Object_Manager header file,
+ace/Object_Manager.h for more information. One of
+these requirements is discussed here, because it is so important.
+Please note that ACE_HAS_NONSTATIC_OBJECT_MANAGER is
+defined in the distributed ACE config.h headers for
+VxWorks and Win32.
+
+The important requirement is that the program must
+declare its main function with two arguments, even if
+they're not used, and with int return type:
+
+
+int
+main (int, char *[])
+
+
+If you don't declare mainexactly that
+way, then you'll see a link error about ace_main_i being
+undefined.
+
+Alternatively, this feature can be disabled by commenting out the
+#define ACE_HAS_NONSTATIC_OBJECT_MANAGER in the
+ace/config.h. But, that will make repeated testing more
+difficult on VxWorks. And, you'd either have to call static
+constructors and destructors manually or unload/load the program
+between runs. On Win32, disabling the feature can possibly lead to
+shutdown difficulties.
+
+
+ACE_HAS_NONSTATIC_OBJECT_MANAGER assumes that your
+main function is named main. Any violation
+of this assumption is at your peril. If you really need to call your
+entry point something other than main, you'll need to
+construct and destroy the ACE_Object_Manager. The best way to do that
+is to call ACE::init () and ACE::fini ().
+Or, see the #define of main (int, char *[])
+in ace/OS_main.h to see how ACE does
+that for entry points named main.
+
+
+
+On UNIX platforms, we typically like to support multiple platform
+builds using the same ACE source tree. This idiom is supported by ACE
+using the $ACE_ROOT/bin/create_ace_build.pl script.
+
+To clone the source tree, create ./build and ./build/{your build name}
+subdirectories under the ACE_wrappers directory.
+Then invoke the create_ace_build.pl script to clone the source tree using
+soft links from your build directory back to the actual sources.
+Here is an example:
+
+
% cd ACE_wrappers
+% mkdir build build/build-SunOS5
+% perl bin/create_ace_build.pl -a -v build-SunOS5
+% cd build/build-SunOS5
+% setenv ACE_ROOT $cwd
+% make
+
+
+This will establish a complete tree of links. In addition, make sure
+you set your LD_LIBRARY_PATH to
+$ACE_ROOT/lib:$LD_LIBRARY_PATH on SVR4 UNIX
+platforms.
+
+When you do a make in the $ACE_ROOT directory you will be producing
+object code that is not stored in the same place as the original
+source tree. This way, you can easily build another platform in a
+parallel tree structure.
+
+See the comments at the top of the create_ace_build.pl script for
+further usage information.
+
+
+
+For all intents and purpose, MVS OpenEdition (OE) is another flavor of
+UNIX, therefore, the instructions under Building
+and Installing ACE on Unix can be used along with the following
+additional tips:
+
+You can get a copy of GNU make that has been ported to MVS OpenEdition from
+the IBM OpenEdition web site.
+ACE's make scheme generates compile commands that have options and
+operands interspersed. By default, the c89/cc/c++ compiler expects all options to
+precede all operands. To get around this, you must set a special
+compiler environment variable (_CXX_CCMODE) to 1 which tells the compiler
+to allow options and operands to be interspersed.
+
+Note that the environment variable LD_LIBRARY_PATH is
+called LIBPATH on MVS.
+
+Shared objects are built a little different on MVS than on
+other UNIX implementations. This has been accounted for in the makefiles
+that come with ACE When the linker (via the cxx command) builds the
+libACE.so file it will also create a file called libACE.x. This is a
+side-deck file and it must be included in subsequent link edits with
+application code. For more information on this see the C/C++ MVS
+Programming Guide. If you want to build your application statically,
+i.e., using libACE.a instead of libACE.so, you can set ACELIB to
+ACELIB_STATIC in platform_mvs.GNU.
+
+When the libACE.so file is built (via the MVS pre-linker and binder), you
+will get a rc=4 from the pre-linker. This is ok. This is due to some
+warnings about unresolved references which should get resolved during the
+link step. Note, however, there shouldn't be any unresolved references
+from the binder (linkage editor). You can get pre-link and link maps by
+uncommenting the PMAP and LMAP lines in the platform_mvs.GNU file.
+
+
+
+GNU make provides many options to customize its operation. See its
+documentation for more information. One example is that for multi-cpu
+UNIX machines you will be able to build faster if you use:
+
+
+% make -j n
+
+
+which allows parallel compilation. The number n should
+typically be the number of CPUs. It is likely that builds will be
+faster even on single-CPU UNIX machines with make -j
+2.
+
+ACE further supports the following flags. They can be enabled either
+on the command line, e.g., "make purify=1", or added to your
+platform_macros.GNU. To disable the option,
+set the flag to null,
+e.g., "make debug=". Some flags support setting to 0 disable, e.g.,
+"make debug=0". debug=1 is enabled in the platform files that are
+released with ACE.
+
+Please note that the effects of a flag may be platform specific.
+Also, combinations of certain flags may or may not be allowed on
+specific platforms, e.g., debug=1 opt=1 is supported by g++ but
+not all other C++ compilers.
+
+If you use Purify or Quantify: purify or quantify must
+be on your PATH. By default, ACE puts the Purify/Quantify
+caches below /tmp. To override that, set the
+PURE_CACHE_BASE_DIR variable, either in your environment
+or on the make make command line, to the destination
+directory for your instrumented libraries.
+
+
Flag Description
+---- -----------
+debug Enable debugging; see DCFLAGS and DCCFLAGS.
+exceptions Enable exception handling (not supported by all platforms).
+include_env Support old-style ACE_TRY_ENV declarations in methods.
+ This switch is necessary for compiling TAO applications
+ in the native exception configuration that were written
+ for TAO versions before 1.2.2.
+ In TAO 1.2.2, new macros were introduced that supercede
+ the direct ACE_TRY_ENV declarations. These are the
+ ACE_ENV_ARG macros that are defined in ace/CORBA_macros.h
+ and are documented in docs/exceptions.html.
+ This switch only affects the exceptions=1 configuration.
+ It is for backward compatibility only.
+ There will be warnings about unused _ACE_environment_variable
+ parameters when using include_env=1.
+ If possible, do not use it, but instead change your TAO
+ applications to use the ACE_ENV_ARG macros.
+fast Enable -fast option, e.g., with Sun C++.
+inline Enable ACE inlining. Some platforms enable inlining by
+ default, others do not.
+optimize Enable optimization; see OCFLAGS and OCCFLAGS.
+pace Enable PACE as the underpinnings of ACE_OS.
+probe Enable ACE_Timeprobes.
+profile Enable profiling; see PCFLAGS and PCCFLAGS.
+purify Purify all executables.
+quantify Quantify all executables.
+repo Use GNU template repository (g++ with repo patches only).
+rtti Enable run-time type identification. On some platforms,
+ it is enabled by default, so this is ignored.
+shared_libs If migrating from prior version use shared_libs_only
+static_libs If migrating from prior version use static_libs_only
+shared_libs_only Only build shared libraries. Ignored if no SHLIBs are
+ specified by the Makefile, as in performance-tests/Misc.
+static_libs_only Only build static libraries.
+threads Build with thread support.
+xt Build with Xt (X11 Toolkit) support.
+fl Build with FlTk (Fast Light Toolkit) support.
+tk Build with Tk (Tcl/Tk) support.
+qt Build with Qt (Trolltech Qt) support.
+ssl Build with OpenSSL support.
+rapi Build with RAPI
+split Build the library by first splitting up the ACE source
+ to several files, with one object code entity for each
+ source file. This allows an application that is linked
+ with ACE to extract _exactly_ what it needs from the
+ library, resulting in a smaller executable. Setting this
+ to 1 overrides debug to 0.
+
+Usually, users do not need to be concerned with make targets.
+Just enter "make" on the command line to build. A few notable
+targets are listed below.
+
+Target Description
+------ -----------
+show_statics Lists all static objects in object files built for
+ current directory. Only supported for g++.
+show_uninit Lists all uninitialized in object files built for
+ current directory. Only supported for g++.
+
+
+If users are building from our Git repository the
+GNUmakefiles, and project files for building on various platforms will
+not be available. Git users are expected to generate them
+using MPC before building ACE, TAO or
+CIAO. We point out some suggestions below to get bootstrapped
+quickly.
+
+
+
You can clone all code easily from our git repository.
+
Please make sure that you have
+ perl installed, preferably perl
+ 5.8 or higher. Users on Win32 based platforms are recommended to use
+ Active
+ State Perl. We use active state perl without problems. We have
+ ran into problems trying to use the cygwin version of perl on Win32
+ based platforms.
+
+
+
To build ACE and associated tests, examples,
+ and associated utility libraries with GNUmakefiles, you must
+ generate GNUmakefiles with MPC:
+ $ACE_ROOT/bin/mwc.pl -type gnuace ACE.mwc
+
On Windows, with Visual C++ 8, you must generate solution and project files with MPC:
+
+ $ACE_ROOT/bin/mwc.pl -type vc8 ACE.mwc
+
+ On Windows, with Visual C++ 7, you must generate solution and project files with MPC:
+ $ACE_ROOT/bin/mwc.pl -type vc71 ACE.mwc
+
If you want to build TAO and its associated libraries
+ please see TAO-INSTALL for details.
+
diff --git a/dep/acelite/ACE.mwc b/dep/acelite/ACE.mwc
new file mode 100644
index 000000000..7899541b3
--- /dev/null
+++ b/dep/acelite/ACE.mwc
@@ -0,0 +1,28 @@
+workspace {
+ exclude {
+ TAO
+ }
+
+ // The associate scope does not add directories to the workspace;
+ // it only associates a name with one or more directories.
+ associate(examples) {
+ examples
+ }
+ associate(tests) {
+ performance-tests
+ tests
+ }
+ associate(gperf) {
+ gperf
+ }
+
+ // The '--' is a special key that indicates that the associated
+ // projects should be of the form @NAME@ in the generated Makefile.am.
+ associate(--) {
+ ACEXML
+ ASNMP
+ protocols
+ KOKYU
+ TAO
+ }
+}
diff --git a/dep/acelite/AUTHORS b/dep/acelite/AUTHORS
new file mode 100644
index 000000000..3e474e06c
--- /dev/null
+++ b/dep/acelite/AUTHORS
@@ -0,0 +1,13 @@
+Douglas C. Schmidt
+d.schmidt@vanderbilt.edu
+
+Professor of Computer Science
+Associate Chair of Computer Science and Engineering
+Department of Electrical Engineering and Computer Science
+Senior Researcher at the Institute for Software Integrated Systems (ISIS)
+Vanderbilt University
+Nashville, TN 37203
+
+www.dre.vanderbilt.edu/~schmidt
+TEL: (615) 343-8197
+FAX: (615) 343-7440
diff --git a/dep/acelite/CMakeLists.txt b/dep/acelite/CMakeLists.txt
new file mode 100644
index 000000000..7b24f491c
--- /dev/null
+++ b/dep/acelite/CMakeLists.txt
@@ -0,0 +1,19 @@
+#
+# This code is part of MaNGOS. Contributor & Copyright details are in AUTHORS/THANKS.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+#
+
+add_subdirectory(ace)
diff --git a/dep/acelite/COPYING b/dep/acelite/COPYING
new file mode 100644
index 000000000..a8a5eda0c
--- /dev/null
+++ b/dep/acelite/COPYING
@@ -0,0 +1,111 @@
+
+ _________________________________________________________________
+
+ Copyright and Licensing Information for ACE(TM), TAO(TM), CIAO(TM),
+ DAnCE(TM), and CoSMIC(TM)
+
+ [1]ACE(TM), [2]TAO(TM), [3]CIAO(TM), DAnCE(TM), and [4]CoSMIC(TM)
+ (henceforth referred to as "DOC software") are copyrighted by
+ [5]Douglas C. Schmidt and his [6]research group at [7]Washington
+ University, [8]University of California, Irvine, and [9]Vanderbilt
+ University, Copyright (c) 1993-2014, all rights reserved. Since DOC
+ software is open-source, freely available software, you are free to
+ use, modify, copy, and distribute--perpetually and irrevocably--the
+ DOC software source code and object code produced from the source, as
+ well as copy and distribute modified versions of this software. You
+ must, however, include this copyright statement along with any code
+ built using DOC software that you release. No copyright statement
+ needs to be provided if you just ship binary executables of your
+ software products.
+
+ You can use DOC software in commercial and/or binary software releases
+ and are under no obligation to redistribute any of your source code
+ that is built using DOC software. Note, however, that you may not
+ misappropriate the DOC software code, such as copyrighting it yourself
+ or claiming authorship of the DOC software code, in a way that will
+ prevent DOC software from being distributed freely using an
+ open-source development model. You needn't inform anyone that you're
+ using DOC software in your software, though we encourage you to let
+ [10]us know so we can promote your project in the [11]DOC software
+ success stories.
+
+ The [12]ACE, [13]TAO, [14]CIAO, [15]DAnCE, and [16]CoSMIC web sites
+ are maintained by the [17]DOC Group at the [18]Institute for Software
+ Integrated Systems (ISIS) and the [19]Center for Distributed Object
+ Computing of Washington University, St. Louis for the development of
+ open-source software as part of the open-source software community.
+ Submissions are provided by the submitter ``as is'' with no warranties
+ whatsoever, including any warranty of merchantability, noninfringement
+ of third party intellectual property, or fitness for any particular
+ purpose. In no event shall the submitter be liable for any direct,
+ indirect, special, exemplary, punitive, or consequential damages,
+ including without limitation, lost profits, even if advised of the
+ possibility of such damages. Likewise, DOC software is provided as is
+ with no warranties of any kind, including the warranties of design,
+ merchantability, and fitness for a particular purpose,
+ noninfringement, or arising from a course of dealing, usage or trade
+ practice. Washington University, UC Irvine, Vanderbilt University,
+ their employees, and students shall have no liability with respect to
+ the infringement of copyrights, trade secrets or any patents by DOC
+ software or any part thereof. Moreover, in no event will Washington
+ University, UC Irvine, or Vanderbilt University, their employees, or
+ students be liable for any lost revenue or profits or other special,
+ indirect and consequential damages.
+
+ DOC software is provided with no support and without any obligation on
+ the part of Washington University, UC Irvine, Vanderbilt University,
+ their employees, or students to assist in its use, correction,
+ modification, or enhancement. A [20]number of companies around the
+ world provide commercial support for DOC software, however. DOC
+ software is Y2K-compliant, as long as the underlying OS platform is
+ Y2K-compliant. Likewise, DOC software is compliant with the new US
+ daylight savings rule passed by Congress as "The Energy Policy Act of
+ 2005," which established new daylight savings times (DST) rules for
+ the United States that expand DST as of March 2007. Since DOC software
+ obtains time/date and calendaring information from operating systems
+ users will not be affected by the new DST rules as long as they
+ upgrade their operating systems accordingly.
+
+ The names ACE(TM), TAO(TM), CIAO(TM), DAnCE(TM), CoSMIC(TM),
+ Washington University, UC Irvine, and Vanderbilt University, may not
+ be used to endorse or promote products or services derived from this
+ source without express written permission from Washington University,
+ UC Irvine, or Vanderbilt University. This license grants no permission
+ to call products or services derived from this source ACE(TM),
+ TAO(TM), CIAO(TM), DAnCE(TM), or CoSMIC(TM), nor does it grant
+ permission for the name Washington University, UC Irvine, or
+ Vanderbilt University to appear in their names.
+
+ If you have any suggestions, additions, comments, or questions, please
+ let [21]me know.
+
+ [22]Douglas C. Schmidt
+ _________________________________________________________________
+
+ Back to the [23]ACE home page.
+
+References
+
+ 1. http://www.cs.wustl.edu/~schmidt/ACE.html
+ 2. http://www.cs.wustl.edu/~schmidt/TAO.html
+ 3. http://www.dre.vanderbilt.edu/CIAO/
+ 4. http://www.dre.vanderbilt.edu/cosmic/
+ 5. http://www.dre.vanderbilt.edu/~schmidt/
+ 6. http://www.cs.wustl.edu/~schmidt/ACE-members.html
+ 7. http://www.wustl.edu/
+ 8. http://www.uci.edu/
+ 9. http://www.vanderbilt.edu/
+ 10. mailto:doc_group@cs.wustl.edu
+ 11. http://www.cs.wustl.edu/~schmidt/ACE-users.html
+ 12. http://www.cs.wustl.edu/~schmidt/ACE.html
+ 13. http://www.cs.wustl.edu/~schmidt/TAO.html
+ 14. http://www.dre.vanderbilt.edu/CIAO/
+ 15. http://www.dre.vanderbilt.edu/~schmidt/DOC_ROOT/DAnCE/
+ 16. http://www.dre.vanderbilt.edu/cosmic/
+ 17. http://www.dre.vanderbilt.edu/
+ 18. http://www.isis.vanderbilt.edu/
+ 19. http://www.cs.wustl.edu/~schmidt/doc-center.html
+ 20. http://www.cs.wustl.edu/~schmidt/commercial-support.html
+ 21. mailto:d.schmidt@vanderbilt.edu
+ 22. http://www.dre.vanderbilt.edu/~schmidt/
+ 23. http://www.cs.wustl.edu/ACE.html
diff --git a/dep/acelite/ChangeLog b/dep/acelite/ChangeLog
new file mode 100644
index 000000000..28f4fc60d
--- /dev/null
+++ b/dep/acelite/ChangeLog
@@ -0,0 +1,256 @@
+Fri Nov 14 08:38:16 CET 2014 Johnny Willemsen
+
+ * ACE version 6.3.0 released.
+
+Thu Nov 13 11:31:37 UTC 2014 Steve Huston
+
+ * ace/config-lite.h: Adjust ACE_DECLARE_STL_REVERSE_ITERATORS to
+ work with Solaris Studio 12.4.
+
+ * NEWS: Note support for Solaris Studio 12.4.
+
+Mon Nov 10 15:45:42 UTC 2014 Johnny Willemsen
+
+ * ace/CDR_Stream.h:
+ Doxygen fixes
+
+Mon Nov 10 12:39:18 UTC 2014 Martin Corino
+
+ * NEWS:
+ Updated.
+
+Thu Nov 6 19:45:38 UTC 2014 Johnny Willemsen
+
+ * bin/MakeProjectCreator/config/vc_warnings.mpb:
+ Visual Studio 2013 Update 3 gives a lot of warnings on deprecated
+ ascii winsock calls but they just work, so no need to change our
+ code. Added new feature vc_avoid_winsock_warnings which is enabled
+ by default, this adds _WINSOCK_DEPRECATED_NO_WARNINGS to the
+ compiler falgs. If you want to see all warnings, set
+ vc_avoid_winsock_warnings to 0 in your default.features file before
+ generatin the project files
+
+Tue Nov 4 14:37:56 UTC 2014 Johnny Willemsen
+
+ * etc/ace_inet.doxygen:
+ * etc/ace_qos.doxygen:
+ * etc/ace_rmcast.doxygen:
+ * etc/ace_ssl.doxygen:
+ * etc/acexml.doxygen:
+ Set UML_LOOK to NO, with UML look all members/methods are shown
+ in the diagrams making them unusable
+
+Mon Nov 3 12:50:28 UTC 2014 Martin Corino
+
+ * ace/WIN32_Asynch_IO.cpp:
+ Do not pass holder for bytes written when using OVERLAPPED IO.
+ Pass NULL instead. Recommended by MSDN.
+
+ * tests/Proactor_File_Test.cpp:
+ Circumvent problems with unreliable Async IO on older Win32
+ (WinXP, Win2003/2008).
+
+Fri Oct 31 14:10:52 UTC 2014 Johnny Willemsen
+
+ * rpmbuild/ace-tao.spec:
+ No need for lsb
+
+Fri Oct 31 13:49:11 UTC 2014 Martin Corino
+
+ * ace/WIN32_Asynch_IO.h:
+ * ace/WIN32_Asynch_IO.cpp:
+ Changed ACE_WIN32_Asynch_Write classes to not use shared_write() method
+ for Stream and File IO but use specific write() implementations instead.
+ This fixes Asynch File IO support (specifically writing) for Windows.
+ Fixes Bugzilla #3762 and #3992.
+
+ * tests/Proactor_File_Test.cpp:
+ * tests/run_test.lst:
+ * tests/tests.mpc:
+ Added new example/regression test for Asynch File IO using Proactor.
+
+Wed Oct 29 20:22:38 UTC 2014 Steve Huston
+
+ * bin/MakeProjectCreator/templates/gnu.mpd: Change LDFLAGS for HP-UX to do install_rpath correctly.
+ Fixes Bugzilla #4170.
+
+Tue Oct 28 09:51:14 UTC 2014 Martin Corino
+
+ * bin/MakeProjectCreator/docs/templates/gnu.txt:
+ * bin/MakeProjectCreator/templates/gnu.mpd:
+ * include/makeinclude/wrapper_macros.GNU:
+ Added (optional) support for per project output directories for
+ object files. Fixes Bugzilla #3868.
+
+Tue Oct 28 08:00:15 UTC 2014 Johnny Willemsen
+
+ * tests/Bug_4189_Regression_Test.cpp:
+ Use PF_INET, that is the default argument of ACE_SOCK_Dgram_Bcast
+
+Mon Oct 27 18:06:17 UTC 2014 Johnny Willemsen
+
+ * ace/config-win32-common.h:
+ Don't define SO_REUSEPORT when it is not defined, the code
+ that uses this as argument to call ACE_OS::setsockopt only works
+ when this has been defined. Defining it here to a dummy value
+ causes us to call the Windows API with an invalid argument
+
+Mon Oct 27 12:32:17 UTC 2014 Johnny Willemsen
+
+ * ace/config-win32-common.h:
+ * ace/os_include/sys/os_types.h:
+ Introduce new ACE_LACKS_PID_T which is set on Windows, but
+ not with MinGW
+
+Mon Oct 27 07:57:57 UTC 2014 Johnny Willemsen
+
+ * ace/OS_NS_sys_socket.inl:
+ Removed the ignore of SO_REUSEADDR on windows, this is needed
+ for ACE_SOCK_Dgram_Bcast to work, see bugzilla 4189. Also removed
+ the Windows specific change of SO_REUSEPORT to SO_REUSEADDR, this
+ are different flags that we should not merge at this level.
+
+Fri Oct 24 18:41:42 UTC 2014 Johnny Willemsen
+
+ * tests/Bug_4189_Regression_Test.cpp:
+ * tests/run_test.lst:
+ * tests/tests.mpc:
+ New test for bugzilla 4189, on Windows it is not possible
+ at this moment to open a ACE_SOCK_Dgram_Bcast multiple times
+ on the same port, even when reuse_addr has been set to 1
+
+Thu Oct 23 19:41:00 UTC 2014 Steve Huston
+
+ * tests/Naming_Test.cpp: Fixed data type warning for conversion on
+ %d formatting for Mingw.
+
+Tue Oct 21 15:45:59 UTC 2014 Phil Mesnier
+
+ * ace/ETCL/ETCL_l.cpp:
+ Scoreboard cleanup.
+
+Mon Oct 20 15:37:35 UTC 2014 Phil Mesnier
+
+ * ACEXML/common/XMLFilterImpl.h:
+ * ACEXML/common/XMLFilterImpl.cpp:
+ * ACEXML/parser/parser/Entity_Manager.h:
+ * ace/ETCL/ETCL_l.cpp:
+ * protocols/ace/RMCast/Flow.h:
+ * protocols/ace/RMCast/Flow.cpp:
+ * protocols/ace/RMCast/Reassemble.h:
+ * protocols/ace/RMCast/Reassemble.cpp:
+ * protocols/ace/TMCast/TransactionController.hpp:
+ Clean up unused member warnings identified by clang 6.0.
+
+ * bin/PerlACE/Process_Unix.pm:
+ increase the valgrind wait factor to accommodate slower machines.
+
+Mon Oct 13 18:59:00 UTC 2014 Steve Huston
+
+ * apps/mkcsregdb/mkcsregdb.cpp: Fix data type error on Windows.
+
+Mon Oct 13 17:24:21 UTC 2014 Johnny Willemsen
+
+ * docs/bczar/bczar.html:
+ Added package for killall
+
+Sat Oct 11 21:09:07 UTC 2014 Steve Huston
+
+ * ace/Process.cpp (ACE_Process_Options::setenv (const ACE_TCHAR *, ...):
+ Avoid the secret, magic number buried in ACE_OS::vsprintf() for
+ platforms that support ACE_OS::vsnprintf. Allows full use of
+ DEFAULT_COMMAND_LINE_BUF_LEN as well as customizing that value
+ to a higher size. Thanks to John Lilley for this improvement.
+
+Sat Oct 11 20:45:03 UTC 2014 Steve Huston
+
+ * apps/drwho/File_Manager.cpp: Fixed const-ness compile warning.
+
+Thu Oct 9 16:21:38 UTC 2014 Steve Huston
+
+ * NEWS: Add description of the below changes.
+
+ * ace/OS_NS_stdlib.{h inl cpp}:
+ * ace/OS_NS_stdio.{h inl}:
+ * ace/README:
+ Added new feature config macros ACE_DISABLE_MKTEMP and
+ ACE_DISABLE_TEMPNAM. These disable the ACE wrappers for
+ mktemp() and tempnam(), respectively. Those functions are
+ considered insecure and better replaced by the use of mkstemp().
+
+ * ace/FILE_Addr.cpp (set): Call to set(const ACE_FILE_Addr&) using
+ the default "any" address will now fail if ACE_DISABLE_MKTEMP is
+ set.
+
+ * ace/FILE_Connector.cpp (connect): Specifying 'any' for the
+ address now uses ACE_OS::mkstemp(). Contrast this with setting a
+ ACE_FILE_Addr with 'any', above.
+
+ * ace/MMAP_Memory_Pool.cpp (constructor): Using the 'unique' option
+ will no longer work if ACE_DISABLE_MKTEMP is set.
+
+ * tests/MM_Shared_Memory_Test.cpp:
+ Will not work if ACE_DISABLE_MKTEMP is set.
+
+ * tests/Naming_Test.cpp:
+ Changed to avoid use of ACE_OS::tempnam.
+
+ * tests/Svc_Handler_Test.cpp: Modified to work with or without
+ ACE_DISABLE_MKTEMP.
+
+ * apps/mkcsregdb/mkcsregdb.cpp:
+ * apps/drwho/File_Manager.cpp:
+ Use ACE_OS::mkstemp.
+
+ * examples/OS/Process/imore.cpp:
+ * examples/Service_Configurator/IPC-tests/client/local_dgram_client.cpp:
+ Won't work if ACE_DISABLE_TEMPNAM is set.
+
+Tue Oct 7 21:55:51 UTC 2014 Steve Huston
+
+ Set of changes applicable to VxWorks, particularly 6.9. These changes
+ were contributed by Jeff Fowler and Gordon Hulpieu at NetApp. Feel
+ free to contact me with any issues.
+
+ * ace/OS_NS_Thread.{h cpp inl}: Change from using the VxWorks TCB
+ spare4 value to a new static member of ACE_TSS_Emulation. This
+ mechanism covers both VxWorks multicore (SMP) using the __thread
+ attribute and single core using Task Var. This change gets ACE out
+ of the way of the applications that use spare4 for their own
+ purposes.
+ Also fixes for various compiler warnings.
+
+ * ace/OS_NS_sys_socket.inl (accept): Add IPv6 case to the
+ ACE_HAS_BROKEN_ACCEPT_ADDR case.
+
+ * ace/config-vxworks6.9.h: Correct the ACE_HAS_BROKEN_ACCEPT_ADDR
+ setting for VxWorks 6.9+.
+
+ * ace/OS_NS_dlfcn.inl (dlsym): For VxWorks, use the symFind() call
+ instead of the deprecated symFindByName().
+
+ * ace/Process.cpp: Fix a weird compile diagnostic by adding what should
+ be a needless space.
+
+ * include/makeinclude/platform_vxworks6.9.GNU: Update MUNCH_FLAGS
+ for this version.
+
+Tue Sep 30 13:34:34 UTC 2014 Johnny Willemsen
+
+ * include/makeinclude/platform_g++_common.GNU:
+ Add -Wnon-virtual-dtor to the default CCFLAGS
+
+Fri Sep 26 09:58:57 UTC 2014 Olli Savia
+
+ * tests/Message_Block_Large_Copy_Test.cpp:
+ Fixed compile error on LynxOS.
+
+Wed Sep 24 19:51:44 CEST 2014 Johnny Willemsen
+
+ * ACE version 6.2.8 released.
+
+Local Variables:
+mode: change-log
+add-log-time-format: (lambda () (progn (setq tz (getenv "TZ")) (set-time-zone-rule "UTC") (setq time (format-time-string "%a %b %e %H:%M:%S %Z %Y" (current-time))) (set-time-zone-rule tz) time))
+indent-tabs-mode: nil
+End:
diff --git a/dep/acelite/NEWS b/dep/acelite/NEWS
new file mode 100644
index 000000000..e6d4d3dbb
--- /dev/null
+++ b/dep/acelite/NEWS
@@ -0,0 +1,2048 @@
+USER VISIBLE CHANGES BETWEEN ACE-6.2.8 and ACE-6.3.0
+====================================================
+
+. ACE now supports Oracle Solaris Studio 12.4 on Solaris.
+
+. New config macros were added:
+ ACE_DISABLE_MKTEMP: Disables the availability of ACE_OS::mktemp().
+ ACE_DISABLE_TEMPNAM: Disables the availability of ACE_OS::tempnam().
+ These can be added to your $ACE_ROOT/ace/config.h to disable these
+ wrappers which are considered to be a potential security risk. Disabling
+ one or both will also disable the following:
+ - ACE_FILE_Addr::set () with the 'any' address specified.
+ - ACE_MMAP_Memory_Pool use of the 'unique' option.
+
+. Reduced size of all doxygen documentation by changing the
+ type of diagrams shown
+
+. Removed Windows specific workarounds from ACE_OS::setsockopt, as a
+ result SO_REUSEPORT is not defined anymore on Windows and SO_REUSEADDR
+ is passed directly to the OS
+
+. By adding a 'specific' section to a MPC (base) project it is now possible
+ to have object file output directories per project for GNUACE projects.
+ The following should be added to MPC projects (bugzilla #3868):
+ specific(gnuace) {
+ build_dir_per_project=1
+ }
+
+. ACE_Asynch_Write_File will now correctly accept non-socket (file, TTY ..)
+ handles (bugzilla #3762 and #3992)
+
+. Fixes for VxWorks 6.9
+
+USER VISIBLE CHANGES BETWEEN ACE-6.2.7 and ACE-6.2.8
+====================================================
+
+. Add new ACE::make_event_handler() which is similar
+ to std::make_shared but than for allocation of ACE
+ event handlers. This template method is only enabled
+ when ACE_HAS_CPP11 has been defined, which is set
+ automatically when a C++ compiler with adequate
+ C++11 support is used. Also ACE_Event_Handler_var is
+ extended with some C++11 specific operations
+
+. For all reactor types calling cancel_timer with a
+ nullptr is now allowed, will result in a return of 0
+
+. ACE_DLL and ACE_DLL_Manager have been extended with
+ the support to retrieve any dynamic loader errors
+
+USER VISIBLE CHANGES BETWEEN ACE-6.2.6 and ACE-6.2.7
+====================================================
+
+. Added configuration files for Microsoft Visual Studio 2014
+
+. Added configuration files for MacOSX Yosemite
+
+. Added configuration files for IBM AIX XL C++ 12.1
+
+USER VISIBLE CHANGES BETWEEN ACE-6.2.5 and ACE-6.2.6
+====================================================
+
+. Resolved several data races reported by Intel Inspector XE
+
+. Added optional socket connection optimization for Windows
+
+. Improve functionality and stability of running tests on
+ Android Virtual Device (AVD).
+
+USER VISIBLE CHANGES BETWEEN ACE-6.2.4 and ACE-6.2.5
+====================================================
+
+. Added the ability to build RPMs for just ACE, using an ACE-src tarball.
+ To do this add "--without tao" to the rpmbuild command line.
+
+. Added support for Embarcadero C++Builder XE5 using
+ bcc32 in debug and release mode
+
+. Added support for Embarcadero C++Builder XE6 using
+ bcc32 in debug and release mode
+
+. When Intel C++ 2013 SP1 Update 2 is used with C++11 enabled
+ as compiler feature now also ACE_HAS_CPP11 will be defined,
+ this compiler is now able to compile all our C++11 feature
+ tests
+
+. Fixed several boundary bugs in the ACE RLE Compressor
+
+USER VISIBLE CHANGES BETWEEN ACE-6.2.3 and ACE-6.2.4
+====================================================
+
+. Added support for FC20 and ended support for FC19
+
+. Extended C++11 feature test suite
+
+. Improved support for MingW64
+
+. Improvements to IPv6 support on Windows
+
+USER VISIBLE CHANGES BETWEEN ACE-6.2.2 and ACE-6.2.3
+====================================================
+
+. The ACE_OS::thr_join() method will detect if the thread to be waited on is
+ the calling thread and avert that deadlock. The support needed for this
+ method is available at Vista/Windows Server 2003 and higher; to enable
+ the deadlock prevention, compile ACE with _WIN32_WINNT=0x0502 or higher.
+
+. Ended maintenance and support for FC12 CEEL
+
+. Further improvements of the Android port: Added new define
+ ACE_HAS_EXPLICIT_TEMPLATE_CLASS_INSTANTIATION and related macros
+ ACE_SINGLETON_TEMPLATE_INSTANTIATION and ACE_SINGLETON_TEMPLATE_INSTANTIATE
+ providing a cleaner way to support explicit template (static member or class)
+ instantiation.
+
+' Improvements of the test framework for running tests in a mixed environment
+ where different targets run on different physiscal devices (possibly having
+ different OS).
+
+USER VISIBLE CHANGES BETWEEN ACE-6.2.1 and ACE-6.2.2
+====================================================
+
+. The max_len argument to ACE_Process::command_line_buf changed from int*
+ to size_t*. This corrects a mismatch between the argument type and the
+ data member in ACE_Process from which the value comes.
+
+. Removed some include files from ACE.h. These were not required for ACE.
+ The removed includes are OS_NS_math, Flag_Manip, Handle_Ops, Lib_Find,
+ Init_ACE, Sock_Connect.h. You may have to explicitly add one of these
+ in your own code to restore compiling.
+
+. Further improvements of the Android port, still work in progress.
+
+USER VISIBLE CHANGES BETWEEN ACE-6.2.0 and ACE-6.2.1
+====================================================
+
+. Added support for Fedora 19, ended daily maintenance
+ for Fedora 17 and 18
+
+. Added support for Embarcadero C++BuilderXE4 using
+ bcc32 in debug and release mode
+
+. Improved support for Android
+
+USER VISIBLE CHANGES BETWEEN ACE-6.1.9 and ACE-6.2.0
+====================================================
+
+. None
+
+USER VISIBLE CHANGES BETWEEN ACE-6.1.8 and ACE-6.1.9
+====================================================
+
+. Added MinGW64 as supported platform
+
+. Added support for GCC 4.8.0
+
+USER VISIBLE CHANGES BETWEEN ACE-6.1.7 and ACE-6.1.8
+====================================================
+
+. Small bug fixes
+
+USER VISIBLE CHANGES BETWEEN ACE-6.1.6 and ACE-6.1.7
+====================================================
+
+. Integrated several patches to simplify Debian/Ubuntu
+ packaging
+
+USER VISIBLE CHANGES BETWEEN ACE-6.1.5 and ACE-6.1.6
+====================================================
+
+. Added new event and sema initialization methods to OS_NS_Thread
+ to allow passing pre-initialized condition attributes providing
+ basic support for using time policies in ACE Event classes.
+
+. Added TIME_POLICY support to ACE_Event classes to allow for
+ monotonic timer support for ACE Events.
+
+. Added new regression test:
+ Monotonic_Manual_Event_Test
+
+USER VISIBLE CHANGES BETWEEN ACE-6.1.4 and ACE-6.1.5
+====================================================
+
+. When a ACE_Event_Handler registered for signals is unregistered,
+ whether by unregistering, returning -1 from handle_signal(), or by
+ the reactor closing, the ACE_Event_Handler::handle_close() hook will
+ be called. The close_mask passed will be ACE_Event_Handler::SIGNAL_MASK.
+ In previous versions, handle_close() would only be called when the
+ handle_signal() callback returned -1. This resolves Bugzilla #2368.
+
+. Some initial ACE unit tests to validate the C++11 support of various
+ compilers
+
+. Added support for OpenSuSE 12.2
+
+USER VISIBLE CHANGES BETWEEN ACE-6.1.3 and ACE-6.1.4
+====================================================
+
+. Added a new ACE_Time_Value derived template class (Time_Value_T.h):
+
+ template class ACE_Time_Value_T
+
+ This template class overloads 4 new virtual methods from
+ the ACE_Time_Value base class to provide time policy aware
+ time values:
+ to_relative_time ()
+ to_absolute_time ()
+ now ()
+ duplicate ()
+
+. Updated time policy classes to return ACE_Time_Value_T<> instantiations
+ for the corresponding time policy instead of 'common' time values.
+
+. Added new ACE_Monotonic_Time_Policy (Monotonic_Time_Policy.h).
+ This class provides a monotonic time source for supported
+ platforms (Windows and POSIX platforms providing the required
+ clock_gettime() time source; currently verified for Windows and
+ Linux)
+
+. Updated OS_NS_Thread to use the new time policy support in ACE_Time_Value
+ for (relative) time calculations and added new ACE_OS::condattr_setclock ()
+ method.
+
+. Added TIME_POLICY support to ACE_Condition_Attributes to allow for
+ monotonic timer support for ACE_Condition.
+
+. Added TIME_POLICY support to ACE_Message_Queue-s, ACE_Task-s and
+ related classes to enable support for monotonic timers in the timed
+ wait methods (ACE_Condition based). See docs/ACE-monotonic-timer.html
+ for how to use this.
+
+. Added two new regression tests:
+ Monotonic_Task_Test
+ Monotonic_Message_Queue_Test
+ and updated the Bug_4055_Regression_Test to a fixed state.
+
+USER VISIBLE CHANGES BETWEEN ACE-6.1.2 and ACE-6.1.3
+====================================================
+
+. Added support for Oracle Solaris Studio 12 Update 3 (SunCC 5.12)
+
+. Added new XML_Utils library which comes from DAnCE but is now also used
+ by OpenDDS
+
+USER VISIBLE CHANGES BETWEEN ACE-6.1.1 and ACE-6.1.2
+====================================================
+
+. Added compile time support for Windows CE 7, no runtime testing has
+ been performed
+
+. The High Res Timer global scale factor on Windows is now 64bit, see bugzilla
+ 3703 for the background of this. If you use the gsf in your code, use the
+ new ACE_High_Res_Timer::global_scale_factor_type type trait to not get
+ any conversion warnings
+
+. Removed Tandem NSK v2/v3 support which resulted in cleanup throughout all
+ code. The emulations for ACE_INT64/ACE_UINT64 have been removed because no
+ platform is using them anymore
+
+USER VISIBLE CHANGES BETWEEN ACE-6.1.0 and ACE-6.1.1
+====================================================
+
+. Minor bug fixes
+
+USER VISIBLE CHANGES BETWEEN ACE-6.0.8 and ACE-6.1.0
+====================================================
+
+. Added compilation support for VxWorks 6.9, no runtime
+ testing has been performed
+
+. Added ACE Run-length encoding compressor
+
+. Fixed several Coverity reported issues
+
+USER VISIBLE CHANGES BETWEEN ACE-6.0.7 and ACE-6.0.8
+====================================================
+
+. Added support for MPC's new feature that creates dependency files for IDL
+ files when generating '-type gnuace' projects. Turned off by default, it
+ can be enabled in a features file or on the command line with
+ '-features ace_idl_dependencies=1'.
+
+USER VISIBLE CHANGES BETWEEN ACE-6.0.6 and ACE-6.0.7
+====================================================
+
+. Added a new method to ACE_Atomic_Op, TYPE exchange (TYPE newval)
+ which does an atomic exchange of the new value with ACE_Atomic_Op's value
+ and returns the old value. The tests/Atomic_Op_Test.cpp test program has a
+ test case that exemplifies its usage; see the Exchange_Tester class.
+
+. Added a new feature to timer queue templates classes: TIME_POLICY.
+ This feature is specified through a new template argument and provides the
+ timer queue with a policy for a timer (time of day) value. This feature is
+ intended to replace (in time) the gettimeofday setter method which has been
+ marked @deprecated. For now backwards compatibility is guaranteed.
+ The TIME_POLICY feature provides flexibility with regards to providing a timer
+ source to the timer queues as well as the possibility for a fully optimized
+ calling path.
+ A number of standard time policies are provided in ace/Time_Policy.h.
+ The tests/Timer_Queue_Test.cpp has been updated to reflect and exemplify these
+ changes.
+
+. Added the TIME_POLICY feature also to countdown time class which has now
+ become a template (ace/Countdown_Time_T.h)
+
+. Initial support for Microsoft Visual Studio 11
+
+. Increased overall code quality by using Coverity and Klocwork
+
+USER VISIBLE CHANGES BETWEEN ACE-6.0.5 and ACE-6.0.6
+====================================================
+
+. Removed autoconf support, only traditional way of
+ compilation is shipped from now
+
+. Add support for RHEL 6.1 64bit
+
+USER VISIBLE CHANGES BETWEEN ACE-6.0.4 and ACE-6.0.5
+====================================================
+
+. Improved support for Android and added the ability to run all ACE/TAO tests
+ automatically using the Android emulator
+
+USER VISIBLE CHANGES BETWEEN ACE-6.0.3 and ACE-6.0.4
+====================================================
+
+. Removed support for C++ Builder
+
+. Added support for building with the Android NDK, at least r5c. This
+ is currently available for linux host platforms.
+
+USER VISIBLE CHANGES BETWEEN ACE-6.0.2 and ACE-6.0.3
+====================================================
+
+. Added support for GCC 4.6
+
+USER VISIBLE CHANGES BETWEEN ACE-6.0.1 and ACE-6.0.2
+====================================================
+
+. The ACE_wrappers/ace/OS.h file has been restored in order to ensure
+ build-time compatibility with older ACE versions. Its use will still
+ cause your build to incur more processing time than using the needed
+ ace/OS_NS_*.h files; however, you should be able to build OS.h-including
+ code without needing to replace it with OS_NS_* includes.
+
+. Improved and simplified QNX support
+
+. Changed rand_r() and getpwnam_r() to conform Single UNIX Specification.
+
+. Fixed performance of send_v on windows when individual iovec elements
+ are particularly large.
+
+USER VISIBLE CHANGES BETWEEN ACE-6.0.0 and ACE-6.0.1
+====================================================
+
+. Added support for MinGW with GCC 4.5
+
+USER VISIBLE CHANGES BETWEEN ACE-5.8.3 and ACE-6.0.0
+====================================================
+
+. Changed the string format produced by ACE::timestamp() from the ctime
+ format "Day Mon dd hh:mm:ss yyyy" to ISO-8601 yyyy-mm-dd hh:mm:ss.mmmmmm.
+ This makes the time easier to collate and removes any dependence on locale.
+ The change affects the output from ACE_Log_Msg's %D format and both VERBOSE
+ and VERBOSE_LIGHT timestamps in addition to application-made direct calls
+ to ACE::timestamp().
+
+. Removed GCC < 3 support
+
+. A new build system hook was added for users to include site-private rules
+ in a build. If a file named "rules.private.GNU" in located in any build
+ directory it will get included from
+ $ACE_ROOT/include/makeinclude/rules.local.GNU. The "private_rules_file"
+ make variable can be set to override the name and/or location of the file.
+ If no such rules file exists, its absence is silently ignored. This
+ facility can be used, for example, to integrate a specialized code checker
+ into the build process.
+
+USER VISIBLE CHANGES BETWEEN ACE-5.8.2 and ACE-5.8.3
+====================================================
+
+. Two new methods were added to ACE_Pipe: close_read() and close_write().
+ These methods can be used to close individual pipe handles.
+
+. The ACE::handle_ready() family of methods was changed to prefer using
+ poll() over select() on platforms where poll() is available. This
+ preference was previously only used if ACE_HAS_LIMITED_SELECT was set.
+ The ACE_HAS_LIMITED_SELECT choice is removed, making ACE_HAS_POLL the
+ setting that switches this preference. The driving reason for this
+ is that if select() is called to detect changes on a handle whose
+ values falls outside that which can safely be stored in an fdset,
+ the handle-setting macros/functions will set/clear bits outside
+ of the fdset. This results in very weird memory changes, often in
+ the stack, which are very hard to diagnose. poll()'s operation
+ does not suffer from this affect. With the growing use of large
+ numbers of handles and use of ACE_Dev_Poll_Reactor on Linux,
+ the rate at which this problem was cropping up was increasing.
+
+. Added a simple helper ACE::is_equal() which compares equality of two
+ objects without using operator==. This is useful for comparing floating
+ point values.
+
+. Removed all deprecated methods, arguments, files, classes, macros and
+ anything else we kept for years.
+
+. Removed Irix/Tru64/SCO/Uniware/Cray support
+
+. ACE_Pair has been removed. Users should now use std::pair.
+
+. This is the last micro release that will work with GCC < 3, after x.8.3
+ support for GCC < 3 will be removed
+
+USER VISIBLE CHANGES BETWEEN ACE-5.8.1 and ACE-5.8.2
+====================================================
+
+. Added support for the Microsoft Visual Studio 2010 IDE (vc10)
+
+. Removed complete support for emulated C++ exceptions
+
+USER VISIBLE CHANGES BETWEEN ACE-5.8.0 and ACE-5.8.1
+====================================================
+
+. Added support for Microsoft Visual Studio 2010 using nmake
+
+. Reduced the amount of doxygen pages generated, the original settings caused
+ a doxygen generated html package of 1.4GB which was way too large
+
+. Extended ACE INet addon library with:
+ * HTTP Basic Authentication
+ * SSL/HTTPS support.
+ * Proxy CONNECT tunneling.
+
+USER VISIBLE CHANGES BETWEEN ACE-5.7.9 and ACE-5.8.0
+====================================================
+
+. There are two new ACE_Time_Value methods for getting and setting millisecond
+ values to/from ACE_UINT64 values:
+
+ ACE_UINT64 ACE_Time_Value::get_msec () const
+ void ACE_Time_Value::set_msec (const ACE_UINT64 &ms)
+
+ The former is a replacement for the existing msec(ACE_UINT64&) methods that
+ are "getter" methods whose signatures look confusingly like "setters". See
+ Bugzilla #3336 for the history behind this change.
+
+ The latter is for consistency and clarity.
+
+. Added ACE INet addon library for Inet protocol clients (and possibly
+ servers at some point) like http://, ftp:// etc.
+ The library implements standard C++ iostream wrapper classes for
+ ACE Svc_Handler and Reactor based input/output handling, URL classes
+ and protocol handler classes.
+ NOTE: This is work in progress! There is no guarentee that the API
+ won't change in the next few releases.
+ Protocol handling is currently restricted to client side download
+ requests for HTTP and FTP.
+ Handling for upload requests should be added in the near future as well
+ as HTTP Basic Authentication.
+
+USER VISIBLE CHANGES BETWEEN ACE-5.7.8 and ACE-5.7.9
+====================================================
+
+. ACE's default makefiles (traditional ACE/GNU, not autoconf/automake)
+ now support installation with "make install".
+ Please see the ACE-INSTALL.html file for instructions.
+
+. Support for the ARCH make variable has been enhanced to apply to executables
+ (in addition to libraries and object files), and the ARCH feature has been
+ integrated into the MPC-generated makefiles (to work with MPC's requires
+ and avoids features).
+
+USER VISIBLE CHANGES BETWEEN ACE-5.7.7 and ACE-5.7.8
+====================================================
+
+. ACE now uses GCC builtin Atomic instructions for short,
+ unsigned short, long, unsigned long, int, unsigned int,
+ and bool. This makes our Atomic_Op around 7 times faster
+
+. ACE Service Configuration Framework now process first service
+ configuration files and then command-line directives. Thus if
+ application uses both service configuration files and command-line
+ directives then the command-line directives may override results of
+ directives in the configuration files. At the same time if the
+ application uses only the default svc.conf file and command-line
+ directives then the directives from svc.conf can not override
+ results of the user provided command-line directives.
+
+. ACE_Dev_Poll_Reactor now dispatches notifications in only one thread at
+ a time. This brings notification handling more in line with behavior in
+ other Reactor implementations.
+
+USER VISIBLE CHANGES BETWEEN ACE-5.7.6 and ACE-5.7.7
+====================================================
+
+. Integrated fix for bug 3104 and regression test for
+ interval timers.
+
+. Added support for GCC builtin Atomic instructions which
+ are enabled with GCC >= 4.1 for PPC32/PPC64/IA64
+
+. Improved autoconf support for debian
+
+. Added support for -mcpu and -mtune. Add TCPU=.. to your
+ environment/platform_macros.GNU to specify you cpu and
+ than add cpumodelflag=1 and/or tunemodelflag=1. Using
+ this with IBM Cell increased the performance significantly
+
+USER VISIBLE CHANGES BETWEEN ACE-5.7.5 and ACE-5.7.6
+====================================================
+
+. Added support for iPhone/iPod Touch/iPad. The following
+ environment variables are needed:
+
+ IPHONE_TARGET, should be set to either SIMULATOR or
+ HARDWARE. Set to HARDWARE if you want to deploy
+ on the iPhone/iPod Touch/iPad device.
+
+ IPHONE_VERSION, should be set to 3.1.2 or 3.2. One can
+ set the version to any future or past versions, but
+ only 3.1.2 and 3.2 have been tried.
+
+ Note that one has to compile ACE/TAO statically as
+ it is believed that the iPhone OS does not support
+ dynamic loading of external libraries. The usual
+ procedure of cross compiling ACE/TAO applies
+ (such as setting HOST_ROOT environment variable).
+
+. Added support for Embarcadero C++ Builder 2010
+
+. Added option to print a given ACE_Time_Value in the log
+ message instead of system supplied timestamp as in %T
+ and %D.
+ The option is implemented as a variant of the %D/%T
+ options by using the '#' flag character like '%#D' or
+ '%#T'. When using this flag an ACE_Time_Value pointer is
+ expected in the argument list supplied with the log message.
+ This fixed Bugzilla #3221.
+
+. Fixed problems with ACE_INET_Addr::is_multicast() on
+ little endian platforms. This fixed bugzilla #3729.
+
+. Added compilation support for VxWorks 6.8, no runtime
+ testing has been performed
+
+USER VISIBLE CHANGES BETWEEN ACE-5.7.4 and ACE-5.7.5
+====================================================
+
+. Added MacOSX Snow Leopard support
+
+. Added strsignal() wrapper
+
+. Improved LynxOS support
+
+. Updated Interix port
+
+. Fixed MinGW compilation problems
+
+USER VISIBLE CHANGES BETWEEN ACE-5.7.3 and ACE-5.7.4
+====================================================
+
+. ACE_CDR::consolidate now returns an int, 0 is ok, -1 is failure
+
+. Fixed a bug in the realclean feature of the GNU makefiles
+
+. Improved Sun Studio for Linux support
+
+. Improved OpenBSD support
+
+USER VISIBLE CHANGES BETWEEN ACE-5.7.2 and ACE-5.7.3
+====================================================
+
+. C++ Builder 2009 Update 3 is the only C++Builder that is supported, older
+ and newer compilers are not supported anymore
+
+. Made final changes for the CEGCC port
+
+. Added a set of tests to validate C++ compiler and the stl implementation
+ they ship.
+
+. HP-UX PARISC aCC < 3.80 are deprecated and can't be used anymore. Upgrade
+ to aCC 3.80 or newer
+
+USER VISIBLE CHANGES BETWEEN ACE-5.7.1 and ACE-5.7.2
+====================================================
+
+. Borland C++ makefiles aren't shipped anymore as part of the release
+ but have to be generated by the user
+
+. Refactored gperf to have its own shared library so that we can reuse
+ that in TAO
+
+. Added support for SuSE Enterprise 10
+
+. ACE_Configuration_Heap::open() now returns -1 with errno EBUSY if it is
+ called multiple times. Previous versions would allow multiple calls to
+ open() but leak resources.
+
+USER VISIBLE CHANGES BETWEEN ACE-5.7.0 and ACE-5.7.1
+====================================================
+
+. Added support for Sun Studio 12 Update Pack 1
+
+. Fixed compile problems when using Windows CE x86 release mode
+
+. Fixed compile problems for FreeBSD
+
+USER VISIBLE CHANGES BETWEEN ACE-5.6.9 and ACE-5.7.0
+====================================================
+
+. Added support for the VxWorks vxAtomicLib which is available with VxWorks 6.6
+ and newer. If you don't want to use this library undef ACE_HAS_VXATOMICLIB
+ in your config.h file
+
+. Added support for C++ Builder 2009 Update 3
+
+. Added support for ACE/TAO using the CEGCC project
+
+. Added support for upcoming Fedora 11 and OpenSuSE Factory
+
+USER VISIBLE CHANGES BETWEEN ACE-5.6.8 and ACE-5.6.9
+====================================================
+
+. Removed Borland/CodeGear C++ Builder 2007 support. If you'd like to
+ fund this support please let us know.
+
+. Removed VxWorks 5.5.x, 6.2, and 6.3 support. If you'd like to fund
+ this support please let us know.
+
+. Improved Unicode support.
+
+. Added support for the native Windows Vista and Windows Server 2008
+ condition variables. These has to be enabled at compile time, and when
+ enabled the application can only run on Vista or Server 2008. Add
+ ACE_HAS_WTHREADS_CONDITION_VARIABLE to your config.h file to enable
+ these
+
+. Fixed a bug when trying to read a file of 1 byte when unicode is
+ enabled
+
+. Improved the Windows CE port
+
+. Fixed several Klocwork reported issues
+
+. Added support for MinGW 3.15
+
+. Added support for Incredibuild, which is an MSVC++ feature that
+ optimizes compiles via distributing builds.
+
+USER VISIBLE CHANGES BETWEEN ACE-5.6.7 and ACE-5.6.8
+====================================================
+
+. Added a new function ACE::isdotdir() which determines if a specified
+ pathname is "dot dir" (ie. "." or ".."). ACE::isdotdir() is significantly
+ faster than pair of strcmp() calls.
+
+. Last micro release that is maintained for Borland/CodeGear C++
+ Builder 2007 and Intel C++ on Windows.
+
+. Fixed crash when ACE thread tries to inherit the logging attributes
+ from non ACE threads.
+
+. Fixed many small compile and test errors that occur on some platforms.
+
+. Fixed log output formatting on some platforms.
+
+. Bugs fixed: 2748, 3164, 3480, 3494, 3502, 3541, 3542, 3544, 3557.
+
+USER VISIBLE CHANGES BETWEEN ACE-5.6.6 and ACE-5.6.7
+====================================================
+
+. Changed the automake build's feature test for a "usable" config
+ to warn on failure instead of exiting with an error. This should
+ make it easier to diagnose configure failures, as the script will
+ now generate a config.h file even when the test fails.
+
+. Removed borland MPC template, use the bmake template from now
+
+. Added Windows Mobile 6 support and improved the WinCE port
+
+. Removed BCB6 and BCB2006 support
+
+. Added BCB2009 MPC template
+
+. Updated stat struct on Windows CE to match the stat struct on other
+ platforms so that application code can be written portable
+
+. Added new ACE_OS wrappers: raise, atof, atol, isblank, isascii,
+ isctype, and iswctype
+
+. Added ACE_OS wrapper for narrow-char version of strtoll.
+
+. ACE_OS wrappers for wide-char versions of strtol, strtoul,
+ strtoll, and strtoll.
+
+. Added Visual Studio 2010 (vc10) support
+
+. Added a new feature for the "Traditional Make" build facility to allow
+ building for multiple architectures out of a single source directory.
+ To use this facility, set the ARCH make variable. The ARCH value will be
+ used to add a subdirectory layer below the source directory where the
+ traditional .shobj, .obj, etc. directories will be placed.
+
+. Added support for HP-UX 11iv3 on Integrity using aC++
+
+. ACE (and TAO) can now be built using GNU make and the Microsoft Visual C++
+ compiler and linker. See include/makeinclude/platform_win32_msvc.GNU for
+ more details.
+
+. Added support for FC10
+
+USER VISIBLE CHANGES BETWEEN ACE-5.6.5 and ACE-5.6.6
+====================================================
+
+. Added an option to the ACE_Process_Options class to use a wchar_t
+ environment buffer on Windows.
+
+. A new configure option, --enable-rcsid, was added to the autoconf build.
+ This is used to embed RCS IDs in object files.
+
+. A new method was added: void ACE_Time_Value::msec (ACE_UINT64&)
+ This method, like the existing msec(ACE_UINT64&)const method, obtains the
+ time value in milliseconds and stores it in the passed ACE_UINT64 object.
+ This method was added so that msec(ACE_UINT64&) can be called on both
+ const and non-const ACE_Time_Value objects without triggering compile errors.
+ Fixes Bugzilla #3336.
+
+. Added ACE_Stack_Trace class to allow users to obtain a stack trace
+ within their application on supported platforms. A new conversion
+ character, the question mark, was added to ACE_Log_Msg for stack
+ trace logging.
+
+. Added iterator support to ACE_Message_Queue_Ex class. The resulted in
+ the addition of ACE_Message_Queue_Ex_Iterator class and
+ ACE_Message_Queue_Ex_Reverse_Iterator class.
+
+. Renamed gperf to ace_gperf to prevent clashes with the regular gperf
+ tool that is available in linux distributions
+
+. Added support for FC9
+
+. Added support for OpenSuSE 11.0
+
+. Improved support for GCC 4.2 and 4.3
+
+. Added support for CodeGear C++ Builder 2009
+
+USER VISIBLE CHANGES BETWEEN ACE-5.6.4 and ACE-5.6.5
+====================================================
+
+. Added new Monitoring lib that can be used to store and retrieve
+ counters. This is disabled by default because it is not 100%
+ finished yet, with the next release it will be enabled by default
+
+. Fixed bug in ACE_Service_Config when it was used from a thread
+ not spawned by ACE
+
+. Add VxWorks 6.x kernel mode with shared library support to ACE
+
+. Extended the implementation of Unbounded_Set, which has been
+ renamed Unbounded_Set_Ex, to accept a second parameter which is
+ a comparator that implements operator() which returns true if
+ the items are equivalent. Unbounded_Set has been reimplemented
+ in terms of Unbounded_Set_Ex using a comparator that uses operator==,
+ which captures the previous behavior.
+
+. Added support for Intel C++ on MacOSX
+
+USER VISIBLE CHANGES BETWEEN ACE-5.6.3 and ACE-5.6.4
+====================================================
+
+. Reworked the relationship between ACE_Service_Config and
+ ACE_Service_Gestalt
+
+. Improved autoconf support
+
+. Improved AIX with gcc support
+
+. Improved OpenVMS support
+
+. Improved VxWorks support
+
+USER VISIBLE CHANGES BETWEEN ACE-5.6.2 and ACE-5.6.3
+====================================================
+
+. Deprecated Visual Age 5 and older
+
+. Closed a rare race condition hole whereby ACE_Atomic_Op<> function
+ pointers would not be fully initialized prior to use. See bugzilla
+ 3185 for details.
+
+. Tweaks to support MacOS X Leopard (10.5 and 10.5.1) on Intel
+
+. Fixed compile problems with MinGW with GCC 4.2. Do note that we do see
+ much more test failures then when using GCC 3.4.
+
+. Changed to use synchronous exception handling with msvc 8/9 which is the
+ default. Asynchrous exception handling does catch access violations but
+ it leads to lower performance and other problems. See also bugzilla 3169
+
+. Make ace_main extern C with VxWorks so that it doesn't get mangled
+
+. Fixed compile errors and warnings for VxWorks 6.6
+
+. Added an MPC generator for the WindRiver Workbench 2.6 which is shipped
+ with VxWorks 6.4
+
+. Added support for CodeGear C++ Builder 2007 with December 2007 update
+ installed
+
+. Added support for VxWorks 5.5.1
+
+. Implemented the const reverse iterator for ACE_Hash_Map_Manager_Ex
+
+. Increased support for using ACE_Hash_Map_Manager_Ex with STL
+ functions based on latest standard C++ draft
+
+USER VISIBLE CHANGES BETWEEN ACE-5.6.1 and ACE-5.6.2
+====================================================
+
+. ACE-ified the UUID class, which will change user applications slightly.
+
+. Added support for Sun Studio 12
+
+. Added support for Intel C++ 10.1
+
+. Fixed runtime problems with VxWorks 6.x in kernel mode, several improvements
+ have been made to ACE, but also some problems in the VxWorks kernel have
+ been found for which WindRiver has made patches.
+
+. Added support for VxWorks 6.5 kernel mode
+
+. Added support for MacOS 10.5
+
+. Support for MacOS 10.4 is now deprecated.
+
+. Added support for OpenSuSE 10.3
+
+. Added support for RedHat 5.1
+
+. Added support for Microsoft Visual Studio 2008
+
+. Added support for Fedora Core 8
+
+. Added support for Ubuntu 7.10
+
+. With Ubuntu 7.04 and 7.10 we can't use visibility, that results in
+ unresolved externals when building some tests. With lsb_release we
+ now detect Ubuntu 7.04 and 7.10 automatically and then we disable
+ visibility
+
+. Removed deprecated (un)subscribe methods from ACE_SOCK_Dgram_Mcast
+
+. Added an additional replace() method to ACE_OuptutCDR for replacing a
+ ACE_CDR::Short value. Also added write_long_placeholder() and
+ write_short_placeholder() to properly align the stream's write pointer,
+ write a placeholder value and return the placeholder's pointer. The pointer
+ can later be used in a call to replace() to replace the placeholder with a
+ different value.
+
+. Initial support for VxWorks 6.6
+
+. Removed support for pthread draft 4, 6, & 7. This makes the ACE threading
+ code much cleaner
+
+. Improved autoconf support
+
+. Fixed TSS emulation problems
+
+. Changed ACE_thread_t and ACE_hthread_t to int for VxWorks kernel mode. All
+ thread creation methods do have an additional const char* argument to
+ specify the task name, this now also works with pthread support enabled
+
+. Use bool in much more interfaces where this is possible
+
+. Added support for Debian Etch
+
+. Fixed ACE CDR LongDouble support on VxWorks 6.x
+
+. Added Microsoft Visual Studio 2008 project files to the release packages
+
+. Fixed a few bugs in the ACE_Vector template
+
+USER VISIBLE CHANGES BETWEEN ACE-5.6 and ACE-5.6.1
+====================================================
+
+. Added support for CodeGear RAD Studio 2007
+
+. Added support for CodeGear C++ Builder 2007 Update 3
+
+. Modified the definiton of ACE_DEFAULT_THREAD_KEYS on Windows so it
+ is based on the version of the OS as defined by Microsoft in this web
+ page: http://tinyurl.com/2jqcmd
+ This fixes bugzilla #2753
+
+USER VISIBLE CHANGES BETWEEN ACE-5.5.10 and ACE-5.6
+====================================================
+
+. OpenVMS 8.3 on IA64 port
+
+. Added autoconf support for Intel C++ 10.0
+
+. Improved autoconf support on Linux, Solaris, NetBSD and HPUX
+
+. CodeGear C++ Builder 2007 Update 2 support
+
+. The netsvcs's client logging daemon has a new configuration option,
+ -llocal-ip[:local-port], which can be used to specify the local IP
+ address and port number for the client logging daemon's connection to
+ the server logging daemon. If the -l option is specified with an IP
+ address but not a port number, an unused port number is selected.
+
+. A new ACE+TAO port to LabVIEW RT 8.2 with Pharlap ETS. The host build
+ environment is Windows with Microsoft Visual Studio .NET 2003 (VC7.1).
+ Please see the ACE-INSTALL.html file for build instructions.
+
+USER VISIBLE CHANGES BETWEEN ACE-5.5.9 and ACE-5.5.10
+====================================================
+
+. The ACE_utsname struct, used in the ACE_OS::uname() function when the
+ platform doesn't provide the standard utsname struct, was changed. It
+ defines a number of text fields and their types were changed from
+ ACE_TCHAR[] to char[] in order to be consistent with all other platforms.
+ This removes the need to write different code for platforms where
+ ACE_LACKS_UTSNAME_T is set and that have wide characters (most probably
+ Windows). Fixes Bugzilla #2665.
+
+. The ACE::daemonize() "close_all_handles" parameter was changed from
+ an "int" to a "bool" to better reflect how it is used.
+
+. VxWorks 6.5 support. Compilation of the core libraries has been validated
+ but no runtime testing has been performed.
+
+. CodeGear C++ Builder 2007 support.
+
+. The FaCE utility was moved from the ACE_wrappers/apps directory to
+ ACE_wrappers/contrib. It is used for testing ACE+TAO apps on WinCE.
+ See the ACE_wrappers/contrib/FaCE/README file for more information.
+
+. ACE_INET_Addr::set (u_short port, char *host_name, ...) now favors IPv6
+ addresses when compiled with ACE_HAS_IPV6 defined and the supplied address
+ family is AF_UNSPEC. This means that if host_name has an IPv6 address in
+ DNS or /etc/hosts, that will be used over an IPv4 address. If no IPv6
+ address exists for host_name, then its IPv4 address will be used.
+
+. Intel C++ 10.0 support
+
+. Support for the version of vc8 for 64-bit (AMD64) shipped with the Microsoft
+ Platform SDK.
+
+. Fixed ACE_Vector::swap() (bugzilla #2951).
+
+. Make use of the Atomic_Op optimizations on Intel EM64T processors. The
+ Atomic_Op is now several times faster on EM64T then with previous versions
+ of ACE
+
+USER VISIBLE CHANGES BETWEEN ACE-5.5.8 and ACE-5.5.9
+====================================================
+
+. Use Intel C++ specific optimizations for Linux on IA64
+
+. Improved support for ACE_OS::fgetc. Added support for ACE_OS::fputc,
+ ACE_OS::getc, ACE_OS::putc and ACE_OS::ungetc.
+
+. Added support for ACE_OS::log2(double) and improved support for
+ ACE::log2(u_long).
+
+. Shared library builds on AIX now produce a libxxx.so file instead of the
+ previous practice of producing libxxx.a(shr.o).
+
+. GCC 4.1.2 that comes with Fedora 7 seems to have a fix for the visibility
+ attribute we use for the singletons. F7 users will therefore need to
+ define the following in your config.h file.
+ ACE_GCC_HAS_TEMPLATE_INSTANTIATION_VISIBILITY_ATTRS 1
+
+. Fixed (rare) problem in TP_Reactor where incorrect event handler was
+ resumed.
+
+. Reduced footprint on some platforms, particularly those that use
+ g++ >= 3.3.
+
+USER VISIBLE CHANGES BETWEEN ACE-5.5.7 and ACE-5.5.8
+====================================================
+
+. Extended ACE_Event constructor with optional LPSECURITY_ATTRIBUTES
+ argument
+
+. Added support for QT4
+
+. Added support to integrate with the FOX Toolkit (www.fox-toolkit.org)
+
+. Added support for Microsoft Visual Studio Code Name "Orcas", which is
+ the msvc9 beta
+
+. Added ability to provide an optional priority when calling
+ ACE_Message_Queue_Ex::enqueue_prio(). There was previously no way
+ to specify a priority for queueing.
+
+. Removed support for Visual Age on Windows.
+
+. ACE will compile once again with ACE_LACKS_CDR_ALIGNMENT #defined.
+
+. ACE_Process_Manager::terminate() no longer removes the process from the
+ process descriptor table; the pid remains available in order to call
+ ACE_Process_Manager::wait().
+
+USER VISIBLE CHANGES BETWEEN ACE-5.5.6 and ACE-5.5.7
+====================================================
+
+. ACE 5.5 contained a set of pragmas which prevented Visual Studio 2005 (VC8)
+ from issuing warnings where C run-time functions are used but a more
+ secure alternative is available. For more information on the C run-time
+ issues and Microsoft's response, please see the following MSDN page:
+ http://msdn2.microsoft.com/en-us/library/8ef0s5kh(VS.80).aspx.
+ In this beta, the pragmas which prevented the warnings have been removed.
+ The ACE library has been reviewed and most of the use of "unsafe" functions
+ has been fixed where possible. Since not all of the warnings emanating from
+ ACE are situations that can or should be fixed, the ACE VC8 projects will
+ prevent the warnings while building the ACE kit and its contained examples,
+ tests, etc. The warnings are disabled by adding Microsoft-specified macros
+ to the compile line via MPC. If desired, the warnings can be re-enabled by
+ regenerating the project files with different MPC features. Note, however,
+ that while ACE without warnings caused by the new C run-time functions, your
+ application builds may trigger these warnings either by use of the "unsafe"
+ C run-time functions or via use of an inlined ACE_OS method which uses it.
+ If the warning is caused by an ACE_OS method, there is a more safe alternate
+ available, probably located by appending _r to the method name (e.g.,
+ instead of using ACE_OS::ctime(), use ACE_OS::ctime_r()).
+ There are other cases where the compiler may have issued warnings and ACE
+ prevented this via a #pragma. These #pragmas have been removed as well.
+ This may cause your application builds to trigger more warnings from VC8
+ than past ACE versions. You should review your code and either correct
+ the code or disable the warnings locally, as appropriate.
+
+. The "release" argument to a number of ACE_String_Base<> methods was changed
+ from int to bool to more accurately reflect its purpose. The following
+ methods were changed:
+
+ ACE_String_Base (const CHAR *s,
+ ACE_Allocator *the_allocator = 0,
+ int release = 1);
+ to
+ ACE_String_Base (const CHAR *s,
+ ACE_Allocator *the_allocator = 0,
+ bool release = true);
+
+ ACE_String_Base (const CHAR *s,
+ size_type len,
+ ACE_Allocator *the_allocator = 0,
+ int release = 1);
+ to
+ ACE_String_Base (const CHAR *s,
+ size_type len,
+ ACE_Allocator *the_allocator = 0,
+ bool release = true);
+
+ void set (const CHAR * s, int release = 1);
+ to
+ void set (const CHAR * s, bool release = true);
+
+ void set (const CHAR * s, size_type len, int release);
+ to
+ void set (const CHAR * s, size_type len, bool release);
+
+ void clear (int release = 0);
+ to
+ void clear (bool release = false);
+
+ Since ACE_String_Base forms the basis of the ACE_CString and ACE_TString
+ classes, this may ripple out to user application code. If you encounter
+ errors in this area while building your applications, replace the
+ int argument you are passing to the method now with either true or false.
+
+. Solutions for the eVC3/4 platform have been removed from this
+ release. Note that we package WinCE projects/workspaces for use
+ with VC8.
+
+. There were 3 new ACE_Log_Msg logging format specifiers added to make logging
+ easier for types that may change sizes across platforms. These all take one
+ argument, and the new formats are:
+ %b - format a ssize_t value
+ %B - format a size_t value
+ %: - format a time_t value
+
+. The ace/Time_Request_Reply.h and ace/Time_Request_Reply.cpp files were
+ moved from $ACE_ROOT/ace to $ACE_ROOT/netsvcs/lib. The time arguments in
+ the public API to ACE_Time_Request were changed from ACE_UINT32 to time_t
+ and the portions of the on-wire protocol that contains time was changed from
+ ACE_UINT32 to ACE_UINT64. Thus, code that uses the ACE_Time_Request class
+ to transfer time information will not interoperate properly with prior
+ ACE versions. This will affect uses of the netsvcs time clerk/server.
+
+. The portion of the ACE_Name_Request class that carries the on-wire seconds
+ portion of a timeout value was changed from ACE_UINT32 to ACE_UINT64. This
+ means that Name server/clients at ACE 5.5.7 and higher will not interoperate
+ properly with previous ACE versions' name servers/clients.
+
+. In the ACE_Log_Record (ACE_Log_Priority, long, long) constructor, the
+ second argument, long time_stamp, was changed to be of type time_t. This
+ aligns the type with the expected value, a time stamp such as that returned
+ from ACE_OS::time().
+
+. Added support for VxWorks 6.x cross compilation using a Windows host
+ system
+
+. Added support for VxWorks 6.x using the diab compiler
+
+. The destructor of ACE_Event_Handler no longer calls
+ purge_pending_notifications(). Please see bugzilla #2845 for the full
+ rationale.
+ (http://deuce.doc.wustl.edu/bugzilla/show_bug.cgi?id=2845)
+
+USER VISIBLE CHANGES BETWEEN ACE-5.5.5 and ACE-5.5.6
+====================================================
+
+. The ACE_TYPENAME macro has been added to those that are not
+ available when the ACE_LACKS_DEPRECATED_MACROS config option is set
+ (it is not set by default). You are encouraged to replace the use of
+ ACE_TYPENAME with the C++ typename keyword before the ACE_TYPENAME
+ macros is removed from ACE in the future.
+
+. A new script, rm_exception_macros.pl, has been added to help users
+ remove the use of the ACE exception macros from their own code.
+
+USER VISIBLE CHANGES BETWEEN ACE-5.5.4 and ACE-5.5.5
+====================================================
+
+. The prebuild MPC keyword is now supported by the gnuace project type.
+ This fixes Bugzilla #2713.
+
+. Support for Windows earlier than NT 4 SP2 was removed. ACE will not build
+ for Windows 95, 98, Me, etc. out of the box any longer.
+
+. Reformat stringified IPv6 addresses to use [addr]:port when printing
+ addresses that contain ':' such as "::1".
+
+. Added method to ACE_INET_Addr to determine if address is IPv6 or
+ IPv4 multicast.
+
+. Fixed a bug in ACE_Async_Timer_Adapter_Timer_Queue_Adapter where the
+ gettimeofday function of the timer queue was ignored when setting the alarm.
+
+. Fixed a problem where, on Solaris 9 onwards, calling
+ ACE_OS::thr_create(THR_NEW_LWP) more than 2^15 (65535) times in a
+ process will fail. See changelog entry from "Wed Jan 3 22:31:05 UTC
+ 2007 Chris Cleeland " for more information.
+
+. Fixed a bug in ACE_QtReactor where the two select() calls in that function
+ might select on different handler sets.
+
+. ACE_SOCK_IO::recvv(iovec[], size_t, const ACE_Time_Value* = 0) and
+ ACE_SOCK_IO::sendv (const iovec[], size_t, const ACE_Time_Value* = 0) methods
+ were changed to specify the iovec count argument as int instead of size_t
+ since it gets reduced to int in the underlying OS calls (usually).
+
+. The following deprecated methods were removed:
+
+ ssize_t ACE_SOCK_IO::recv (iovec iov[],
+ size_t n,
+ const ACE_Time_Value *timeout = 0) const;
+
+ ssize_t ACE_SOCK_IO::recv (iovec *io_vec,
+ const ACE_Time_Value *timeout = 0) const;
+
+ ssize_t ACE_SOCK_IO::send (const iovec iov[],
+ size_t n,
+ const ACE_Time_Value *timeout = 0) const;
+
+ These were previously replaced with more specific recvv() and sendv()
+ methods.
+
+. The ACE_Service_Repository::find(const ACE_TCHAR name[],
+ const ACE_Service_Type **srp = 0,
+ int ignore_suspended = true) const
+ method's 'ignore_suspended' parameter was changed from int to bool to
+ reflect it's purpose as a yes/no indicator.
+
+. Added --enable-ace-reactor-notification-queue configure script
+ option to the autoconf build for enabling the Reactor's userspace
+ notification queue (defines ACE_HAS_REACTOR_NOTIFICATION_QUEUE in
+ config.h).
+
+. The int ACE_OutputCDR::consolidate(void) method was contributed by
+ Howard Finer at Sonus Networks. This method consolidates any continuation
+ blocks used by an ACE_OutputCDR object into a single block. It's useful for
+ situations which require access to a single memory area containing the
+ encoded stream, regardless of its length, when the length cannot be known
+ in advance.
+
+. There are a number of new methods defined on ACE_String_Base:
+
+ size_t capacity (void) const: This method returns the number
+ of allocated CHAR units in the string object.
+
+ void fast_resize (size_t): This method manage the sizing/reallocating
+ of the string, but doesn't do the memory setting of resize().
+
+ bool operator!= (const CHAR *) const
+ bool operator== (const CHAR *) const: These methods compare the
+ string with a nul-terminated CHAR* string.
+
+ nonmember functions operator== and operator!= where also added
+ that compare const ACE_String_Base and const CHAR*; these make
+ it possible to switch ACE_String and CHAR* on either side of
+ the operator.
+
+ Thank you to Kelly Hickel for these additions.
+
+. There are 2 new build options on the traditional make command:
+ dmalloc and mtrace. When specified at build time (e.g. make mtrace=1)
+ the PLATFORM_DMALLOC_CPPFLAGS and/or PLATFORM_MTRACE_CPPFLAGS values
+ are added to CPPFLAGS. For dmalloc, the PLATFORM_DMALLOC_LDFLAGS and
+ PLATFORM_DMALLOC_LIBS are added to LDFLAGS and LIBS, respectively.
+ Thank you to Howard Finer for supplying these additions.
+
+. Added the ability to specify additional purify and quantify command-line
+ options by setting PLATFORM_PURIFY_OPTIONS and PLATFORM_QUANTIFY_OPTIONS,
+ respectively. Thank you to Howard Finer for supplying these additions.
+
+. Added the ability to use trio (http://sourceforge.net/projects/ctrio/)
+ if platform lacks decent support for vsnprintf. trio support is
+ enabled by defining trio=1 in plaform_macros.GNU
+
+. Removed Irix 5, DGUX, and m88k support
+
+. Improved LynxOS 4.2 support
+
+. VxWorks 6.4 support
+
+. Added support for FC6. Because the GCC 4.1.1 version that gets shipped
+ has a fix for the visibility attribute we use for the singletons
+ you will need to define the following in your config.h file. This can't be
+ done automatically because SuSE 10.2 gets shipped with GCC 4.1.2 but
+ doesn't have the same fix
+ ACE_GCC_HAS_TEMPLATE_INSTANTIATION_VISIBILITY_ATTRS 1
+
+. RTEMS port
+
+USER VISIBLE CHANGES BETWEEN ACE-5.5.3 and ACE-5.5.4
+====================================================
+
+. Added appropriate intptr_t and uintptr_t typedefs on platforms that
+ don't provide them (i.e. when ACE_LACKS_INTPTR_T is defined).
+
+. Added ability to explicitly choose support for 32 bit or 64 bit file
+ offsets on all platforms. Define the _FILE_OFFSET_BITS preprocessor
+ symbol to either 32 or 64 to choose the desired number of file
+ offset bits. This preprocessor symbol is supported natively by most
+ UNIX and UNIX-like operating systems, and supported by ACE on
+ Windows. Use the new ACE_OFF_T typedef to refer to file offsets
+ across UNIX and Windows portably.
+
+. 64-bit file offsets are now enabled by default in Win64
+ configurations.
+
+. Improved support for 64 bit platforms (64 bit addresses, etc).
+
+. Added STL-style traits, iterators and a swap() method to the
+ ACE_Array_Base<> class template.
+
+. Added STL-style traits and iterator accessors to the
+ ACE_Hash_Map_Manager_Ex<> class template, as well as new find() and
+ unbind() methods that return (as an "out" parameter) and accept
+ iterators, respectively.
+
+. Greatly improved event handler dispatch performance in
+ select()-based reactors (e.g. ACE_Select_Reactor and ACE_TP_Reactor)
+ for large handle sets on Windows. Previous event handler search
+ were linear, and are now constant on average.
+
+. Addressed a number of Coverity errors (CHECKED_RETURN, DEADCODE,
+ LOCK, USE_AFTER_FREE, RESOURCE_LEAK, FORWARD_NULL).
+
+. Added STL-style "element_type" trait to all ACE auto_ptr class
+ templates.
+
+. Removed support for LynxOS 3.x.
+
+. Resolved Bugzilla #2701 to ensure fini() is called for all
+ Service Objects upon calling ACE_Service_Config::close()
+
+. VxWorks 5.5.2 has been tested, for ACE the support is exactly
+ the same as for VxWorks 5.5.1. No specific defines or flags have
+ to be used.
+
+USER VISIBLE CHANGES BETWEEN ACE-5.5.2 and ACE-5.5.3
+====================================================
+
+. Added the base projects for executionmanager_stub and plan_generator.
+
+. Added the ACE_Hash_MultiMap_Manager class and its test file.
+
+. Changed the ACE_Synch_Options::operator[] method to return bool rather than
+ int. The value returned is a yes/no indication of whether or not the
+ specified option(s) are set in the object.
+
+. Changed the prototype(s) for ACE::debug () to return (and take) a
+ bool. This is consistent with the original intent for this
+ feature. If you have been using it like 'ACE::debug () > 0' or
+ 'ACE::debug (1)', you may have to rebuild ACE. The value of the
+ ACE_DEBUG environment variable can be used to specify the initial
+ value for ACE::debug(), at the process start up.
+
+. An assembler (within a C source file) based implementation for SPARC
+ of atomic operations suitable for use with the
+ ACE_Atomic_Op and
+ ACE_Atomic_Op specializations has
+ been added. Currently, it can only be enabled by setting the
+ atomic_ops_sparc make macro to 1 when using the GNUACE build system with
+ the Solaris SunCC compiler. It should be noted that this requires the
+ -xarch=v8plus (or higher) be added to the CFLAGS make macro or the
+ assembler code will not compile.
+
+. The ACE_Message_Queue_Ex_N class
+ is new, contributed by Guy Peleg .
+ ACE_Message_Queue_Ex_N is
+ similar to ACE_Message_Queue_Ex in that the object queued is a
+ template parameter. However, ACE_Message_Queue_Ex_N allows the
+ enqueueing and dequeueing of multiple chained objects at once. This
+ wasn't added to ACE_Message_Queue_Ex because the chained object
+ functionality requires the ACE_MESSAGE_TYPE class to have a
+ ACE_MESSAGE_TYPE *next (void) const method, analogous to
+ ACE_Message_Block::next(), to follow the chain and this would
+ probably break existing applications using ACE_Message_Queue_Ex.
+ The ACE_wrappers/tests/Message_Queue_Test_Ex.cpp test has an example of
+ how to use the new class.
+
+. The selector and comparator function pointer arguments to ACE_OS::scandir()
+ and ACE_Dirent_Selector are now marked as extern "C" to enforce their
+ use with a C RTL function. User code that defines functions which are
+ passed as the selector or comparator arguments which are not declared
+ extern "C" may generate compile warnings. To resolve this, add extern "C"
+ to the function's signature. See ACE_wrappers/tests/Dirent_Test.cpp for
+ an example.
+
+. To address a problem in the ACE string interface that prevented
+ substring or character searches in very large strings (e.g. greater
+ than the maximum value of an ssize_t type) from being correctly
+ reported to the caller, the find(), rfind() and strstr() methods now
+ return an unsigned integer (size_t) instead of a signed one
+ (ssize_t). Affected classes include:
+
+ * ACE_CString
+ * ACE_WString
+ * ACE_TString
+ * ACE_NS_WString
+
+ Unless you have been explicitly using -1 instead of npos when
+ comparing the return value of find(), rfind() and strstr(), and/or
+ assigning the return value to ssize_t you should not see any
+ difference. A new size_type typedef has been added to the ACE string
+ class to aid developers. This typedef is analogous to the standard
+ C++ string::size_type typedef.
+
+ The ACE_String_Base<>::strstr() documentation and the default
+ rfind() argument erroneously referred to -1 instead of npos. Those
+ instances have been corrected.
+
+ To summarize, a "no position" condition is denoted using the npos
+ constant, not -1. It can be referred directly by scoping it with the
+ appropriate string class (e.g. ACE_CString::npos, ACE_WString::npos,
+ etc).
+
+. Changing the shared library extension for hpux ia64 to ".so". On
+ HP-UX 11i Version 1.5 the naming scheme is lib*.sl for PA and
+ lib*.so on IPF.
+
+. The ACE_Refcounted_Auto_Ptr reset() and release() methods were changed
+ per Bugzilla #1925. They will both now detach from the underlying
+ ACE_Refcounted_Auto_Ptr_Rep object; reset() will create a new one for
+ the new pointer specified as its argument. This change may cause referenced
+ objects to be deleted in cases where previous ACE versions would not have.
+
+. The return type of "ACE_Refcounted_Auto_Ptr::null (void) const" changed
+ from int to bool. It's possible values, true and false, have not changed.
+
+. TTY_IO now accepts "none" as a valid parity value. Due to this change
+ 'parityenb' member is now deprecated and will be removed in the future.
+ The users of TTY_IO class should change their code to use only 'paritymode'
+ member for parity control and leave 'parityenb' unchanged (it is
+ enabled by default in class constructor).
+
+. Support for Intel C++ 9.1 on Windows and Linux
+
+. VxWorks 6.3 support
+
+. Fixed Bugzilla #2648 to make sure ACE_Service_Object::fini()
+ is called iff ACE_Service_Object::init() succeeded, as per
+ C++NPv2.
+
+. Added preliminary support for Mac OS X 10.4 on Intel CPU's.
+
+. Fixed Bugzilla #2602 to re-enable XML Service Configurator
+ file support.
+
+USER VISIBLE CHANGES BETWEEN ACE-5.5.1 and ACE-5.5.2
+====================================================
+
+. Added support for:
+ - VxWorks 6.2 for the rtp model using pthread support
+ - OpenVMS 8.2 for Alpha
+
+. Removed code and configurations that provided support for:
+ - Visual C++ 6.0 and 7.0
+ - Chorus
+ - pSOS
+ - KAI C++ on all platforms
+
+. Explicit template instantiation support has been removed. This effectively
+ removes support for Sun Forte 6 and 7 which required explicit template
+ instantiation to build ACE reliably.
+
+. Added support for multiple independent Service Repositories through
+ configuration contexts called "Gestalt". Full backwards compatibility
+ is maintained through the existing ACE_Service_Config static methods,
+ while direct individual repository access is enabled through instances
+ of the new ACE_Service_Gestalt class. ACE_Service_Config has changed to
+ a specialization of ACE_Service_Gestalt and is only responsible for the
+ process-wide configuration.
+
+. To support dynamically-sized ACE_Log_Record messages, the netsvcs
+ logging components now use ACE CDR encoding and transfer mechanisms
+ inspired by the examples in Chapter 4 of the C++NPv1 book.
+ The client and server logging daemons in ACE 5.5.2 and forward will
+ not interoperate with those in previous ACE versions.
+
+. Added a wrapper for the sendfile API (ACE_OS::sendfile()).
+
+. Added support for netlink sockets on Linux.
+
+. Added a new method, ACE_Task::last_thread(). This method returns the thread
+ ID (ACE_thread_t) of the last thread to exit from the ACE_Task object.
+ Users checking to see if a thread is the last one out (for example, to know
+ when to perform cleanup operations) should compare the current thread ID to
+ the return value from last_thread(). This is a change from the previously
+ recommended practice (C++NPv2, page 189) of comparing the return value of
+ thr_count() with 0.
+
+. Changed the first argument to ACE_OS::strptime() to be 'const' which
+ matches its usual usage in POSIX strptime(). This change allows users to
+ pass const strings in - a common use case.
+
+. Made part of the file support in ACE 64bit but we have some places where
+ 32bit types are used, this could lead to some conversion warnings which
+ will be addressed in the near future, but getting everything 64bit
+ compliant is a lot of work.
+
+USER VISIBLE CHANGES BETWEEN ACE-5.5 and ACE-5.5.1
+====================================================
+
+. Added support for the --enable-symbol-visibility configure option
+ to the autoconf build infrastructure instead of solely relying on
+ feature tests to enable/disable symbol visibility support. This
+ avoids build problems with icc, etc.
+
+. Added support for the --enable-fl-reactor configure option to the
+ autoconf build infrastructure to build the ACE_FlReactor library.
+
+. Added support for the --enable-qt-reactor configure option to the
+ autoconf build infrastructure to build the ACE_QtReactor library.
+
+. Added support for the --enable-xt-reactor configure option to the
+ autoconf build infrastructure to build the ACE_XtReactor library.
+
+. Fixed a bug that would cause timer IDs from ACE_Timer_Heap to be
+ improperly duplicated under certain conditions (Bugzilla #2447).
+
+. Fixed ACE_SSL_Context::private_key(), context(), and dh_params() methods
+ to allow retrying a file load after a failed call.
+
+. Fixed ACE_SSL_Asynch_Stream so it can be instantiated; also moved the
+ declarations for ACE_SSL_Asynch_Read_Stream_Result,
+ ACE_SSL_Asynch_Write_Stream_Result, and ACE_SSL_Asynch_Result classes
+ to the ace/SSL/SSL_Asynch_Stream.h file so applications can see them.
+
+USER VISIBLE CHANGES BETWEEN ACE-5.4.10 and ACE-5.5
+====================================================
+
+. Added a platform macros option "templates=manual", currently only
+ applies to AIX 5.3 with XL 7 compiler. It allows the user to tell the
+ compiler to set -qnotempinc and -qnotemplateregistry and works well
+ in static builds.
+
+. ACE and its tests compile error free with GCC 4.1 pre release.
+
+. ACE_Recursive_Thread_Mutex::get_nesting_level() fixed for 64-bit Windows
+ XP on amd64/EM64T hardware.
+
+. Many build-time fixes for Windows Mobile 5 and Windows PocketPC 2003 using
+ Visual Studio .NET 2005 (VC8).
+
+. Added support for the --enable-tk-reactor configure option to the
+ autoconf build infrastructure to build the ACE_TkReactor library.
+
+USER VISIBLE CHANGES BETWEEN ACE-5.4.9 and ACE-5.4.10
+====================================================
+
+. Fixed a bug in ACE_Timer_Heap_T::cancel().
+
+. Improved ACE_Time_Value support for boundary conditions.
+
+. Fixed problems with operator placement delete on certain C++ compilers.
+
+. Fixed a bug with the ACE_SPIPE_Acceptor on Windows.
+
+. Correctly set sockaddr_in.sin_len and sockaddr_in6.sin6_len on
+ platforms that have these fields.
+
+. Avoided problems with namespace pollution for max() macros.
+
+. Many fixes for ACE_LACKS* and ACE_HAS* macros for autoconfig.
+
+USER VISIBLE CHANGES BETWEEN ACE-5.4.8 and ACE-5.4.9
+====================================================
+
+. Added dozens of new ACE_LACKS and ACE_HAS defines which are used to
+ simplify the ACE_OS layer
+
+. Constructors of ACE_Time_Value have been made explicit to prevent
+ implicit conversions.
+
+. Added a shutdown() method to ACE_Barrier. The new method aborts the
+ wait by all threads.
+
+. Changed the behavior of ACE_Message_Queue::enqueue_head() and
+ enqueue_tail(). If the enqueued message block has other blocks
+ chained to it via its next() pointer, the entire chain of blocks
+ will be enqueued at once.
+
+. Improved the support for high-resolution timers with
+ ACE_Timer_Queue_Adapter.
+
+. Make it possible to disable file caching in JAWS.
+
+. Improved ACE_Pipe implementation so that it uses localhost to avoid
+ firewall problems.
+
+. Added Unicode support to the Service Configurator.
+
+USER VISIBLE CHANGES BETWEEN ACE-5.4.7 and ACE-5.4.8
+====================================================
+
+. Improved IPv6 support
+
+. Improved 64bit portability
+
+. TTY_IO overhaul
+ - Improved documentation.
+ - It is now possible to request infinite timeout in portable manner.
+ This can be achieved by setting negative value to readtimeoutmsec.
+ - Various bugs fixed and portability issues resolved.
+
+. Subset ACE for TAO and TAO Services
+
+. Support for Intel C++ 9.0 on Windows and Linux
+
+. Support for Microsoft Visual Studio 2005 (aka VC8) for Win32 as well
+ as the Windows CE platforms Pocket PC 2003 and Windows Mobile 5.
+ Solution/project files are generated with an appended "_vc8" for
+ Win32 and "_WinCE" for the CE platforms. See
+ ACE_wrappers/docs/CE-status.txt for more information.
+
+. Completed implementation of ACE_Dev_Poll_Reactor using the Linux epoll
+ facility; tested on Red Hat Enterprise Linux 4.
+
+. The in-memory size of an ACE_RB_Tree will be smaller due to rearranged
+ placement of pointers.
+
+. Added an optimization to CDR stream to ignores alignment when marshaling
+ data. Use this new ACE_LACKS_CDR_ALIGNMENT compile-time option only
+ when the ACE_DISABLE_SWAP_ON_READ macro is enabled. This new option
+ requires ACE CDR engine to do both marshaling and demarshaling, and
+ when this option is enabled the encoded streams are no longer
+ compliant with the CORBA CDR specification.
+
+. Developed Feature Oriented Customizer (FOCUS) tool to enable
+ specialization of middleware frameworks such as Reactor and Protocol
+ framework. FOCUS provides an XML based transformation engine, where
+ the transformations to specialize the components are captured in XML
+ file and a weaver specializes the code.
+
+. Added support for unrolling ACE_OS::memcpy copy loop where
+ applicable to improve performance. Autoconf tests empirically
+ determine whether loop unrolling is at least 10% better than default
+ version.
+
+. Added support for an ACE "versioned" namespace. When enabled, ACE
+ library sources will be placed within a namespace of the user's
+ choice or a namespace of the form ACE_5_4_7 by default, where
+ "5_4_7" is the ACE major, minor and beta versions. The default may
+ be overridden by defining the ACE_VERSIONED_NAMESPACE_NAME
+ preprocessor symbol. Enable overall versioned namespace support by
+ adding "versioned_namespace=1" to your MPC default.features file.
+
+USER VISIBLE CHANGES BETWEEN ACE-5.4.6 and ACE-5.4.7
+====================================================
+
+. Support for shared libraries with VxWorks
+
+. Support for Solaris 10 on x86 with Sun Studio 10 (C++ 5.7).
+
+. Extended ACE_OS::event_xxx implementation to support platforms
+ having either PThread support with Process Shared condition
+ variables or POSIX semaphores with named (process shared)
+ semaphore support or using the new FIFO based semaphores.
+
+. ACE_OS::closesocket() no longer calls ACE_OS::shutdown() on any platform
+ while closing the socket. It previously called ACE_OS::shutdown() on
+ HP-UX. Removing this call fixes the fork-and-close programming paradigm
+ that's common to many networked applications.
+
+. RMCast
+ - Support for message fragmentation. This will allow
+ for messages larger than 64K.
+ - Support for flow control.
+ - Timed recv() in RMCast::Socket.
+ - Per-instance configurable protocol parameters (e.g., message
+ retention time, NAK timeout, etc).
+
+USER VISIBLE CHANGES BETWEEN ACE-5.4.5 and ACE-5.4.6
+====================================================
+
+. Updated RMCast to include
+ - Reactor-compatible interface.
+ - Message unavailability reporting.
+ - Protocol documentation.
+
+. Added support for 64bit Visual Age on AIX
+
+. Improved g++ 4.0 support. A number of RTTI related problems have been
+ fixed.
+
+. Smaller footprint.
+
+. Fixed memory leaks ACE_DLL and ACE_Log_Msg classes.
+
+. The ACE::ICMP_Socket and ACE::Ping_Socket classes were moved out of
+ the ACE namespace and "flattened" to ACE_ICMP_Socket and
+ ACE_Ping_Socket to be consistent with the rest of ACE.
+
+. ACE_INET_Addr::set_address() - fixed a possible struct member
+ alignment issue when building an IPv4-mapped IPv6 address.
+
+. Added a new ACE::wild_match() function to match a string based on
+ wildcards.
+
+. Added efficient overloads for string concatenation to the
+ ACE_String_Base class.
+
+. Added support for the use of pthread_getschedparam on MacOS X.
+
+. Fixed an issue with static initialization of TSS related classes on
+ static builds for Windows.
+
+USER VISIBLE CHANGES BETWEEN ACE-5.4.4 and ACE-5.4.5
+====================================================
+
+. Remove special handling in the Thread Specific Storage(TSS) code
+ that released the TSS key for ACE_TSS. ACE_TSS has
+ been changed to explicitly free the TSS key when necessary.
+
+. On Win32 systems: detect thread termination via a hook in DLLMain
+ for ACE.dll. This allows cleanup of TSS objects for non-ACE threads
+ that use ACE functions. The most common case was threads that used
+ ACE logging. Formerly any TSS objects created by these threads would
+ be leaked.
+
+. Added support for GNU G++ 4.0. The x.4.5 beta takes advantage of
+ g++ 4.0's symbol visibility. This feature is conceptually similar
+ to MS Windows "__declspec(dllexport)" DLL functionality. Using this
+ new g++ feature results in substantially improved ACE/TAO/CIAO
+ shared library binaries. A subset of the improvements include the
+ following:
+
+ * The number of unnecessarily exported DSO/DLL symbols is
+ greatly reduced, resulting in faster program start times.
+ * Smaller footprint.
+ * Improved performance since run-time indirection of internal
+ symbols is no longer needed.
+
+ No changes to the ACE/TAO sources were necessary to support this
+ feature since the required visibility attributes were hidden behind
+ the various "*_Export" macros (formerly only useful for MS Windows
+ DLLs) used throughout ACE/TAO.
+
+. The ACE_Reactor destructor will now call close() on the referenced reactor
+ implementation. This assures that all handlers are notified before the
+ ACE_Reactor object that's most likely referenced in these handlers is
+ invalid. Although this should not be a user-visible change, it did catch
+ some ACE tests off guard destroying reactor implementations and ACE_Reactor
+ interfaces in the wrong order, so it may come up in the field as well.
+ When using dynamically allocated reactor implementations, do not destroy
+ the implementation object before the ACE_Reactor interface object. Use of
+ the ACE_Reactor constructor's delete_implementation argument (with a value
+ of 1) is recommended when dynamically allocating reactor implementations.
+
+. Improved performance of HTBP by not requiring a lookup of peer hostname.
+
+. Added new ACE_SizeCDR stream which allows one to calculate size of the
+ representation without writing anything.
+
+. Number of improvements in RMCast, reliable multicast implementation.
+
+USER VISIBLE CHANGES BETWEEN ACE-5.4.3 and ACE-5.4.4
+====================================================
+
+. The ace-config script has been replaced by pkg-config metadata files
+ which are installed in ${prefix}/lib/pkgconfig by the automake build.
+
+. Remove ACE_OS::gets() implementation. While this ACE implementation
+ of gets() did not contain the security holes that all standard
+ gets() implementations have, keeping it around only serves to foster
+ confusion since (1) some may incorrectly assume that this
+ ACE-specific gets() implementation has the same holes as standard
+ ones, and (2) invoking it with a default size argument so that it
+ looks like a standard gets() call results in behavior that is
+ different from the standard. Use ACE_OS::fgets() instead.
+
+. Removed ACE_Unbounded_Set_Ex, this gave the false idea that it had
+ thread safe iterators. Use ACE_Unbounded_Set instead
+
+. Improved VxWorks support for static libraries. Shared libraries do cause
+ several known problems which will be fixed in the x.4.5 release.
+
+. Removed the usage of the ACE_x_cast macros, we are using the C++ casts
+ from now on. The ACE_x_cast macros are deprecated and will be removed
+ after the x.5.1 release
+
+. Some improvements in autoconf support; better detection of available
+ OS and compiler features.
+
+. Fixed bugs in ACE TSS emulation
+
+USER VISIBLE CHANGES BETWEEN ACE-5.4.2 and ACE-5.4.3
+====================================================
+
+. Improved Cygwin 1.5.12 support, 90% of the tests now succeed
+
+. Improved OpenVMS support.
+
+. Added ability to use fltk with Cygwin/MinGW
+
+. Added ACE_INT64 that defines a native 64 bit type.
+
+. Added 'q' as usable specifier for ACE_Log_Msg to print out int64 bit number.
+
+. Added better support for Intel C++ compilers.
+
+. Improved HPUX support.
+
+. Added a new directory ("ACE_wrappers/protocols/ace") for new protocols
+ that are not directly components of ACE, but are relate to ACE and
+ defined a new protocol, HTBP (Hypertext Tunneling, Bidirectional
+ Protocol) providing ACE_Acceptor/Connector/Stream semantics over a
+ connection owned by an HTTP proxy. Test cases in
+ ACE_wrappers/tests/HTBP provide examples of use.
+
+. Performace enhancement in TP_Reactor's handle_timer_events method [Bug
+ 1971].
+
+. Various changes to permit ACE to execute on HP NonStop platform (e.g
+ support for its pthreads version).
+
+. Updated HP NonStop configuration files (config-tandem-nsk).
+
+. The "ACE" pseudo-namespace is now a true C++ namespace. Transitional
+ pseudo-namespaces that were only meant to be used internally by ACE,
+ such as "ACE_Sock_Connect", no longer exist.
+
+. ACE_CDR::Boolean type is now a true C++ "bool" on all platforms except
+ MSVC++ 6. We plan to deprecate MSVC++ 6 support sometime after the
+ x.5 release of ACE+TAO+CIAO, so we recommend you start migrating to a
+ later version of MSVC++.
+
+. More GNU g++ 3.4.x fixes.
+
+. Added ICMP and "ping" socket support.
+
+. Added mkstemp() emulation.
+
+. Fixed problem on Linux < 2.5.47 platforms where equality comparison of
+ two logically equal sockaddr_in structure instances would incorrectly
+ fail.
+
+. Support for wide characters has been improved on non-Windows
+ platforms.
+
+. A number of Windows CE problems have been fixed.
+
+. ACE's loading of DLLs (for example, as a result of loading synamic
+ services) has been changed to use the native OS's facilities for
+ locating the DLL instead of searching LD_LIBRARY_PATH (or its
+ equivalent) then loading the DLL using a full pathname. This restores
+ enforcement of a platform's loading and security policy. To use the
+ old DLL locating method, add ACE_MUST_HELP_DLOPEN_SEARCH_PATH to your
+ config.h file before building ACE.
+
+. A number of errors in the APG example programs have been corrected.
+
+. Select_Reactor and Priority_Reactor performance improved. [Bug 1890]
+
+. Wide-char functionality on POSIX (Linux, etc.)
+
+. TSS memory leak fixes [Bug 1542]
+
+. Ported to HPUX 11i v2 on Itanium
+
+. Added code to ACE for platform RedHat AS 3.0 on Opteron.
+
+. Changed ACE::crc32() family of functions to NOT fold in the length of
+ the string/buffer/iovec into the CRC.
+
+
+USER VISIBLE CHANGES BETWEEN ACE-5.4.1 and ACE-5.4.2
+====================================================
+
+. Support for g++ 3.4.1.
+
+. All ACE Makefiles, project files, etc, are now generated by OCI's
+ "MakeProjectCreator" (MPC) tool. Makefiles and project files for
+ commonly used configurations have been pre-generated and distributed
+ with the beta(s). Please see:
+
+ $ACE_ROOT/ACE-INSTALL.html
+
+ for information on how to use MPC with ACE.
+
+. Improved Doxygen documentation.
+
+. Reduced header file dependencies, which should speedup compilation
+ and help minimize static footprint.
+
+. ACE now requires support for the following standard C++ features:
+
+ - "bool" keyword
+
+ - "mutable" keyword
+
+ - "explicit" keyword
+
+ - C++ casts (e.g. static_cast<>, reinterpret_cast<>, dynamic_cast<>
+ and const_cast<>)
+
+ If you're using a compiler that does NOT support these features
+ please contact Steve Huston for support.
+
+. Changed the select()-based reactor implementations to scan for
+ broken handles to remove based on the registered handles, not on
+ event handlers. This allows for bad handles to be removed from the
+ reactor even if the event handler doesn't implement get_handle() the
+ way we expect.
+
+. Support for Pthreads native recursive mutexes was added. This
+ capability is specified to ACE_OS::mutex_init() as an optional
+ argument, lock_type. To fix confusion from an earlier attempt to add
+ this functionality, the meaning of the old 'type' argument to
+ ACE_OS::thread_mutex_init() is changed. It previously combined the
+ scope and type. Now it is just the type (e.g. recursive), as the
+ scope is inherent in the method used. For clarification on
+ ACE_HAS_RECURSIVE_MUTEXES, it means that the platform is capable of
+ them, not that they always are, as one would expect. However, before
+ Pthreads had recursion added, it was never optional. Now it is.
+
+. Initial support for new Linux sys_epoll() interface in
+ Dev_Poll_Reactor. The obsolete Linux /dev/epoll interface is no
+ longer supported.
+
+. Improved Cygwin support.
+ - Threading works without problems.
+ - Problems with shared memory, process shared mutexes, multicast and
+ some other small things still exist.
+
+. New OpenVMS port.
+ - This is for the latest version of OpenVMS with all available ECOs
+ applied. Basic stuff works without problems. Advanced features
+ still need some work.
+
+. Usage of ASYS_INLINE is deprecated in ACE. Use ACE_INLINE instead.
+
+. All inline source files now end in ".inl". The previous ".i"
+ extension is generally used for preprocessed C sources.
+
+. Autoconf support has been improved and fixed on a number of
+ platforms, including the BSD variants (e.g. FreeBSD). It is still
+ not the preferred way to configure most platforms, but it is ready
+ for wider testing. Please report any problems found to
+ ace-bugs@cs.wustl.edu.
+
+. A number of fixes were made to quiet compile errors and warnings on
+ 64-bit Windows.
+
+. For builds on AIX using Visual Age C++, the make rtti option default
+ was changed to 1, enabling RTTI by default.
+
+. ACE_Service_Repository::remove() has a new, optional argument that
+ can receive the service record pointer for the removed service. If
+ the pointer is returned to the caller, it is not deleted. If the
+ pointer is not returned to the caller (the default) it is deleted
+ (this is the historic behavior).
+
+. The tutorials in ACE_wrappers/docs have been removed. They were not
+ being maintained and caused confusion in a number of cases. Now that
+ there are complete examples that match the printed books (C++NPv1,
+ C++NPv2, APG), the older tutorials are no longer useful. Please see
+
+ $ACE_ROOT/examples/C++NPv1/
+ $ACE_ROOT/examples/C++NPv2/
+ $ACE_ROOT/examples/APG/
+
+ for the source code of the examples in those books.
+
+. ACE_String_Base::fast_clear() is a new method which sets the string
+ length to 0. Doesn't release string-allocated memory, but if the
+ memory was externally supplied, it is no longer referenced from the
+ string object.
+
+. A true C++ "bool" is now used as the CDR stream boolean type, if
+ supported by the compiler.
+
+. Renamed AIX 5L configuration header from config-aix5.1.h to
+ config-aix-5.x.h.
+
+. All C++ equality, relational and logical operators now return bool
+ instead of int, as is the norm for modern C++.
+
+. Added new ACE_OS::realpath() implementation. Contributed by Olli
+ Savia
+
+
+USER VISIBLE CHANGES BETWEEN ACE-5.4 and ACE-5.4.1
+====================================================
+
+ACE
+---
+
+. Fixed "make install" support in ACE+autoconf configurations.
+
+. Fixed autoconf support on Solaris.
+
+. Corrected invalid `aux' directory (on MS Windows) found in ACE
+ distribution.
+
+. ACE/TAO build now without problems with MinGW and all ACE tests run
+ now without problems
+
+. Added some more support for the new CBuilderX Preview compiler, this
+ is not 100% ready yet because the compiler is still a preview and
+ has its own problems.
+
+. Added Visual SlickEdit 8.1 MPC template
+
+. Added workaround for compile problems in Borland Release builds
+
+. Cygwin 1.5.9 is now supported
+
+. Tests for IPV6 have been added
+
+. Implement lstat() so that it'll use stat() on platforms that don't
+ support lstat().
+
+. Problems related to ACE_Event_Handler usage in WFMO_Reactor was
+ fixed.
+
+. A wrapper for rmdir () has been added.
+
+. Threads spawned in thread-per-connection mode never inherited the
+ priority. This problem was fixed and this fix is consistent with the
+ C++ NPV* books.
+
+. Fixed memory leaks with ACE_String_Base::resize ()
+
+. Enable the usage of native recursive mutexes for the implementation
+ of ACE recursive mutexes on Linux.
+
+. The ACE Proactor framework can now be enabled for AIX 5.2. Since AIO
+ functionality is not run-time enabled by default on AIX 5.2, the ACE
+ Proactor code is not built by default on AIX. To enable it, the
+ config.h file must contain #define ACE_HAS_AIO_CALLS before
+ including the config-aix-5.1.h file.
+
+. The ACE_POSIX_CB_Proactor implementation is now built on all
+ platforms except LynxOS.
+
+
+USER VISIBLE CHANGES BETWEEN ACE-5.3.6 and ACE-5.4
+==================================================
+
+ACE:
+---
+. Added a new makefile commandline flag, static_link, that can be
+ used to force static linking when static_libs_only is turned on. It
+ uses the new STATIC_LINK_FLAG variable and is currently only
+ implemented for for GNU ld, i.e., it adds the "-static" option to
+ LDFLAGS. It's turned off by default since using it causes the
+ footprint to go up by almost 1 MB on Linux, since it links all the
+ system and compiler .a files, but can be turned on if users
+ want/need to use it, by enabling both static_libs_only and static_link.
+
+
+. Added macros ACE_USES_GPROF which enables users to use gprof in a
+ multithreaded environment with ACE libs.
+
+. Added a new functor template class, ACE_Malloc_Lock_Adapter_T,
+ that's used by ACE_Malloc_T as a factory for the ACE_LOCK template
+ parameter, and allows the use of locking strategy classes, like
+ ACE_Process_Semaphore and ACE_Thread_Semaphore that don't have a
+ satisfactory ctor taking a single required ACE_TCHAR* parameter, to
+ be adapted to work with ACE_Malloc_T.
+
+. The source code examples from "The ACE Programmer's Guide" book by
+ Huston, Syyid, and Johnston, are now located in
+ $ACE_ROOT/examples/APG.
+
+. Support for GNU autoconf is now in ACE. Please see ACE-INSTALL.html
+ for details.
+
+. Fixed problems that prevented ACE from being compiled on LynxOS
+ 4.0.0.
+
+. Fixed compilation error which prevented ACE from being compiled when
+ ACE_COMPILE_TIMEPROBES was set to 1.
+
+. Preliminary support for Tandem NSK has been added.
+
+. Lots of bug fixes with TLI and XPG5. Please see $ACE_ROOT/ChangeLog
+ for details.
+
+. Fixed ACE_OS::event_timedwait() and ACE_OS::event_wait() so that
+ they use a while loop around the ACE_OS::cond_[timed]wait() calls to
+ avoid problems with spurious wakeups, etc.
+
+. ACE's wrapper around getipnodebyname() and getipnodebyaddr () has
+ been made go through the IPv4-only case on ACE_WIN32. Since Windows
+ IPv6 implementation doesn't offer support (at thistime) for
+ getipnodebyname() the code has been changed to use the IPV4 part of
+ the code.
+
+. Install with Borland C++ of ACE library fixed
+
+ACEXML:
+-------
+
+. Fixed memory leak in ACEXML parser.
+
+. Fixed implementations of rewind() in all the CharStreams. They were
+ broken previously.
+
+. Fixed bugs in the parser associated with incorrect handling of PE
+ References for keywords.
diff --git a/dep/acelite/PROBLEM-REPORT-FORM b/dep/acelite/PROBLEM-REPORT-FORM
new file mode 100644
index 000000000..139fa83ad
--- /dev/null
+++ b/dep/acelite/PROBLEM-REPORT-FORM
@@ -0,0 +1,87 @@
+[Please use the PRF form below to submit bug reports, problem reports,
+ etc., to the ACE developers and interested users. Send it to
+ ace-bugs@list.isis.vanderbilt.edu, you must be subscribed to the list
+ in order to be able to post to it. If you are using OCI, PrismTech, or
+ Riverace's versions of ACE do not send bugs to this mailing list, but
+ instead contact those companies for support. Please also send your
+ PRF as plain ASCII text, _not_ uuencoded or as an attachment.
+
+ We prefer that all bug reports be submitted through our bug tracking
+ system. See $ACE_ROOT/docs/usage-bugzilla.html for more information
+ about how to do this. If you are unsure as to whether your problem
+ is a real bug or not then please submit your question to the mailing
+ list using the following form. Not using the problem report form
+ will make it harder or impossible to identify the problem, and in
+ many cases we will be unable to help at all. Also please try to
+ browse bugzilla and the ChangeLog files to find out if your problem
+ has been solved in a more recent version of ACE.
+
+ To subscribe to the list see
+ http://www.dre.vanderbilt.edu/~schmidt/ACE-mail.html
+
+ Replace/remove all the explanatory text in brackets before mailing.
+
+ Please send this form as ASCII text only. Do _not_ send it as an
+ attachment, or as tar'ed, compressed and/or uuencoded text. And
+ limit line lengths to less than 80 characters.
+
+ PLEASE make your Subject: line as descriptive as possible.
+ Subjects like "ACE bug" or "bug report" are not helpful!
+ Also, do _not_ include the word "help" in the Subject!]
+
+ When including your config.h and platform_macros.GNU files as requested
+ below, only include the contents if you use the recommended method of
+ including the platform-specific file in your file. If you use a link
+ to the platform-specific file, simply state which one - DO NOT
+ include an entire platform-specific configuration file in the form.
+
+8<----------8<----------8<----------8<----------8<----------8<----------8<----
+
+To: ace-bugs@list.isis.vanderbilt.edu
+Subject: [area]: [synopsis]
+
+ ACE VERSION: 6.3.0
+
+ HOST MACHINE and OPERATING SYSTEM:
+ If on Windows based OS's, which version of WINSOCK do you
+ use?:
+
+ TARGET MACHINE and OPERATING SYSTEM, if different from HOST:
+ COMPILER NAME AND VERSION (AND PATCHLEVEL):
+
+ THE $ACE_ROOT/ace/config.h FILE [if you use a link to a platform-
+ specific file, simply state which one]:
+
+ THE $ACE_ROOT/include/makeinclude/platform_macros.GNU FILE [if you
+ use a link to a platform-specific file, simply state which one
+ (unless this isn't used in this case, e.g., with Microsoft Visual
+ C++)]:
+
+ CONTENTS OF $ACE_ROOT/bin/MakeProjectCreator/config/default.features
+ (used by MPC when you generate your own makefiles):
+
+ AREA/CLASS/EXAMPLE AFFECTED:
+[What example failed? What module failed to compile?]
+
+ DOES THE PROBLEM AFFECT:
+ COMPILATION?
+ LINKING?
+ On Unix systems, did you run make realclean first?
+ EXECUTION?
+ OTHER (please specify)?
+[Please indicate whether ACE, your application, or both are affected.]
+
+ SYNOPSIS:
+[Brief description of the problem]
+
+ DESCRIPTION:
+[Detailed description of problem. Don't just say "
+doesn't work, here's a fix," explain what your program does
+to get to the state. ]
+
+ REPEAT BY:
+[What you did to get the error; include test program or session
+transcript if at all possible. ]
+
+ SAMPLE FIX/WORKAROUND:
+[If available ]
diff --git a/dep/acelite/README b/dep/acelite/README
new file mode 100644
index 000000000..fe9a7d2d9
--- /dev/null
+++ b/dep/acelite/README
@@ -0,0 +1,222 @@
+$Id: README 96983 2013-04-11 11:14:11Z schmidt $
+
+This document is also available at the following URL:
+
+http://www.dre.vanderbilt.edu/~schmidt/ACE.html
+
+All software and documentation is available via both anonymous ftp and
+the http.]
+
+THE ADAPTIVE COMMUNICATION ENVIRONMENT (ACE)
+
+An Object-Oriented Network Programming Toolkit
+
+----------------------------------------
+
+Overview of ACE
+
+The ADAPTIVE Communication Environment (ACE) is an object-oriented
+(OO) toolkit that implements fundamental design patterns for
+communication software. ACE provides a rich set of reusable C++
+wrappers and frameworks that perform common communication software
+tasks across a range of OS platforms, including Win32/Win64, most
+versions of UNIX (e.g., SunOS, HP-UX , AIX, Linux, NetBSD, and FreeBSD),
+real-time operating systems (e.g., VxWorks, Chorus, LynxOS, and QNX),
+OpenVMS, and MVS OpenEdition. A single source tree is used for all
+these platforms and porting ACE to other platforms is relatively easy.
+
+The communication software components provided by ACE include event
+demultiplexing and event handler dispatching, service initialization,
+interprocess communication, shared memory management, message routing,
+dynamic (re)configuration of distributed services, multi-threading,
+and concurrency control. There are both C++ and Java versions of ACE
+available.
+
+ACE is targeted for developers of high-performance and real-time
+communication services and applications on UNIX, POSIX, and Win32
+platforms. ACE simplifies the development of OO network applications
+and services that utilize interprocess communication, event
+demultiplexing, explicit dynamic linking, and concurrency. ACE
+automates system configuration and reconfiguration by dynamically
+linking services into applications at run-time and executing these
+services in one or more processes or threads.
+
+ACE is currently used in commercial projects and products by dozens of
+companies including Ericsson, Bellcore, Siemens, Motorola, Kodak,
+Boeing, Lucent, DEC, Lockheed Martin, and SAIC. Commercial support
+for ACE is available from several companies as listed at
+http://www.cs.wustl.edu/~schmidt/commercial-support.html
+
+----------------------------------------
+
+C++ Wrappers for OS Interfaces
+
+The lower-level portions of ACE provide a set of portable and
+type-secure C++ wrappers that encapsulate the following C language OS
+interfaces:
+
+ . IPC mechanisms
+ -- e.g., Internet- and UNIX-domain sockets, TLI, Named
+ Pipes (for UNIX and Win32) and STREAM pipes;
+
+ . Event demultiplexing
+ -- e.g., select(), poll(), and Win32
+ WaitForMultipleObjects and I/O completion ports;
+
+ . Multi-threading and synchronization
+ -- e.g., Solaris threads, POSIX Pthreads, and Win32
+ threads;
+
+ . Explicit dynamic linking
+ -- e.g., dlopen/dlsym on UNIX and LoadLibrary/GetProc
+ on Win32;
+
+ . Memory-mapped files and shared memory management
+ -- e.g., BSD mmap(), SYSV shared memory, and Win32
+ shared memory;
+
+ . System V IPC
+ -- e.g., shared memory, semaphores, message queues.
+
+The OS Adaptation Layer shields the upper levels of ACE from platform
+dependencies associated with the underlying OS interfaces.
+
+----------------------------------------
+
+Frameworks and Class Categories
+
+ACE also contains a higher-level network programming framework that
+integrates and enhances the lower-level C++ wrappers. This framework
+supports the dynamic configuration of concurrent distributed services
+into applications. The framework portion of ACE contains the
+following class categories:
+
+ . The Reactor
+ -- Supports both Reactive and Proactive I/O;
+
+ . The Service Configurator
+ -- Support dynamic (re)configuration of objects;
+
+ . The ADAPTIVE Service Executive
+ -- A user-level implementation of System V STREAMS,
+ that supports modular integration of
+ hierarchically-related communicaion services;
+
+ . Concurrency
+ -- Various types of higher-level concurrency
+ control and synchronization patterns (such as
+ Polymorphic Futures and Active Objects);
+
+ . Shared Malloc
+ -- Components for managing dynamically allocation
+ of shared and local memory;
+
+----------------------------------------
+
+Distributed Services and Components
+
+Finally, ACE provides a standard library of distributed services that
+are packaged as components. These service components play two roles
+in ACE:
+
+ 1. They provide reusable components for common distributed
+ system tasks such as logging, naming, locking, and time
+ synchronization.
+
+ 2. They illustrate how to utilize ACE features such as the
+ Reactor, Service Configurator, Service Initialization,
+ Concurrency, and IPC components.
+
+----------------------------------------
+
+Middleware Applications
+
+ACE has been used in research and development projects at many
+universities and companies. For instance, it has been used to build
+avionics systems at Boeing, telecommunication systems at Bellcore,
+Ericsson, Motorola, and Lucent; medical imaging systems at Siemens and
+Kodak; and many academic research projects. Two example middleware
+applications provided with the ACE release include:
+
+ 1. The ACE ORB (TAO) -- TAO is a real-time implementation of
+ CORBA built using the framework components and patterns
+ provided by ACE.
+
+ 2. JAWS -- JAWS is a high-performance, adaptive Web server
+ built using the components in ACE.
+
+----------------------------------------
+
+OBTAINING ACE
+
+ACE may be obtained electronically from
+http://download.dre.vanderbilt.edu. This release contains the source
+code, test drivers, and example applications (including JAWS) for C++
+wrapper libraries and the higher-level ACE network programming
+framework developed as part of the ADAPTIVE project at the University
+of California, Irvine, Washington University, St. Louis, and
+Vanderbilt University.
+
+You can get The ACE ORB (TAO) in a companion release at the same URL.
+
+----------------------------------------
+
+ACE DOCUMENTATION AND TUTORIALS
+
+Many of the C++ wrappers and higher-level components have been
+described in issues of the C++ Report, as well as in proceedings of
+many journals, conferences, and workshops.
+
+A collection of white papers and tutorial handouts are included at
+
+http://www.dre.vanderbilt.edu/~schmidt/ACE-papers.html
+
+This page contains PDF versions of various papers that describe
+different aspects of ACE.
+
+This material is also available available via the WWW at URL:
+
+http://www.dre.vanderbilt.edu/~schmidt/ACE.html
+
+----------------------------------------
+
+ACE MAILING LIST AND NEWSGROUP
+
+A mailing list, ace-users@list.isis.vanderbilt.edu, is available for
+discussing bug fixes, enhancements, and porting issues regarding ACE.
+Please send mail to me at the
+ace-users-request@list.isis.vanderbilt.edu if you'd like to join the
+mailing list. There is also a USENET newsgroup called
+comp.soft-sys.ace. Please see
+http://www.dre.vanderbilt.edu/~schmidt/ACE-mail.html for details on
+how to subscribe to the mailing list.
+
+----------------------------------------
+
+BUILDING AND INSTALLING ACE
+
+Please refer to the
+http://www.dre.vanderbilt.edu/~schmidt/ACE-install.html file for
+information on how to build and test the ACE wrappers. The
+BIBLIOGRAPHY file contains information on where to obtain articles
+that describe the ACE wrappers and the ADAPTIVE system in more detail.
+
+The current release has been tested extensively, but if you find any
+bugs, please report them to the ACE mailing list
+ace-users@list.isis.vanderbilt.edu using the
+$ACE_ROOT/PROBLEM-REPORT-FORM. Please use the same form to submit
+questions, comments, etc. To ensure that you see responses, please do
+one of the following:
+
+ 1) Subscribe to the ace-users mail list, by sending email with
+ contents "subscribe ace-users" to
+ ace-users-request@list.isis.vanderbilt.edu.
+
+ 2) Or, monitor the comp.soft-sys.ace newsgroup for responses.
+
+----------------------------------------
+
+ACKNOWLEDGEMENTS
+
+Please see the file `$ACE_ROOT/THANKS' for a list of the thousands of
+people who've contributed to ACE and TAO over the years.
diff --git a/dep/acelite/THANKS b/dep/acelite/THANKS
new file mode 100644
index 000000000..360df16d7
--- /dev/null
+++ b/dep/acelite/THANKS
@@ -0,0 +1,2422 @@
+ACKNOWLEDGEMENTS
+
+ACE, TAO, CIAO, and DAnCE have been deeply influenced and improved by the
+following members of my research group at Washington University in St. Louis,
+the University of California at Irvine, and Vanderbilt University in Nashville.
+
+Everett Anderson
+Alexander Babu Arulanthu
+Shawn Atkins
+Jaiganesh Balasubramanian
+Krishnakumar Balasubramanian
+Matt Braun
+Darrell Brunsch
+Dante J. Cannarozzi
+Sharath R. Cholleti
+Chris Cleeland
+Angelo Corsaro
+Gan Deng
+Mayur Deshpande
+Eric Ding
+George Edwards
+Sergio Flores-Gaitan
+Chris Gill
+Andrew G. Gilpin
+Aniruddha Gokhale
+Priyanka Gontla
+Pradeep Gore
+Matthew P. Hampton
+Tim Harrison
+John Heitmann
+James Hill
+Shawn Hannan
+Don Hinton
+Joe Hoffert
+James Hu
+Huang-Ming Huang
+Frank A. Hunleth
+Prashant Jain
+Shanshan Jiang
+Vishal Kachroo
+Michael Kircher
+Boris Kolpackov
+Arvind S. Krishna
+Yamuna Krishnamurthy
+Fred Kuhns
+David Levine
+Tao Lu
+Mike Moran
+Sumedh Mungee
+Balachandran Natarajan
+Will Otte
+Kirthika Parameswaran
+Krishnakumar Pathayapura
+Stoyan Paunov
+Carlos O'Ryan
+Ossama Othman
+Jeff Parsons
+Irfan Pyarali
+Nilabja Roy
+Lucas Seibert
+Diego Sevilla Ruiz
+Nishanth Shankaran
+Marina Spivak
+Venkita Subramonian
+Nagarajan Surendran
+Cassia Tatibana
+Sumant Tambe
+Gabriele Trombetti
+Emre Turkay
+Nanbor Wang
+Seth Widoff
+Jules White
+Friedhelm Wolf
+Torben Worm
+Ming Xiong
+
+I would also like to thank all the following people who have also
+contributed to ACE, TAO, CIAO, and DAnCE over the years:
+
+Paul Stephenson
+Olaf Kruger
+Ed Brown
+Lee Baker
+Alex Ranous
+Mark Patton
+Steffen Winther Sorensen
+Troy Warner
+Stacy Mahlon
+Charles Eads
+Mark Frutig
+Todd Hoff
+George
+Brad Needham
+Leslee Xu
+Detlef Becker
+Bruce Worden
+Chris Tarr
+Bill Sears
+Greg Lavender
+Steve Warwick
+Mats Sundvall
+Andreas Ueltschi
+Nigel Hooke
+Medhi Tabatabai
+Stuart Powell
+Bin Mu
+Andrew McGowan
+Ken Konecki
+John P. Hearn
+Giang Hoang Nguyen
+Carlos Garcia Braschi
+Jam Hamidi
+Eric Vaughan
+Karlheinz Dorn
+Gerhard Lenzer
+Steve Ritter
+Chandra Venkatapathy
+Matt Stevens
+Bob Vistica
+David Trumble
+George Reynolds
+Hans Rohnert
+Alex V. Maclinovsky
+Todd Blanchard
+Rob Clairmont
+Christian Millour
+Neil B. Cohen
+Dieter Quehl
+Reginald S. Perry
+James Morris
+Mark Seaborn
+Phil Brooks
+E. Jason Scheck
+Daniel Proulx
+Bill Tang
+John Huchinson
+Jack Erickson
+Byron Walton
+Bill Lear
+Mark Zusman
+Aurelio Nocerino
+Walt Akers
+Greg Baker
+Alexandre Karev
+Pramod Kumar Singh
+Bryon Rigg
+Brad Brown
+Patty Genualdi
+Eshel Liran
+Mick Adams
+Chris Eich
+Mike Flinn
+Audun Tornquist
+Sandeep Joshi
+Bernd Hofner
+Craig Perras
+Kirk Sinnard
+Matthew Newhook
+Gerolf Wendland
+Phil Mesnier
+Ross Dargahi
+Richard Orr
+Rich Ryan
+Jan Rychter
+Tom Marrs <0002104588 at mcimail dot com>
+Bob Olson
+Jean-Francois Ripouteau
+Ajit Sagar
+Ashish Singhai
+David Sames
+Gonzalo Diethelm
+Raj
+Darrin Edelman
+Steve Weismuller
+Eric C. Newton
+Andres Kruse
+Ramesh Nagabushnam
+Antonio Tortorici
+Nigel Lowe
+Tom Leith
+Michael Fortinsky
+Marco Sommerau
+Gary Salsbery
+Eric Beser
+Alfred Keller
+John Lu
+James Mansion
+Jesper S. M|ller
+Chris Lahey
+Michael R"uger
+Istvan Buki
+Greg Wilson
+Garrett Conaty
+Brad Flood
+Marius Kjeldahl
+Steve Huston
+Eugene K. Plaude
+Joseph DeAngelis
+Kim Gillies
+Luca Priorelli
+Alan Stewart
+Hani Yakan
+William L. Gerecke
+Craig Johnston
+Pierre-Yves Duval
+Rochi Febo Dommarco
+Jonathan Biggar
+Scott Shupe
+Chuck Gehr
+Avi Nash
+Padhu Ramalingam
+Jay Denkberg
+Ayman Farahat
+Tilo Christ
+rev
+Hamutal Yanay
+Vital Aza
+Alex Villazon
+David Artus
+Todd Barkalow