- Building and Installing ACE and Its Auxiliary Libraries and Services
-
-
-
-
-
-
-
-
-
-
Building and Installing ACE and Its Auxiliary Libraries and Services
-
-
Synopsis
-
-The file explains how to build and install ACE, its Network Services,
-test suite and examples on the various OS platforms and compilers that
-it has been ported to. Please consult the NEWS and
-ChangeLogs files to see whether any recent changes
-to the release will affect your code. In addition, you should check
-out our development
-process. As you start working with ACE, we suggest you get copies
-of the C++NPv1, C++NPv2, and
-APG books to help
-guide you after you've built and installed ACE. You should also
-consult the ACE
-Frequently Made Mistakes page. If you encounter any problems or
-would like to request an enhancement, then use github
- to submit an issue in accordance with our bug
-report process.
ACE has been ported to a large number of platforms using many different
-compilers over the years.
-The DOC group,
-Riverace,
-OCI,
-Remedy IT, and members of the ACE
-user community have all contributed ports to make ACE the successful
-and far-reaching toolkit it is today. Any UNIX/POSIX/Windows
-variation is probably an easy target platform for ACE. If you have
-porting questions or have a problem
-compiling the ACE source distribution, please contact one of the
-commercial support companies, or send a copy of the
-PROBLEM-REPORT-FORM, located in the
-ACE_wrappers directory to ace-users
-mailing list or create a github issue.
-The DOC groups at Washington University, UC Irvine, and Vanderbilt
-University provide only "best effort" support for non-sponsors for the
-latest release, as described in
-docs/ACE-bug-process.html.
-Thus, if you need more "predictable" help, or help with earlier versions of
-ACE, it's recommend that you check out the
-list of
-commercial support companies for additional assistance.
-
-
The responsibility for maintaining ACE across the wide range of
-supported platforms is divided among a few different groups:
-
-
The DOC group maintains platforms used in the course of their research
-and sponsored work
-
Companies that provide support (Riverace, OCI, and Remedy IT), maintain
-platforms they support in the course of their various service offerings
-
The ACE user community maintains any other desired platforms.
-
-The
-build scoreboard
-records the current status of build and regression testing during
-development by all of the above groups. It is available to all users wishing
-to provide build results. Members of the ACE community that maintain ACE on
-platforms not maintained by the DOC group, Riverace, OCI, or Remedy IT are
-encouraged to provide build and regression test results for the scoreboard
-to ensure that all in-use platforms are represented.
-See the autobuild README for more information about
-how to set up a build; contact one of the above groups to inquire about how
-to get your build results recorded on the scoreboard.
-
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.
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 ACE and 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 Visual Studio 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.
ACE contains project files for
-Visual Studio 2015 (vc14), Visual Studio 2017 (vc141), and Visual Studio 2019 (vc142).
-Visual Studio 2015/2017/2019 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.
-
-
-
Mapping of Platform to Solution/Project File Name
-
-
-
Platform
-
File Name
-
-
-
-
Visual Studio 2015
-
name_vc14
-
-
-
-
Visual Studio 2017
-
name_vs2017
-
-
-
-
Visual Studio 2019
-
name_vs2019
-
-
-
-
-
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 an older file Visual Studio solution from a newer one, it will offer to convert
-the file to the newer format for you
-
-
-
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.
-WIND_BASE = /tornado
-WIND_HOST_TYPE = x86-win32
-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 the ones available to Java-based Android applications.
-
-
-
-
Windows Users: These instructions are written for a Unix based
-platform like Linux, but can also be used on Windows. If you are using an
-virtualized Linux environment like Windows Subsystem for Linux (WSL), Docker,
-or a traditional VM, then you can use the Linux version of the NDK and ignore
-rest of this note and all the other Windows specific notes.
-
-
-
If that is not the case, you should also pay attention to the notes marked
-with "Windows Users:" in addition to the rest of the instructions. In
-addition to the Windows version of the Android NDK, you will also need
-MSYS2 for Unix utilities that ACE needs.
-
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 extensions 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 be 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
-
-
-
-
-
Windows Users:
-Android NDK includes Python in prebuilt\windows-x86_64\bin for
-64-bit Windows NDKs. For the example above, assuming %NDK% is the
-location of the NDK and %TOOLCHAIN% is the desired location of the
-toolchain, run this command instead:
For Windows %TOOLCHAIN%\bin and the location of the MSYS2
-utilities must be in %PATH% when cross compiling ACE. The default
-location for these would be C:\msys64\usr\bin.
-
-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 are probably unknown conflicts, especially in the minor revisions
- before the last minor revision of a NDK revision.
-
Windows Users: If cross compiling TAO and the host tools were
- built using using Visual Studio, make sure cl.exe can be run
- from the environment when building for Android, as tao_idl
- will need to use it as a C preprocessor.
-
- 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. Make sure you have $TOOLCHAIN/bin in
- your $PATH.
-
- Windows Users: Make sure you have %TOOLCHAIN%\bin
- and MSYS2's bin in your %PATH% when building.
- If you are cross compiling TAO you will also need a preprocessor for
- tao_idl available (See Windows note above).
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.
-On Android, ACE_Log_Msg (and therefore ACE_DEBUG and
-ACE_ERROR) uses Android's logging system (aka Logcat) by default
-in addition to stderr because stdout and
-stderr are discarded under normal circumstances. To disable this
-at runtime, run:
-
-
-
-ACE_LOG_MSG->clr_flags (ACE_Log_Msg::SYSLOG);
-
-
-
To disable this at compile time include these lines in config.h:
- Depending on the features of ACE, TAO, or other software desired, you might need
- OpenSSL. On Android, OpenSSL isn't part of the NDK Library and Android
- preloads the system SSL library (either OpenSSL or BoringSSL) for the Java
- Android API. This means OpenSSL MUST be statically linked to avoid
- conflicts with the almost certianly incompatible system SSL library.
-
- To build OpenSSL for Android, please read NOTES.ANDROID that comes
- with OpenSSL's source code. The static libraries will used if the shared
- libraries are not found. This can be accomplished by either disabling the
- generation of the shared libraries by passing no-shared to
- OpenSSL's Configure script or just deleting the so files after
- building OpenSSL.
-
-
-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 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 or Strawberry Perl.
- We use both perl versions 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 Studio 2015, you must generate solution and project files with MPC:
-
- $ACE_ROOT/bin/mwc.pl -type vc14 ACE.mwc
-
- On Windows, with Visual Studio 2017, you must generate solution and project files with MPC:
- $ACE_ROOT/bin/mwc.pl -type vs2017 ACE.mwc
-
- On Windows, with Visual Studio 2019, you must generate solution and project files with MPC:
- $ACE_ROOT/bin/mwc.pl -type vs2019 ACE.mwc
-
If you want to build TAO and its associated libraries
- please see TAO-INSTALL for details.
-
diff --git a/deps/acelite/ACE.mwc b/deps/acelite/ACE.mwc
deleted file mode 100644
index 7899541b3..000000000
--- a/deps/acelite/ACE.mwc
+++ /dev/null
@@ -1,28 +0,0 @@
-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/deps/acelite/AUTHORS b/deps/acelite/AUTHORS
deleted file mode 100644
index 98fed3d66..000000000
--- a/deps/acelite/AUTHORS
+++ /dev/null
@@ -1,13 +0,0 @@
-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/deps/acelite/CMakeLists.txt b/deps/acelite/CMakeLists.txt
deleted file mode 100644
index 5c94e89fe..000000000
--- a/deps/acelite/CMakeLists.txt
+++ /dev/null
@@ -1,362 +0,0 @@
-#
-# Copyright (C) 2016+ AzerothCore , released under GNU AGPL v3 license: https://github.com/azerothcore/azerothcore-wotlk/blob/master/LICENSE-AGPL3
-#
-
-if(NOT CMAKE_SYSTEM_NAME MATCHES "Windows")
- add_library(ace SHARED IMPORTED GLOBAL)
-
- set_target_properties(ace
- PROPERTIES
- IMPORTED_LOCATION
- "${ACE_LIBRARY}"
- INTERFACE_INCLUDE_DIRECTORIES
- "${ACE_INCLUDE_DIR}")
-else()
-
- # NOTE: Do not use glob here, it would include files we don't want
- set(ACE_SOURCES
- ace/ACE.cpp
- ace/ACE_crc32.cpp
- ace/ACE_crc_ccitt.cpp
- ace/ATM_Acceptor.cpp
- ace/ATM_Addr.cpp
- ace/ATM_Connector.cpp
- ace/ATM_Params.cpp
- ace/ATM_QoS.cpp
- ace/ATM_Stream.cpp
- ace/Activation_Queue.cpp
- ace/Active_Map_Manager.cpp
- ace/Addr.cpp
- ace/Argv_Type_Converter.cpp
- ace/Assert.cpp
- ace/Asynch_IO.cpp
- ace/Asynch_IO_Impl.cpp
- ace/Asynch_Pseudo_Task.cpp
- ace/Atomic_Op.cpp
- ace/Barrier.cpp
- ace/Base_Thread_Adapter.cpp
- ace/Based_Pointer_Repository.cpp
- ace/Basic_Stats.cpp
- ace/Basic_Types.cpp
- ace/CDR_Base.cpp
- ace/CDR_Size.cpp
- ace/CDR_Stream.cpp
- ace/Capabilities.cpp
- ace/Cleanup.cpp
- ace/Codecs.cpp
- ace/Codeset_IBM1047.cpp
- ace/Codeset_Registry.cpp
- ace/Codeset_Registry_db.cpp
- ace/Condition_Attributes.cpp
- ace/Condition_Recursive_Thread_Mutex.cpp
- ace/Condition_Thread_Mutex.cpp
- ace/Configuration.cpp
- ace/Configuration_Import_Export.cpp
- ace/Connection_Recycling_Strategy.cpp
- ace/Containers.cpp
- ace/Copy_Disabled.cpp
- ace/DEV.cpp
- ace/DEV_Addr.cpp
- ace/DEV_Connector.cpp
- ace/DEV_IO.cpp
- ace/DLL.cpp
- ace/DLL_Manager.cpp
- ace/Date_Time.cpp
- ace/Dev_Poll_Reactor.cpp
- ace/Dirent.cpp
- ace/Dirent_Selector.cpp
- ace/Dump.cpp
- ace/Dynamic.cpp
- ace/Dynamic_Message_Strategy.cpp
- ace/Dynamic_Service_Base.cpp
- ace/Dynamic_Service_Dependency.cpp
- ace/Encoding_Converter.cpp
- ace/Encoding_Converter_Factory.cpp
- ace/Event_Base.cpp
- ace/Event_Handler.cpp
- ace/Event_Handler_Handle_Timeout_Upcall.cpp
- ace/FIFO.cpp
- ace/FIFO_Recv.cpp
- ace/FIFO_Recv_Msg.cpp
- ace/FIFO_Send.cpp
- ace/FIFO_Send_Msg.cpp
- ace/FILE.cpp
- ace/FILE_Addr.cpp
- ace/FILE_Connector.cpp
- ace/FILE_IO.cpp
- ace/File_Lock.cpp
- ace/Filecache.cpp
- ace/Flag_Manip.cpp
- ace/Framework_Component.cpp
- ace/Functor.cpp
- ace/Functor_String.cpp
- ace/Get_Opt.cpp
- ace/Handle_Ops.cpp
- ace/Handle_Set.cpp
- ace/Hashable.cpp
- ace/High_Res_Timer.cpp
- ace/ICMP_Socket.cpp
- ace/INET_Addr.cpp
- ace/IOStream.cpp
- ace/IO_Cntl_Msg.cpp
- ace/IO_SAP.cpp
- ace/IPC_SAP.cpp
- ace/Init_ACE.cpp
- ace/LSOCK.cpp
- ace/LSOCK_Acceptor.cpp
- ace/LSOCK_CODgram.cpp
- ace/LSOCK_Connector.cpp
- ace/LSOCK_Dgram.cpp
- ace/LSOCK_Stream.cpp
- ace/Lib_Find.cpp
- ace/Local_Memory_Pool.cpp
- ace/Local_Name_Space.cpp
- ace/Local_Tokens.cpp
- ace/Lock.cpp
- ace/Log_Category.cpp
- ace/Log_Msg.cpp
- ace/Log_Msg_Android_Logcat.cpp
- ace/Log_Msg_Backend.cpp
- ace/Log_Msg_Callback.cpp
- ace/Log_Msg_IPC.cpp
- ace/Log_Msg_NT_Event_Log.cpp
- ace/Log_Msg_UNIX_Syslog.cpp
- ace/Log_Record.cpp
- ace/Logging_Strategy.cpp
- ace/MEM_Acceptor.cpp
- ace/MEM_Addr.cpp
- ace/MEM_Connector.cpp
- ace/MEM_IO.cpp
- ace/MEM_SAP.cpp
- ace/MEM_Stream.cpp
- ace/MMAP_Memory_Pool.cpp
- ace/Malloc.cpp
- ace/Malloc_Allocator.cpp
- ace/Mem_Map.cpp
- ace/Message_Block.cpp
- ace/Message_Queue.cpp
- ace/Message_Queue_NT.cpp
- ace/Message_Queue_Vx.cpp
- ace/Method_Request.cpp
- ace/Monitor_Admin.cpp
- ace/Monitor_Admin_Manager.cpp
- ace/Monitor_Base.cpp
- ace/Monitor_Control_Action.cpp
- ace/Monitor_Control_Types.cpp
- ace/Monitor_Point_Registry.cpp
- ace/Monitor_Size.cpp
- ace/Monotonic_Time_Policy.cpp
- ace/Msg_WFMO_Reactor.cpp
- ace/Multihomed_INET_Addr.cpp
- ace/Mutex.cpp
- ace/NT_Service.cpp
- ace/Name_Proxy.cpp
- ace/Name_Request_Reply.cpp
- ace/Name_Space.cpp
- ace/Naming_Context.cpp
- ace/Netlink_Addr.cpp
- ace/Notification_Queue.cpp
- ace/Notification_Strategy.cpp
- ace/Null_Mutex.cpp
- ace/OS_Errno.cpp
- ace/OS_Log_Msg_Attributes.cpp
- ace/OS_NS_Thread.cpp
- ace/OS_NS_arpa_inet.cpp
- ace/OS_NS_ctype.cpp
- ace/OS_NS_devctl.cpp
- ace/OS_NS_dirent.cpp
- ace/OS_NS_dlfcn.cpp
- ace/OS_NS_errno.cpp
- ace/OS_NS_fcntl.cpp
- ace/OS_NS_math.cpp
- ace/OS_NS_netdb.cpp
- ace/OS_NS_poll.cpp
- ace/OS_NS_pwd.cpp
- ace/OS_NS_regex.cpp
- ace/OS_NS_signal.cpp
- ace/OS_NS_stdio.cpp
- ace/OS_NS_stdlib.cpp
- ace/OS_NS_string.cpp
- ace/OS_NS_strings.cpp
- ace/OS_NS_stropts.cpp
- ace/OS_NS_sys_mman.cpp
- ace/OS_NS_sys_msg.cpp
- ace/OS_NS_sys_resource.cpp
- ace/OS_NS_sys_select.cpp
- ace/OS_NS_sys_sendfile.cpp
- ace/OS_NS_sys_shm.cpp
- ace/OS_NS_sys_socket.cpp
- ace/OS_NS_sys_stat.cpp
- ace/OS_NS_sys_time.cpp
- ace/OS_NS_sys_uio.cpp
- ace/OS_NS_sys_utsname.cpp
- ace/OS_NS_sys_wait.cpp
- ace/OS_NS_time.cpp
- ace/OS_NS_unistd.cpp
- ace/OS_NS_wchar.cpp
- ace/OS_NS_wctype.cpp
- ace/OS_QoS.cpp
- ace/OS_TLI.cpp
- ace/OS_Thread_Adapter.cpp
- ace/OS_main.cpp
- ace/Obchunk.cpp
- ace/Object_Manager.cpp
- ace/Object_Manager_Base.cpp
- ace/Obstack.cpp
- ace/PI_Malloc.cpp
- ace/POSIX_Asynch_IO.cpp
- ace/POSIX_CB_Proactor.cpp
- ace/POSIX_Proactor.cpp
- ace/Pagefile_Memory_Pool.cpp
- ace/Parse_Node.cpp
- ace/Ping_Socket.cpp
- ace/Pipe.cpp
- ace/Priority_Reactor.cpp
- ace/Proactor.cpp
- ace/Proactor_Impl.cpp
- ace/Process.cpp
- ace/Process_Manager.cpp
- ace/Process_Mutex.cpp
- ace/Process_Semaphore.cpp
- ace/Profile_Timer.cpp
- ace/RW_Mutex.cpp
- ace/RW_Process_Mutex.cpp
- ace/RW_Thread_Mutex.cpp
- ace/Reactor.cpp
- ace/Reactor_Impl.cpp
- ace/Reactor_Notification_Strategy.cpp
- ace/Reactor_Timer_Interface.cpp
- ace/Read_Buffer.cpp
- ace/Recursive_Thread_Mutex.cpp
- ace/Recyclable.cpp
- ace/Registry.cpp
- ace/Registry_Name_Space.cpp
- ace/Remote_Name_Space.cpp
- ace/Remote_Tokens.cpp
- ace/SOCK.cpp
- ace/SOCK_Acceptor.cpp
- ace/SOCK_CODgram.cpp
- ace/SOCK_Connector.cpp
- ace/SOCK_Dgram.cpp
- ace/SOCK_Dgram_Bcast.cpp
- ace/SOCK_Dgram_Mcast.cpp
- ace/SOCK_IO.cpp
- ace/SOCK_Netlink.cpp
- ace/SOCK_SEQPACK_Acceptor.cpp
- ace/SOCK_SEQPACK_Association.cpp
- ace/SOCK_SEQPACK_Connector.cpp
- ace/SOCK_Stream.cpp
- ace/SPIPE.cpp
- ace/SPIPE_Acceptor.cpp
- ace/SPIPE_Addr.cpp
- ace/SPIPE_Connector.cpp
- ace/SPIPE_Stream.cpp
- ace/SString.cpp
- ace/SUN_Proactor.cpp
- ace/SV_Message.cpp
- ace/SV_Message_Queue.cpp
- ace/SV_Semaphore_Complex.cpp
- ace/SV_Semaphore_Simple.cpp
- ace/SV_Shared_Memory.cpp
- ace/Sample_History.cpp
- ace/Sbrk_Memory_Pool.cpp
- ace/Sched_Params.cpp
- ace/Select_Reactor_Base.cpp
- ace/Semaphore.cpp
- ace/Service_Config.cpp
- ace/Service_Gestalt.cpp
- ace/Service_Manager.cpp
- ace/Service_Object.cpp
- ace/Service_Repository.cpp
- ace/Service_Types.cpp
- ace/Shared_Memory.cpp
- ace/Shared_Memory_MM.cpp
- ace/Shared_Memory_Pool.cpp
- ace/Shared_Memory_SV.cpp
- ace/Shared_Object.cpp
- ace/Sig_Adapter.cpp
- ace/Sig_Handler.cpp
- ace/Signal.cpp
- ace/Sock_Connect.cpp
- ace/Stack_Trace.cpp
- ace/Stats.cpp
- ace/String_Base_Const.cpp
- ace/Svc_Conf_Lexer.cpp
- ace/Svc_Conf_y.cpp
- ace/Synch_Options.cpp
- ace/System_Time.cpp
- ace/TLI.cpp
- ace/TLI_Acceptor.cpp
- ace/TLI_Connector.cpp
- ace/TLI_Stream.cpp
- ace/TP_Reactor.cpp
- ace/TSS_Adapter.cpp
- ace/TTY_IO.cpp
- ace/Task.cpp
- ace/Thread.cpp
- ace/Thread_Adapter.cpp
- ace/Thread_Control.cpp
- ace/Thread_Exit.cpp
- ace/Thread_Hook.cpp
- ace/Thread_Manager.cpp
- ace/Thread_Mutex.cpp
- ace/Thread_Semaphore.cpp
- ace/Throughput_Stats.cpp
- ace/Time_Policy.cpp
- ace/Time_Value.cpp
- ace/Timeprobe.cpp
- ace/Token.cpp
- ace/Token_Collection.cpp
- ace/Token_Invariants.cpp
- ace/Token_Manager.cpp
- ace/Token_Request_Reply.cpp
- ace/Trace.cpp
- ace/UNIX_Addr.cpp
- ace/UPIPE_Acceptor.cpp
- ace/UPIPE_Connector.cpp
- ace/UPIPE_Stream.cpp
- ace/UTF16_Encoding_Converter.cpp
- ace/UTF32_Encoding_Converter.cpp
- ace/UTF8_Encoding_Converter.cpp
- ace/UUID.cpp
- ace/WFMO_Reactor.cpp
- ace/WIN32_Asynch_IO.cpp
- ace/WIN32_Proactor.cpp
- ace/XML_Svc_Conf.cpp
- ace/XTI_ATM_Mcast.cpp
- ace/ace_wchar.cpp)
-
- if (USE_COREPCH)
- set(PRIVATE_PCH_HEADER ace/PrecompiledHeaders/WinAcePCH.h)
- endif()
-
- # Group sources
- GroupSources(${CMAKE_CURRENT_SOURCE_DIR})
-
- add_library(ace STATIC
- ${ACE_SOURCES})
-
- target_include_directories(ace
- PUBLIC
- ${CMAKE_CURRENT_SOURCE_DIR})
-
- target_compile_definitions(ace
- PUBLIC
- ACE_AS_STATIC_LIBS
- $<$:_WANT_SEMUN>)
-
- target_link_libraries(ace
- PRIVATE
- acore-dependency-interface Iphlpapi)
-
- set_target_properties(ace
- PROPERTIES
- FOLDER
- "deps")
-
- # Generate precompiled header
- if(USE_COREPCH)
- add_cxx_pch(ace ${PRIVATE_PCH_HEADER})
- endif()
-
-endif()
diff --git a/deps/acelite/COPYING b/deps/acelite/COPYING
deleted file mode 100644
index 5917f76aa..000000000
--- a/deps/acelite/COPYING
+++ /dev/null
@@ -1,111 +0,0 @@
-
- _________________________________________________________________
-
- 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-2019, 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. https://www.dre.vanderbilt.edu/~schmidt/ACE.html
- 2. https://www.dre.vanderbilt.edu/~schmidt/TAO.html
- 3. https://www.dre.vanderbilt.edu/CIAO/
- 4. https://www.dre.vanderbilt.edu/cosmic/
- 5. https://www.dre.vanderbilt.edu/~schmidt/
- 6. https://www.dre.vanderbilt.edu/~schmidt/ACE-members.html
- 7. https://www.wustl.edu/
- 8. https://www.uci.edu/
- 9. https://www.vanderbilt.edu/
- 10. mailto:d.schmidt@vanderbilt.edu
- 11. https://www.dre.vanderbilt.edu/~schmidt/ACE-users.html
- 12. https://www.dre.vanderbilt.edu/~schmidt/ACE.html
- 13. https://www.dre.vanderbilt.edu/~schmidt/TAO.html
- 14. https://www.dre.vanderbilt.edu/CIAO/
- 15. https://www.dre.vanderbilt.edu/~schmidt/DOC_ROOT/DAnCE/
- 16. https://www.dre.vanderbilt.edu/cosmic/
- 17. https://www.dre.vanderbilt.edu/
- 18. https://www.isis.vanderbilt.edu/
- 19. https://www.cs.wustl.edu/~schmidt/doc-center.html
- 20. https://www.dre.vanderbilt.edu/~schmidt/commercial-support.html
- 21. mailto:d.schmidt@vanderbilt.edu
- 22. https://www.dre.vanderbilt.edu/~schmidt/
- 23. https://www.dre.vanderbilt.edu/~schmidt/ACE.html
diff --git a/deps/acelite/NEWS b/deps/acelite/NEWS
deleted file mode 100644
index 1f2586f1c..000000000
--- a/deps/acelite/NEWS
+++ /dev/null
@@ -1,2395 +0,0 @@
-USER VISIBLE CHANGES BETWEEN ACE-6.5.9 and ACE-6.5.10
-=====================================================
-
-. Add support for Embarcadero C++ Builder 10.4 Sydney using the
- classic compiler. ACE/TAO compile with the new 32/64 bit clang
- compilers but runtime tests show several runtime problems which
- makes them not safe to use
-
-. Make a change in the ACE Process Manager to resolve an internal
- compiler error with Visual Studio 2019 16.5.x compilers
-
-. Android enhancements for if_nameindex
-
-USER VISIBLE CHANGES BETWEEN ACE-6.5.8 and ACE-6.5.9
-====================================================
-
-. On Windows, ACE no longer defines _WIN32_WINNT. ACE wrappers for
- if_nametoindex and if_indextoname are available if the version of the
- Windows SDK supports them.
-
-. IPv6 extended datagram receive info now supported on macOS.
-
-. ACE_(U)INT8/16/32/64 map to (u)int8/16/32/64_t when C++11 has been
- enabled.
-
-. CDR_Base uses ACE_INT64 for LongLong, all old emulated support
- has been removed
-
-. Updated debian and rpm packaging support
-
-USER VISIBLE CHANGES BETWEEN ACE-6.5.7 and ACE-6.5.8
-====================================================
-
-. Added instructions to ACE-INSTALL.html for building ACE/TAO for Android on
- Windows.
-
-. Embarcadero C++ Builder Rio fixes
-
-. Renamed `VERSION` file to `VERSION.txt` to avoid conflicting with the
- `version` standard header.
-
-USER VISIBLE CHANGES BETWEEN ACE-6.5.6 and ACE-6.5.7
-====================================================
-
-. Fixed compile problem with glibc 2.30 and newer
-
-. gnuace makefiles: Updated handling of generated files and
- use requires/avoids to make postbuild steps conditional
-
-. Removed references to the ACE_LACKS_MONOTONIC_TIME preprocessor macro because
- it was equivalent to ACE_LACKS_CLOCK_MONOTONIC.
-
-. Exposed support status of monotonic times features using preprocessor macros.
- See "Testing for Monotonic Time Support" in docs/ACE-monotonic-timer.html for
- details.
-
-. Added support for ARM and ARM64 stack traces with Microsoft Visual C++.
-
-. The "optional argument for the receive address in ACE_SOCK_Dgram::recv"
- feature from ACE-6.5.5 is now supported on Windows. This includes enhanced
- support for sendmsg/recvmsg on Windows.
-
-USER VISIBLE CHANGES BETWEEN ACE-6.5.5 and ACE-6.5.6
-====================================================
-
-. On Linux, the ACE_Log_Msg format specifier `%t` is now replaced with the
- system thread id provided by gettid(), instead of the much longer pthread id.
-
-. Added support for MQX
-
-. Enhanced Android support
-
-USER VISIBLE CHANGES BETWEEN ACE-6.5.4 and ACE-6.5.5
-====================================================
-
-. Fixed several broken links due to the removal of
- Douglas Schmidt website at WashU
-
-. On Android:
-
- . ACE_Log_Msg (and therefore ACE_DEBUG and ACE_ERROR) now uses
- Android's logging system (aka Logcat) by default in addition to stderr
- because stdout and stderr are discarded under normal circumstances.
- To disable this at runtime, run:
- ACE_LOG_MSG->clr_flags (ACE_Log_Msg::SYSLOG)
- To disable this at compile time include these lines in config.h:
- #define ACE_DEFAULT_LOG_FLAGS ACE_Log_Msg::STDERR
- #define ACE_DEFAULT_LOG_BACKEND_FLAGS 0
-
- . When statically linking to OpenSSL, prevent usage of the preloaded and
- unpredictable system SSL library when using ace_openssl.
-
-. minizip has been moved from ACE to DANCE
-
-. Add initial support for Visual Studio 2019
-
-. Validated ACE for usage SLES15.0 x86_64 using 32bit g++ compiler
-
-. Add optional argument for the receive address in ACE_SOCK_Dgram::recv
-
-USER VISIBLE CHANGES BETWEEN ACE-6.5.3 and ACE-6.5.4
-====================================================
-
-. Fix ACE_Vector::end(), which now correctly
- represents the end of the elements of the vector
- instead of the end of the base array.
-
-USER VISIBLE CHANGES BETWEEN ACE-6.5.2 and ACE-6.5.3
-====================================================
-
-. Enhance Android support
-
-. Fix AIX and Solaris linking rpath errors
-
-. Add support for SSL_INCDIR/SSL_LIBDIR and XERCESC_INCDIR/XERCESC_LIBDIR
- to specify a custom include/lib dir as required for vcpkg versions of
- openssl/xercesc
-
-USER VISIBLE CHANGES BETWEEN ACE-6.5.1 and ACE-6.5.2
-====================================================
-
-. Enhanced C++Builder XE2 support
-
-. ACE_QtReactor can be built with Qt version 5 using the qt5 MPC feature
-
-USER VISIBLE CHANGES BETWEEN ACE-6.5.0 and ACE-6.5.1
-====================================================
-
-. At the moment C++11 or newer is enabled ACE_Strong_Bound_Ptr
- doesn't provide the convenience functions to use a
- std::auto_ptr anymore
-
-. Optimized CDR std::(w)string insertion and extraction
- when C++11 or newer is enabled
-
-. Solved Visual Studio 2017 solution loading due to duplicate
- files generated in a project file
-
-USER VISIBLE CHANGES BETWEEN ACE-6.4.8 and ACE-6.5.0
-====================================================
-
-. The ACE core libraries now use std::unique_ptr instead
- of std::auto_ptr when C++11 or newer is enabled
-
-USER VISIBLE CHANGES BETWEEN ACE-6.4.7 and ACE-6.4.8
-====================================================
-
-. Enhanced Embarcadero C++ Builder support
-
-. ACE XML_Utils enhancements
-
-. Debian packaging enhancements
-
-. Support for clang6 and gcc8
-
-. Enhanced Android support
-
-. Remove addr_any restriction from ipv6_only UDP
-
-USER VISIBLE CHANGES BETWEEN ACE-6.4.6 and ACE-6.4.7
-====================================================
-
-. Added a new, optional argument named ipv6_only to:
- ACE_Acceptor::ACE_Acceptor
- ACE_Acceptor::open
- ACE_SOCK_Dgram::ACE_SOCK_Dgram
- ACE_SOCK_Dgram::open
- If ipv6_only is 0/false (the default) the socket will accept
- both IPv6 and IPv4 connections/datagrams. If ipv6_only is
- 1/true the socket will only accept IPv6.
- This behavior only applies when ACE_HAS_IPV6 is true and the
- local-side IP address is the generic localhost IP address.
-
-. Integrated some changes from XSC into XML Utils
-
-. Enable ACE_HAS_CPP11 when we have clang with C++11 enabled
-
-. Added support for cross compiling using MinGW on a Linux host
-
-. Added support for FreeBSD 11
-
-. Fixed issue ACE_Singleton was broken after ACE::fini, ACE::init (GitHub #554)
-
-USER VISIBLE CHANGES BETWEEN ACE-6.4.5 and ACE-6.4.6
-====================================================
-
-. Fixed some Codacy and C++ Core guidelines reported issues
-
-. VxWorks 7 (SR0510) support
-
-. Support make install on newer Apple MacOS versions
-
-USER VISIBLE CHANGES BETWEEN ACE-6.4.4 and ACE-6.4.5
-====================================================
-
-. Add support for OpenSSL 1.1. ACE users on Windows have
- to add openssl11=1 to their default.features file so
- that the correct OpenSSL library names are used.
-
-USER VISIBLE CHANGES BETWEEN ACE-6.4.3 and ACE-6.4.4
-====================================================
-
-. Enhanced support for Embarcadero C++ Builder 10.2 (Tokyo).
- Support for bcc32/bcc64/bcc32c has been enhanced and by
- default the clang based versions are used. When the old
- bcc32 has to be used set the CLASSIC environment variable
- to 1. At this moment runtime test results for bcc64/bcc32c
- show some structural problems
-
-. Add support for Oracle Studio 12.5
-
-. Removed usage of ACE_REGISTER and register keyword because
- they trigger deprecated warnings with newer gcc and clang
- versions
-
-. Add support for gcc 7
-
-. Enhanced Android support
-
-. Fix ACE_INET_Addr::set(domain_name, AF_UNSPEC) to be set to IPv4 address
- when IPv6 is enabled and the domain_name could be resolved to IPv4 address.
-
-USER VISIBLE CHANGES BETWEEN ACE-6.4.2 and ACE-6.4.3
-====================================================
-
-. Enhancements for Visual Studio 2017
-
-. Enhancements for Android
-
-USER VISIBLE CHANGES BETWEEN ACE-6.4.1 and ACE-6.4.2
-====================================================
-
-. Added support for Mac OS X on x86_64 to get the network adapter
- address in ACE_OS::getmacaddress().
-
-. Added support for the December 2016 updates to VxWorks 7.
-
-USER VISIBLE CHANGES BETWEEN ACE-6.4.0 and ACE-6.4.1
-====================================================
-
-. The ACE_DEBUG environment variable can again be used to set the
- internal debug flag. This used to work but was mistakenly changed
- in an earlier release.
-
-. Corrected usage of ACE_Singleton and template instantation to be
- valid C++ (GCC cross-compiler arm-linux-gnueabihf-g++ requires it).
-
-. Added support for detecting the Mac OS X version when configured with
- ace/config-macosx.h and include/makeinclude/platform_macosx.GNU.
- Also on 10.11 El Capitan, use rpath to avoid a problem with SIP.
-
-. Added support for Android NDK r12b (Platform API 24) and improved
- cross compilation support
-
-USER VISIBLE CHANGES BETWEEN ACE-6.3.4 and ACE-6.4.0
-====================================================
-
-. Added support for obtaining the micro version number
-
-. Reduced include of ace/Auto_Ptr.h in header files
-
-USER VISIBLE CHANGES BETWEEN ACE-6.3.3 and ACE-6.3.4
-====================================================
-
-. ACE_SSL_Context::set_mode() can no longer be used to select a specific
- SSL/TLS protocol version, use ACE_SSL_Context::filter_versions() for that.
- This follows general advice by the OpenSSL project to go through
- SSL_CTX_set_options() to limit the list of protocols available. The purpose
- of ACE_SSL_Context::set_mode() is now limited to explicitly restricting
- behaviour to client or server (defaults to both).
-
-. Improve Oracle Studio support
-
-. CIAO and DAnCE are forked to their own github repositories
- and are not part anymore of the ACE+TAO release packages
-
-. Fixed several Coverity reported issues
-
-. Added ACE configuration for FACE safety profiles (see config-face-safety.h).
- FACE, or Future Airborne Capability Environment http://www.opengroup.org/face,
- specifies a restricted subset of OS functions and rules for controlling
- dynamic memory allocation. When built in this configuration on a platform
- that supports it, ACE conforms to the FACE requirements.
-
-. ACE uses new netdb.h functions (getaddrinfo/getnameinfo) if they are
- available, in place of deprecated functions (gethostbyname/addr).
-
-USER VISIBLE CHANGES BETWEEN ACE-6.3.2 and ACE-6.3.3
-====================================================
-
-. Visual Studio 2015 has adequate C++11 support, because of this
- ACE_HAS_CPP11 is now defined with this compiler. A large amount
- of warnings given by this new compiler have been fixed
-
-. As part of the release script we generate vc12 and vc14
- solution files which are packaged as part of the release
-
-. Added support for VxWorks 7 (kernel mode and RTP).
- See the comments in include/makeinclude/platform_vxworks7.0.GNU for details.
-
-. Ended daily maintenance for OpenVMS
-
-. Fixed a defect in ACE_INET_Addr when there is a non-empty interface
- address list and set_port_number() is called.
-
-USER VISIBLE CHANGES BETWEEN ACE-6.3.1 and ACE-6.3.2
-====================================================
-
-. Added support for std::chrono to ACE_Time_Value. It's
- now possible to construct an ACE_Time_Value with a
- std::duration. Also streaming, adding and substracting
- an ACE_Time_Value to and from a std::duration is
- supported. Please see tests/Chrono_Test.cpp for more
- details.
-
-. Allow ACE_INET_Addr to hold all addresses associated with a hostname. The
- set of addresses always has a "current" address which is accessed by the
- usual "get"-type methods on the class. Two new methods are added to deal
- with multiple addresses:
- - bool next (void): makes the next available address the "current" one.
- Returns false if there are no more addresses.
- - void reset (void): resets the iteration mechanism to be able to examine
- all of the addresses again.
- ACE_Multihomed_INET_Addr has also been enhanced so that the get_addresses()
- methods copy all available addresses related to each name.
-
-. The ACE_Addr::set_addr (void*, int) signature was changed to
- ACE_Addr::set_addr (const void*, int). All classes that inherit from
- ACE_Addr also have the same change. This affects ACE_ATM_Addr, ACE_Addr,
- ACE_INET_Addr, ACE_MEM_Addr, ACE_Netlink_Addr, ACE_SPIPE_Addr, ACE_UNIX_Addr.
- Any user-written classes derived from ACE_Addr will also need to change to
- match the new signature for virtual method dispatch to continue working
- properly in all cases.
-
-. Added the class ACE_CDR::Fixed (CDR_Base.h) for CDR's fixed-point decimal
- data type which stores up to 31 decimal digits and a sign bit.
-
-USER VISIBLE CHANGES BETWEEN ACE-6.3.0 and ACE-6.3.1
-====================================================
-
-. ACE is now hosted on github (https://github.com/DOCGroup/ATCD).
- As part of the release process we now generate a ChangeLog
- for each release which is stored in the ChangeLogs directory
-
-. ACE has been ported to OpenBSD 5.6. Old versions of
- OpenBSD are no longer supported.
-
-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 maintenance 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/deps/acelite/PROBLEM-REPORT-FORM b/deps/acelite/PROBLEM-REPORT-FORM
deleted file mode 100644
index 7a6ba05c9..000000000
--- a/deps/acelite/PROBLEM-REPORT-FORM
+++ /dev/null
@@ -1,87 +0,0 @@
-[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, MicroFocus, 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 github issues.
- See https://github.com/DOCGroup/ACE_TAO/issues 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 the existing github isssues 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
- https://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.5.10
-
- 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/deps/acelite/README b/deps/acelite/README
deleted file mode 100644
index e00ba30f2..000000000
--- a/deps/acelite/README
+++ /dev/null
@@ -1,216 +0,0 @@
-This document is also available at the following URL:
-
-https://www.dre.vanderbilt.edu/~schmidt/ACE.html
-
-All software and documentation is available via both anonymous ftp and
-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.dre.vanderbilt.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 communication 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
-https://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. 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 $ACE_ROOT/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.
-
-----------------------------------------
-
-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/deps/acelite/THANKS b/deps/acelite/THANKS
deleted file mode 100644
index 10b223188..000000000
--- a/deps/acelite/THANKS
+++ /dev/null
@@ -1,2425 +0,0 @@
-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
-Alexander Smundak
-Thilo Kielmann
-Matthias Kerkhoff
-Fred LaBar
-Hanan Herzog
-Eric Parker
-James Michael Dwyer
-Arun Katkere
-Bob Dunmire
-Sandro Doro
-Robert Lyng
-Phil Logan
-John Cosby
-Wayne Vucenic
-Harry Gunnarsson
-James CE Johnson
-Samuel_Bercovici
-Per Andersson
-Anthony McConnell
-Mark Rabotnikov
-John Bossom
-Rino Simioni
-Slawomir Kuzniar
-Rob Jordan
-Michael Maxie
-John Cosby