summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ACE-INSTALL.html606
-rw-r--r--ChangeLog-99b6
-rw-r--r--THANKS1
3 files changed, 322 insertions, 291 deletions
diff --git a/ACE-INSTALL.html b/ACE-INSTALL.html
index 3f319958bfd..dd45632c75d 100644
--- a/ACE-INSTALL.html
+++ b/ACE-INSTALL.html
@@ -65,7 +65,8 @@ Mistakes page</a>.<P>
</tr>
<tr valign=top>
<td><b>Partially supported, i.e., infrequently tested</b></td>
- <td> Windows CE, Tandem, SCO, UnixWare, SunOS 4.x, FreeBSD, NetBSD
+ <td> Windows NT (Borland C++ Builder 4.0 and IBM VisualAge C++),
+ Windows CE, Tandem, SCO, UnixWare, SunOS 4.x, FreeBSD, NetBSD
</td>
</tr>
<tr valign=top bgcolor="#AFAFAF">
@@ -88,34 +89,38 @@ try to help you fix the problems.
<UL>
<LI><B>Win32 (Windows NT/i386, NT/Alpha and Windows '95) </B><P>
- All of ACE has been ported to the Win32 API (which includes Windows NT
- and Windows '95). The entire release now compiles using the Microsoft
- Visual C++ 4.x, 5.0, and 6.0 compilers (the 2.0 compiler may also work,
- but we haven't tested it recently). ACE can be built as both a static and
- dynamic library, using the Win32 installation process described
- below.<P>
-
+ All of ACE has been ported to the Win32 API (which includes
+ Windows NT and Windows '95). The entire release now compiles
+ using the Microsoft Visual C++ 4.x, 5.0, and 6.0 compilers (the
+ 2.0 compiler may also work, but we haven't tested it recently).
+ ACE can be built as both a static and dynamic library, using the
+ Win32 installation process described below.<P>
+
Please see the <A HREF="#Non-static Object Manager">Non-static
ACE_Object_Manager</A> discussion below.<p>
+ We've also added some support for Borland C++ Builder 4.0 and
+ IBM's VisualAge C++ compiler. Since we don't have these
+ compilers we rely on the ACE+TAO users community to maintain
+ these ports. Therefore, please send email to the ACE mailing
+ list if you run into problems. <P>
+
<li><b>Windows CE</b><p>
- Most of ACE has been ported to Windows CE using Visual C++ 5.0 with CE
- Toolkit. ACE has been tested on x86 Emulator and an HP 360LX
- with an SH series CPU. Please be sure to read this file (<a
- href="docs/CE-status.txt">CE-status.txt</a>) for
- up-to-date information about ACE on CE. ACE can only be built as
- DLL library now.<p>
+ Most of ACE has been ported to Windows CE using Visual C++ 5.0
+ with CE Toolkit. ACE has been tested on x86 Emulator and an HP
+ 360LX with an SH series CPU. Please be sure to read this file
+ (<a href="docs/CE-status.txt">CE-status.txt</a>) for up-to-date
+ information about ACE on CE. ACE can only be built as DLL
+ library now.<p>
<LI><B> Sun OS 5.x/4.x (a.k.a. Solaris 2.x/1.x, Solaris 7) using Sun
- CC 3.0.1, Sun C++ 4.2 and 5.x, Centerline C++ 2.x, and
- GNU gcc 2.7.x and later (except 2.8.x).</B><P>
+ CC 3.0.1, Sun C++ 4.2 and 5.x, Centerline C++ 2.x, GNU gcc 2.7.x
+ and later (except 2.8.x), and KAI C++ 3.3.</B><P>
- All the source code and tests should build and run without
- any problems on Solaris 2.5.1, 2.6 and 7 platforms using the
- Sun C++ compiler. We use this version/patchlevel of
- Sun C++:<p>
- <pre>
+ All the source code and tests should build and run without any
+ problems on Solaris 2.5.1, 2.6 and 7 platforms using the Sun C++
+ compiler. We use this version/patchlevel of Sun C++:<p> <pre>
CC: WorkShop Compilers 4.2 21 Apr 1997 C++ 4.2 patch 104631-02
</pre><p>
@@ -125,82 +130,82 @@ try to help you fix the problems.
Thanks to Susan Liebeskind &lt;shl@janis.gtri.gatech.edu&gt;
for providing the following useful information:<p>
- The home page for Sun technical patches is
- <a href="http://access1.sun.com">http://access1.sun.com</a>.
- Searching for 104631 will bring you to a page allowing you to access
- the latest version of the C++ 4.2 patches.<p>
+ The home page for Sun technical patches is <a
+ href="http://access1.sun.com">http://access1.sun.com</a>.
+ Searching for 104631 will bring you to a page allowing you to
+ access the latest version of the C++ 4.2 patches.<p>
- By default, ACE uses both the Solaris and POSIX thread interface.
- To disable use of the Solaris thread interface, add
- <code>-D_POSIX_PTHREAD_SEMANTICS</code> to the <code>CFLAGS</code>
- in your
+ By default, ACE uses both the Solaris and POSIX thread
+ interface. To disable use of the Solaris thread interface, add
+ <code>-D_POSIX_PTHREAD_SEMANTICS</code> to the
+ <code>CFLAGS</code> in your
<code>ACE_wrappers/include/makeinclude/platform_macros.GNU</code>.
See the Solaris Intro (3) man page for more information.<p>
To disable ACE thread support completely, build with the
- <code>threads=0</code> make flag. See the <a href="#flags">Makefile
- Flags</a> section below for more information on make flags.<p>
+ <code>threads=0</code> make flag. See the <a
+ href="#flags">Makefile Flags</a> section below for more
+ information on make flags.<p>
If you use g++ or egcs on Solaris 7, you might need to rebuild
- it on a SunOS 5.7 (Solaris 7) host. Some versions of g++ and egcs
- provide replacements for system header files. The replacements on
- older SunOS systems are not compatible with the SunOS 5.7 system
- headers. See <a
+ it on a SunOS 5.7 (Solaris 7) host. Some versions of g++ and
+ egcs provide replacements for system header files. The
+ replacements on older SunOS systems are not compatible with the
+ SunOS 5.7 system headers. See <a
href="http://www.cs.wustl.edu/~levine/Hints.html">David Levine's
- Hints page</a>
- for instructions on how to build egcs on a SunOS 5.7 host, using
- a g++ or egcs that was built on an older SunOS host.
+ Hints page</a> for instructions on how to build egcs on a SunOS
+ 5.7 host, using a g++ or egcs that was built on an older SunOS
+ host. <P>
- <p>The Sun/C++ 5.0 compilers has several problems with
- templates, we have worked around most of them but this is
- not a compiler that we test very often. Hopefully as new
- patches for the compiler show up we will be able to make
- that our compiler of choice on Solaris.</p>
+ The Sun/C++ 5.0 compilers has several problems with templates,
+ we have worked around most of them but this is not a compiler
+ that we test very often. Hopefully as new patches for the
+ compiler show up we will be able to make that our compiler of
+ choice on Solaris.</p>
<LI><B>Sun OS 4.1.x using Centerline C++ 2.x, Sun CC 3.x, and Lucid
Energize 3.2.</B><P>
Note that shared libraries do not interact very well with
- Centerline C++ or Sun C++ on SunOS 4.1.x. This is due to
- odd behavior of the SunOS 4.1.x linker, which (1) does not
- properly call constructors of global objects within shared
- libraries and (2) does not call the init() and fini()
- functions in shared libraries, even though the manual claims
- that these functions are called! In particular, this means
- that the tests in the directory
- $ACE_ROOT/tests/Service_Configurator/IPC-tests/server/
+ Centerline C++ or Sun C++ on SunOS 4.1.x. This is due to odd
+ behavior of the SunOS 4.1.x linker, which (1) does not properly
+ call constructors of global objects within shared libraries and
+ (2) does not call the init() and fini() functions in shared
+ libraries, even though the manual claims that these functions
+ are called! In particular, this means that the tests in the
+ directory $ACE_ROOT/tests/Service_Configurator/IPC-tests/server/
will not work for statically linked services.<P>
Some versions of SunOS 4.1.x do not contain the
- /usr/lib/libnsl.a library. This library seems to be
- optional since System V Transport Layer Interface (TLI)
- support is optional on SunOS 4.1.x (in contrast, it's the
- "preferred" transport interface on Solaris).<P>
+ /usr/lib/libnsl.a library. This library seems to be optional
+ since System V Transport Layer Interface (TLI) support is
+ optional on SunOS 4.1.x (in contrast, it's the "preferred"
+ transport interface on Solaris).<P>
- The best work-around for now is probably to either add a
- dummy libnsl.a in /lib (which may not be feasible) or simply
- comment out the line:<P>
+ The best work-around for now is probably to either add a dummy
+ libnsl.a in /lib (which may not be feasible) or simply comment
+ out the line:<P>
LIBS += -lnsl<P>
- in the <CODE>$ACE_ROOT/include/makeinclude/wrapper_macros.GNU</CODE>
- file. Naturally, any programs, e.g., the TLI_SAP tests,
- that use the TLI wrappers aren't going to work!<P>
+ in the
+ <CODE>$ACE_ROOT/include/makeinclude/wrapper_macros.GNU</CODE>
+ file. Naturally, any programs, e.g., the TLI_SAP tests, that
+ use the TLI wrappers aren't going to work!<P>
- Note that on SunOS 4.x you may get warnings from the linker
- that "archive has no table of contents; add one using
- ranlib(1)" for certain libraries, e.g., libASX.a,
- libThreads.a, and libSPIPE.a. This occurs since SunOS 4.x
- does not support these features.<P>
+ Note that on SunOS 4.x you may get warnings from the linker that
+ "archive has no table of contents; add one using ranlib(1)" for
+ certain libraries, e.g., libASX.a, libThreads.a, and libSPIPE.a.
+ This occurs since SunOS 4.x does not support these features.<P>
<LI><B>AIX</B><P>
- The ACE port to AIX assumes that the user has installed the
- AIX patch containing the dl*() APIs. To use these APIs, IBM
- has created a separate product (free to AIX licensees)
- called shared library hookable symbols (or slhs/6000). If
- you don't have this patch, the sv* commands for compiling
- and linking will not be present on the system.<P>
+ The ACE port to AIX assumes that the user has installed the AIX
+ patch containing the dl*() APIs. To use these APIs, IBM has
+ created a separate product (free to AIX licensees) called shared
+ library hookable symbols (or slhs/6000). If you don't have this
+ patch, the sv* commands for compiling and linking will not be
+ present on the system.<P>
If you are using AIX 4.2.1 or later, this patch isn't needed;
the dynamic library APIs are included in the base operating
@@ -220,23 +225,24 @@ ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more information.
make: *** [libACE.so] Error 8
</pre>
- To fix this error, you need a patch to the supporting xlC related
- libraries. To obtain this patch, go to the
- <a href="http://service.software.ibm.com/support/rs6000">IBM
- public patch website</a>, and retrieve the patch
- PTF U453697, or its successor, for xlC.<p>
+ To fix this error, you need a patch to the supporting xlC
+ related libraries. To obtain this patch, go to the <a
+ href="http://service.software.ibm.com/support/rs6000">IBM public
+ patch website</a>, and retrieve the patch PTF U453697, or its
+ successor, for xlC.<p>
You may wish to retrieve this patch with the fixdist tool, also
- available at the website. Installation of this patch will install
- patched versions of the C++ libraries, which correctly define this
- symbol.<p>
+ available at the website. Installation of this patch will
+ install patched versions of the C++ libraries, which correctly
+ define this symbol.<p>
BTW, here's a technique from Rob Jordan &lt<A
HREF="mailto:jordan@hursley.ibm.com">jordan@hursley.ibm.com</A>&gt
- 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.<P>
+ 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.<P>
Here's how to optimise the ACE library generation:<P>
@@ -254,29 +260,33 @@ make: *** [libACE.so] Error 8
<LI><B><a name="Linux">Linux</a></B><P>
ACE has been ported to <A
- HREF="http://www.cs.wustl.edu/~cleeland/ace/">Linux</A> on both Intel
- and Alpha 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, 5.2, and 6.0, and on Debian 2.1 on both Intel and Alpha;
- use the <code>include/makeinclude/platform_linux_lxpthreads.GNU</code>
+ HREF="http://www.cs.wustl.edu/~cleeland/ace/">Linux</A> on both
+ Intel and Alpha 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, 5.2, and 6.0, and on
+ Debian 2.1 on both Intel and Alpha; use the
+ <code>include/makeinclude/platform_linux_lxpthreads.GNU</code>
and <code>ace/config-linux-lxpthreads.h</code> platform/config
files.<p>
- If you run out of memory, it's easy to add virtual memory
- on Linux. Please see the <code>mkswap</code> man page.<p>
+ If you run out of memory, it's easy to add virtual memory on
+ Linux. Please see the <code>mkswap</code> man page.<p>
- The glibc 2.0 dynamic loader isn't thread safe. If you want to use the
- Invocation API you'll have to set <code>LD_BIND_NOW=true</code>. If you
- want to use <code>dlopen</code>, you should use <code>RTLD_NOW</code>.
- The dynamic loader in glibc 2.1 is thread safe.<p>
+ The glibc 2.0 dynamic loader isn't thread safe. If you want to
+ use the Invocation API you'll have to set
+ <code>LD_BIND_NOW=true</code>. If you want to use
+ <code>dlopen</code>, you should use <code>RTLD_NOW</code>. The
+ dynamic loader in glibc 2.1 is thread safe.<p>
- The ACE <code>Tokens_Test</code> hangs with egcs 1.1b on Linux. It
- runs properly when built with egcs 1.0.2, egcs 1.0.3 and egcs 1.1.1.
- All other ACE tests run properly with these egcs versions.<p>
+ The ACE <code>Tokens_Test</code> hangs with egcs 1.1b on Linux.
+ It runs properly when built with egcs 1.0.2, egcs 1.0.3 and egcs
+ 1.1.1. All other ACE tests run properly with these egcs
+ versions.<p>
<strong>NOTE:</strong> The TAO NameService uses IP multicasting
by default, though it is not required. IP multicast on Linux
requires the following:<p>
+
<ul>
<li>Enable IP multicast in the Linux kernel. It is enabled in
the default RedHat 5.1 kernel. In older distributions, you
@@ -297,46 +307,46 @@ make: *** [libACE.so] Error 8
</pre><p>
</ul>
- With RedHat 5.0, you'll need some
- <a href="os-patches/linux-patches.html">updates and possibly some
- patches</a> to get ACE working with LinuxThreads. Some of the patches
- are necessary with Alpha CPUs and with some older kernels. egcs 1.0.1
- can also be used, but it may need patches, described there, as well.<p>
+ With RedHat 5.0, you'll need some <a
+ href="os-patches/linux-patches.html">updates and possibly some
+ patches</a> to get ACE working with LinuxThreads. Some of the
+ patches are necessary with Alpha CPUs and with some older
+ kernels. egcs 1.0.1 can also be used, but it may need patches,
+ described there, as well.<p>
<strong>NOTE:</strong> Be careful when installing egcs on RedHat
- systems. If you don't remove your old gcc and libg++ RPMs, it's best
- to install egcs in a different directory than <code>/usr</code>, such as
- <code>/usr/local</code>, and set your <code>PATH</code> and
- <code>LD_LIBRARY_PATH</code> accordingly.<p>
+ systems. If you don't remove your old gcc and libg++ RPMs, it's
+ best to install egcs in a different directory than
+ <code>/usr</code>, such as <code>/usr/local</code>, and set your
+ <code>PATH</code> and <code>LD_LIBRARY_PATH</code>
+ accordingly.<p>
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.<p>
+ such as RedHat 4.2. The problems are with threads and
+ thread-specific storage.<p>
<LI><B>SCO UNIX</B><P>
- ACE has been ported to SCO UNIX using the GNU g++ 2.7.2 compiler.
- Arturo Montes &lt<A
+ ACE has been ported to SCO UNIX using the GNU g++ 2.7.2
+ compiler. Arturo Montes &lt<A
HREF="mailto:mitosys@colomsat.net.co">mitosys@colomsat.net.co</A>&gt
- maintains this code. In addition, he also maintains a version of <A
- HREF="FSU-threads.tar.gz">FSU
- pthreads</A>.<P>
+ maintains this code. In addition, he also maintains a version
+ of <A HREF="FSU-threads.tar.gz">FSU pthreads</A>.<P>
<LI><B>SGI IRIX 5.x and 6.x</B><P>
- 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.<P>
+ 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.<P>
<LI><B> HP-UX 9.x, 10.x, and 11.00 </B> <P>
- HP sells 2 C++ compilers for HP-UX 10.x and 11.00. If you are using 9.x,
- there's only the first one.
+ HP sells 2 C++ compilers for HP-UX 10.x and 11.00. If you are
+ using 9.x, there's only the first one.
+
<UL>
<LI>HP C++ - this is CC, HP's cfront-based compiler. As of ACE 4.4, it
can be used, but some people have problems with templates.
@@ -358,20 +368,20 @@ make: *** [libACE.so] Error 8
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.<P>
+ 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.<P>
- CXX 6.0 and 6.1 are much improved over 5.x: V6.0-020, V6.1-025,
+ 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_wrappers/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
+ 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.<p>
- GNU gcc 2.7.2.1 compiles without problems. All tests run (besides
- minor problems). Thanks to Thilo Kielmann &lt<A
+ GNU gcc 2.7.2.1 compiles without problems. All tests run
+ (besides minor problems). Thanks to Thilo Kielmann &lt<A
HREF="mailto:kielmann@informatik.uni-siegen.de">kielmann@informatik.uni-siegen.de</A>&gt
and David Trumble &lt<A
HREF="mailto:trumble@cvg.enet.dec.com">trumble@cvg.enet.dec.com</A>&gt
@@ -380,18 +390,18 @@ make: *** [libACE.so] Error 8
<li><b> FreeBSD </b><p>
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. <p>
+ 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. <p>
- Notice that on older FreeBSD, <code>ld.so</code> only looks for so
- libraries with <b>version number</b> appended. ACE makefiles
+ Notice that on older FreeBSD, <code>ld.so</code> only looks for
+ so libraries with <b>version number</b> appended. ACE makefiles
create symlink for most shared libraries if
<code>versioned_so</code> is defined to 1 in
<code>$ACE_ROOT/ace</code> 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: <p>
+ create it manually (If you figure out how to do this, please let
+ us know) like this: <p>
<code>ln -sf $ACE_ROOT/ace/libACE.so $ACE_ROOT/ace/libACE.so.4.5</code><p>
@@ -404,15 +414,18 @@ make: *** [libACE.so] Error 8
<LI><B> UnixWare </B> <P>
- Steve Huston &lt<A HREF="mailto:shuston@riverace.com">shuston@riverace.com</A>&gt
+ Steve Huston &lt<A
+ HREF="mailto:shuston@riverace.com">shuston@riverace.com</A>&gt
has ported ACE to work with UnixWare 2.01 and g++.<P>
- Ganesh Pai &lt<A HREF="mailto:gpai@voicetek.com">gpai@voicetek.com</A>&gt
+ Ganesh Pai &lt<A
+ HREF="mailto:gpai@voicetek.com">gpai@voicetek.com</A>&gt
subsequently did the port for version 2.1.2, also with g++.<P>
<LI><B>Chorus</B> <P>
- Wei Chiang &lt<A HREF="mailto:chiang@tele.nokia.fi">chiang@tele.nokia.fi</A>&gt
+ Wei Chiang &lt<A
+ HREF="mailto:chiang@tele.nokia.fi">chiang@tele.nokia.fi</A>&gt
has ported ACE to Chorus 3.1 using GNU g++ 2.7.2.<P>
<LI><B><a name="LynxOS">LynxOS</a></B> <P>
@@ -421,12 +434,13 @@ make: *** [libACE.so] Error 8
ACE's Naming_Test fails; it is disabled in <a
href="tests/run_tests.sh"><code>ACE_wrappers/tests/run_tests.sh</code></a>.<p>
- ACE builds cleanly on LynxOS 3.0.0 for PowerPC targets. For
- the most part, it runs properly. But, there appears to be
- a problem with registering signal handlers. So, some of the
- ACE tests seg fault when attempting to do that.<p>
+ ACE builds cleanly on LynxOS 3.0.0 for PowerPC targets. For the
+ most part, it runs properly. But, there appears to be a problem
+ with registering signal handlers. So, some of the ACE tests seg
+ fault when attempting to do that.<p>
If you run out of memory on LynxOS, these might help:<p>
+
<ul>
<li>Increase the limits in <code>/etc/starttab</code>,
then logout and login again. We use these limits:
@@ -457,25 +471,28 @@ make: *** [libACE.so] Error 8
/bin/route add "224.0.0.0" "$my_name"
</code></pre>
- Dave Mayerhoefer &lt<A HREF="mailto:davem@lynx.com">davem@lynx.com</A>&gt
- has ported ACE to LynxOS 2.5 using GNU g++ 2.7.2. However, you may need
- to apply some <A HREF="os-patches/lynxos-patches.html">patches
- to LynxOS</A> to get ACE working.<P>
+ Dave Mayerhoefer &lt<A
+ HREF="mailto:davem@lynx.com">davem@lynx.com</A>&gt has ported
+ ACE to LynxOS 2.5 using GNU g++ 2.7.2. However, you may need to
+ apply some <A HREF="os-patches/lynxos-patches.html">patches to
+ LynxOS</A> to get ACE working.<P>
<LI><STRONG>VxWorks</STRONG><P>
- <A HREF="http://www.cs.wustl.edu/~levine/">David Levine</A> &lt<A
+ <A HREF="http://www.cs.wustl.edu/~levine/">David Levine</A>
+ &lt<A
HREF="mailto:levine@cs.wustl.edu">levine@cs.wustl.edu</A>&gt has
ported ACE to VxWorks 5.2/5.3/5.3.1 with the GreenHills 1.8.8
and g++ 2.7.2 compilers. An anonymous contributor has also
provided <a href="os-patches/vxworks-5.1.txt">notes for using
ACE with VxWorks 5.1.</a><P>
- In addition to all of the other benefits of ACE, it helps
- work around some deficiencies with VxWorks 5.3/5.3.1.
- Some of these apply only with g++, at least thru version 2.7.2.
- That is the version that is shipped with Tornado 1.0.1/
- VxWorks 5.3.1. The problems are:<P>
+ In addition to all of the other benefits of ACE, it helps work
+ around some deficiencies with VxWorks 5.3/5.3.1. Some of these
+ apply only with g++, at least thru version 2.7.2. That is the
+ version that is shipped with Tornado 1.0.1/ VxWorks 5.3.1. The
+ problems are:<P>
+
<OL>
<LI>The program entry point cannot be called ``main'' with g++. ACE
renames it to ``ace_main'' (configurable via ACE_MAIN) on VxWorks.
@@ -501,74 +518,82 @@ make: *** [libACE.so] Error 8
very unlikely situation where it becomes a problem.
Please see ace/config-vxworks5.2-g++.h for more information.<P>
</OL>
+
In addition, as noted <A HREF="#g++">below</A> following the
discussion of the g++ -fno-implicit-templates option,
- -fno-implicit-templates is broken. And, -O2 is not supported on some
- targets.<P>
+ -fno-implicit-templates is broken. And, -O2 is not supported on
+ some targets.<P>
- 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.i, so it can easily be changed to one
- of the other spare fields, if necessary.<P>
+ 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.i, so it
+ can easily be changed to one of the other spare fields, if
+ necessary.<P>
Versions of ACE from 4.3.3 and beyond destroy 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 <code>cplusDtors</code>
- and then <code>cplusCtors</code> between runs.<P>
+ 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 <code>cplusDtors</code> and
+ then <code>cplusCtors</code> between runs.<P>
<LI><B>MVS OpenEdition</B> <P>
All of ACE has been ported to OpenEdition by Chuck Gehr &lt<A
HREF="mailto:gehr@sweng.stortek.com">gehr@sweng.stortek.com</A>&gt.
- 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:<P>
-
- 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.<P>
-
- Some of the tests do not execute properly. This is a minority and over time
- the goal is to get to 100%.<P>
-
- 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
- <A HREF="#mvs">additional build tips for MVS</A> for more on
- this.<P>
+ 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:<P>
+
+ 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.<P>
+
+ Some of the tests do not execute properly. This is a minority
+ and over time the goal is to get to 100%.<P>
+
+ 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 <A HREF="#mvs">additional
+ build tips for MVS</A> for more on this.<P>
<li><strong>QNX Neutrino</strong><p>
- ACE has been ported to
- <a href="http://www.qnx.com/products/os/neutrino.html">QNX Neutrino
- 2.0</a>. We cross-compile for Neutrino on a QNX4 host using g++ 2.8.1,
- using the <a href="ace/config-qnx-neutrino.h">ace/config-qnx-neutrino.h</a>
- and <a href="include/makeinclude/platform_qnx_neutrino.GNU">include/makeinclude/platform_qnx_neutrino.GNU</a> 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.<p>
+
+ ACE has been ported to <a
+ href="http://www.qnx.com/products/os/neutrino.html">QNX Neutrino
+ 2.0</a>. We cross-compile for Neutrino on a QNX4 host using g++
+ 2.8.1, using the <a
+ href="ace/config-qnx-neutrino.h">ace/config-qnx-neutrino.h</a>
+ and <a
+ href="include/makeinclude/platform_qnx_neutrino.GNU">include/makeinclude/platform_qnx_neutrino.GNU</a>
+ 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.<p>
<li><strong>PharLap TNT Embedded ToolSuite (ETS)</strong><p>
- ACE has been ported to <a href="http://www.pharlap.com">PharLap's</a>
- TNT Embedded ToolSuite (ETS) version 9.1. The port is being tested with
- Microsoft Visual C++ 6.<p>
- To build for PharLap, use the ace/config-pharlap.h configuration file,
- and the instructions for building on Win32. Building the ACE library is
- the same as for regular Win32 platforms. 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.
- <p>
- If you have any fixes or suggestions for improving
- this port, please contact <a href="mailto:shuston@riverace.com">Steve
- Huston</a>.
+
+ ACE has been ported to <a
+ href="http://www.pharlap.com">PharLap's</a> TNT Embedded
+ ToolSuite (ETS) version 9.1. The port is being tested with
+ Microsoft Visual C++ 6.<p> To build for PharLap, use the
+ ace/config-pharlap.h configuration file, and the instructions
+ for building on Win32. Building the ACE library is the same as
+ for regular Win32 platforms. 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. <p> If you have any fixes or
+ suggestions for improving this port, please contact <a
+ href="mailto:shuston@riverace.com">Steve Huston</a>.
</UL>
<HR>
@@ -619,21 +644,20 @@ If you use the GNU GCC g++ compiler please note the following:
<LI>Make sure to update your gcc <code>config.status</code>
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
- <code>/usr/ccs/bin</code> binary utils or GNU binary
- utils. The <code>config.status</code> file is an output of
- the gcc <code>configure</code> script; it is preferable to use
- the <code>--prefix</code> option to <code>configure</code> instead
+ it specifies whether to use Solaris's <code>/usr/ccs/bin</code>
+ binary utils or GNU binary utils. The
+ <code>config.status</code> file is an output of the gcc
+ <code>configure</code> script; it is preferable to use the
+ <code>--prefix</code> option to <code>configure</code> instead
of hacking its output.<P>
<LI>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.<P>
+ 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.<P>
NOTE: if you do use the GNU linker, you might need to change
the <code>-G</code> flag to <code>-shared</code> in
@@ -649,52 +673,53 @@ If you use the GNU GCC g++ compiler please note the following:
documentation for using <CODE>collect2</CODE>.<P>
<LI>By default, gcc (thru version 2.7.2, at least) uses
- implicit template instantiation. Besides wasting space,
- this breaks the use of ACE_Singleton: instead of one
- singleton instance, there could be one instance per object
- (.o) file that "sees" the template. Therefore, we have
- overridden this default in ACE by enabling the
- -fno-implicit-templates option to CCFLAGS in all
- include/makeinclude/platform_*.GNU files that set CXX to g++.<P>
+ implicit template instantiation. Besides wasting space, this
+ breaks the use of ACE_Singleton: instead of one singleton
+ instance, there could be one instance per object (.o) file that
+ "sees" the template. Therefore, we have overridden this default
+ in ACE by enabling the -fno-implicit-templates option to CCFLAGS
+ in all include/makeinclude/platform_*.GNU files that set CXX to
+ g++.<P>
<LI>The disadvantage of this approach is that you must
add template specializations for all templates that your
application uses to your own code. (The ACE libraries are
- self-contained: you don't need to add the templates that
- they use internally.) Examples of template specializations
- occur in quite a few ACE .cpp files; see the end of
- <A HREF="apps/Gateway/Gateway/Connection_Handler.cpp">apps/Gateway/Gateway/Connection_Handler.cpp</A> for one example.
- An easy way to figure out what template instantiations are
- need is to try to build your executable and pipe the output
- through c++filt. The linker will report the missing
- instantiations as undefined symbols. Iteration may be
+ self-contained: you don't need to add the templates that they
+ use internally.) Examples of template specializations occur in
+ quite a few ACE .cpp files; see the end of <A
+ HREF="apps/Gateway/Gateway/Connection_Handler.cpp">apps/Gateway/Gateway/Connection_Handler.cpp</A>
+ for one example. An easy way to figure out what template
+ instantiations are need is to try to build your executable and
+ pipe the output through c++filt. The linker will report the
+ missing instantiations as undefined symbols. Iteration may be
necessary, if the template instantiations themselves reference
other templates.<P>
<LI>Alternatively, you could apply the
- <a href="ftp://ftp.cygnus.com/pub/g++/">Cygnus template repository
- patches</a> and use the -frepo option instead of
+ <a href="ftp://ftp.cygnus.com/pub/g++/">Cygnus template
+ repository patches</a> and use the -frepo option instead of
-fno-implicit-templates. ACE readily this option for
- application code: to enable it just add <code>repo=1</code>
- to your <code>make</code> invocation, or to your
- <code>include/makeinclude/platform_macros.GNU</code>. ACE
- still uses explicit template instantiation for building its
- libraries to help avoid link conflicts. Please see the g++
- FAQ and gcc manual for more information on the -frepo option.<p>
+ application code: to enable it just add <code>repo=1</code> to
+ your <code>make</code> invocation, or to your
+ <code>include/makeinclude/platform_macros.GNU</code>. ACE still
+ uses explicit template instantiation for building its libraries
+ to help avoid link conflicts. Please see the g++ FAQ and gcc
+ manual for more information on the -frepo option.<p>
<li>The implementation of templates for g++ version 2.8
- eliminates the restriction against static data members
- in template classes.<p>
+ eliminates the restriction against static data members in
+ template classes.<p>
<li>A final alternative is to
remove the <code>-fno-implicit-templates</code> option from the
- CCFLAGS macro in your include/makeinclude/platform_macros.GNU, and
- thereby use the default g++ implicit template instantiation.<P>
+ CCFLAGS macro in your include/makeinclude/platform_macros.GNU,
+ and thereby use the default g++ implicit template
+ instantiation.<P>
<LI>Thanks to Thilo Kielmann &lt<A
HREF="mailto:kielmann@informatik.uni-siegen.de">kielmann@informatik.uni-siegen.de</A>&gt;
- for reporting the problem with ACE_Singleton on g++, and
- for helping to find and implement these solutions.<P>
+ for reporting the problem with ACE_Singleton on g++, and for
+ helping to find and implement these solutions.<P>
<LI>On VxWorks only, g++ (thru version 2.7.2, at least, distributed
with Tornado 1.0.1/VxWorks 5.3.1), -fno-implicit-templates is
@@ -712,12 +737,12 @@ If you use the GNU GCC g++ compiler please note the following:
<li><strong><blink><font color="#ff0000">WARNING:</font></blink></strong>
The default behavior of the ACE Makefiles is to add
- <code>-fno-exceptions</code> to egcs (and g++ starting with version
- 2.8.0) invocations. This disables exception handling support. On
- Solaris/sparc and Linux/alpha, it results in a 25 percent reduction
- in the size of libACE.so. To enable exception handling, add
- <code>exceptions=1</code> to your <code>make</code> command line
- invocation, or to your
+ <code>-fno-exceptions</code> to egcs (and g++ starting with
+ version 2.8.0) invocations. This disables exception handling
+ support. On Solaris/sparc and Linux/alpha, it results in a 25
+ percent reduction in the size of libACE.so. To enable exception
+ handling, add <code>exceptions=1</code> to your
+ <code>make</code> command line invocation, or to your
<code>$ACE_ROOT/include/makeinclude/platform_macros.GNU</code>.<p>
<li>egcs may have trouble linking some executables, such as the ACE
@@ -797,24 +822,25 @@ need to do:<P>
<LI>Edit the $ACE_ROOT/ace/OS.h file to update things like default
hostname and port numbers you'd like the programs in the
$ACE_ROOT/{apps,tests} directories to use by default. Note,
- however that you can normally skip this step because the defaults
- are typically fine for most systems. <P>
+ however that you can normally skip this step because the
+ defaults are typically fine for most systems. <P>
<LI>Create a <code>$ACE_ROOT/ace/config.h</code> file that includes
the appropriate platform/compiler-specific header configurations
(such as <code>config-sunos5-sunc++-4.x.h</code>). This file
- contains the #defines that
- are used throughout ACE to indicate which features your system
- supports (see the <code>$ACE_ROOT/ace/OS.h</code> file for many
- examples of how the ACE build configuration is affected by these
- macro settings). Make sure you settings are placed
+ contains the #defines that are used throughout ACE to indicate
+ which features your system supports (see the
+ <code>$ACE_ROOT/ace/OS.h</code> file for many examples of how
+ the ACE build configuration is affected by these macro
+ settings). Make sure you settings are placed
<strong>before</strong> the inclusion of the platform-specific
header file.<P>
- 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 me email if you get it working so I
- can add it to the master ACE release.<P>
+ 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 me
+ email if you get it working so I can add it to the master ACE
+ release.<P>
<LI>Set the $ACE_ROOT/include/makeinclude/platform_macros.GNU file
to point to the appropriate platform/compiler-specific Makefile
@@ -824,8 +850,8 @@ need to do:<P>
<LI>Note that since ACE builds shared libraries, you'll need to set
LD_LIBRARY_PATH to whereever you put the binary version of the
- ACE library. For example, you probably want to do something like
- the following<P>
+ ACE library. For example, you probably want to do something
+ like the following<P>
<pre><code>
% setenv LD_LIBRARY_PATH $ACE_ROOT/ace:$LD_LIBRARY_PATH
@@ -863,12 +889,11 @@ need to do:<P>
<H4><A NAME="win32">Building and Installing ACE on Win32</A></H4>
First, if you are upgrading from an older release, clean up everything
-and rebuild from scratch to ensure that everything is rebuilt correctly.
-You might have to manually go through the ACE directories and delete
-all *.obj, *.dll, *.lib, *.ilk, *.pdb, *.idb, *.ncb, *.opt, and *.exp
-files in order to start over from scratch (the Clean command in MSVC
-may not do this).
-<P>
+and rebuild from scratch to ensure that everything is rebuilt
+correctly. You might have to manually go through the ACE directories
+and delete all *.obj, *.dll, *.lib, *.ilk, *.pdb, *.idb, *.ncb, *.opt,
+and *.exp files in order to start over from scratch (the Clean command
+in MSVC may not do this). <P>
ACE contains project files for Microsoft Visual C++ 4.x (*.mdp) and
5.0 with Service Pack 3, and 6.0 (*.dsw), Borland C++ 5.x (ace.ide),
@@ -883,24 +908,25 @@ contact if you have any problems. Likewise, the Borland C++ Builder
Hagins</A>, so contact him for any questions.<P>
<EM>Note concerning MSVC 5.0 and Service Pack 3:</EM> There has been
-confusion regarding MSVC 5 and its Service Pack 3. Some ACE
-users have, in the past, had problems with SP3 that were not present in SP2.
-Thanks to the diligent efforts of
-<A HREF="mailto:fultonb@pcnet1.ascs.aro.allied.com">Bill Fulton</A>,
-the mystery appears to be solved.
-The key? (Oh, this is a good one...) It would appear that there are
-actually multiple versions of SP3 in existence. The
-earlier ones have the bug, while later ones have it fixed. The service
-pack downloadable from Microsoft's web site as of June 16, 1998 works fine.
-The CD containing SP3, if it has part number X03-50158 on the disc (the part
-number on the jacket is probably different), also works fine.
-<P>
+confusion regarding MSVC 5 and its Service Pack 3. Some ACE users
+have, in the past, had problems with SP3 that were not present in SP2.
+Thanks to the diligent efforts of <A
+HREF="mailto:fultonb@pcnet1.ascs.aro.allied.com">Bill Fulton</A>, the
+mystery appears to be solved. The key? (Oh, this is a good one...)
+It would appear that there are actually multiple versions of SP3 in
+existence. The earlier ones have the bug, while later ones have it
+fixed. The service pack downloadable from Microsoft's web site as of
+June 16, 1998 works fine. The CD containing SP3, if it has part
+number X03-50158 on the disc (the part number on the jacket is
+probably different), also works fine. <P>
+
So, if you are experiencing problems with SP3, get a newer one - it'll
probably work. Sheesh...
<P>
-Note, however, that regardless of the version of SP3,
-there are some STL bugs in SP3 which you should get corrected. Please see
-<A HREF="http://www.dinkumware.com/vc_fixes.html">http://www.dinkumware.com/vc_fixes.html</A>
+
+Note, however, that regardless of the version of SP3, there are some
+STL bugs in SP3 which you should get corrected. Please see <A
+HREF="http://www.dinkumware.com/vc_fixes.html">http://www.dinkumware.com/vc_fixes.html</A>
for details. Thank you to <A HREF="mailto:ben@jetpen.com">Ben Eng</A>
for the pointer to the STL fixes.
diff --git a/ChangeLog-99b b/ChangeLog-99b
index a61e25489c2..598a524e89f 100644
--- a/ChangeLog-99b
+++ b/ChangeLog-99b
@@ -1,4 +1,8 @@
-Mon Jul 5 11:59:49 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
+Mon Jul 5 16:39:50 1999 Douglas C. Schmidt <schmidt@mambo.cs.wustl.edu>
+
+ * ACE-INSTALL.html: Updated the discussion to point out
+ our support for KAI C++ 3.3, Borland C++ Builder 4.0, and the
+ IBM VisualAge C++ compiler.
* ace/Future.h: Moved the static methods until the bottom
of the ACE_Future_Rep class to workaround a bug with Borland's
diff --git a/THANKS b/THANKS
index 1cbc9ceade6..ea55099c352 100644
--- a/THANKS
+++ b/THANKS
@@ -670,6 +670,7 @@ Alvarez <alvarez@nagra-kudelski.ch>
Peter Brandstrom <peter.brandstrom@ericsson.com>
Eugene Surovegin <ebs@glasnet.ru>
Thaddeus Olczyk <olczyk@interaccess.com>
+John Chludzinski <john_chludzinski@jsims.com>
I would particularly like to thank Paul Stephenson, who worked with me
at Ericsson and is now at ObjectSpace. Paul devised the recursive