diff options
-rw-r--r-- | ACE-INSTALL.html | 606 | ||||
-rw-r--r-- | ChangeLog-99b | 6 | ||||
-rw-r--r-- | THANKS | 1 |
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 <shl@janis.gtri.gatech.edu> 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 <<A HREF="mailto:jordan@hursley.ibm.com">jordan@hursley.ibm.com</A>> - 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 <<A + ACE has been ported to SCO UNIX using the GNU g++ 2.7.2 + compiler. Arturo Montes <<A HREF="mailto:mitosys@colomsat.net.co">mitosys@colomsat.net.co</A>> - 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 <<A + GNU gcc 2.7.2.1 compiles without problems. All tests run + (besides minor problems). Thanks to Thilo Kielmann <<A HREF="mailto:kielmann@informatik.uni-siegen.de">kielmann@informatik.uni-siegen.de</A>> and David Trumble <<A HREF="mailto:trumble@cvg.enet.dec.com">trumble@cvg.enet.dec.com</A>> @@ -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 <<A HREF="mailto:shuston@riverace.com">shuston@riverace.com</A>> + Steve Huston <<A + HREF="mailto:shuston@riverace.com">shuston@riverace.com</A>> has ported ACE to work with UnixWare 2.01 and g++.<P> - Ganesh Pai <<A HREF="mailto:gpai@voicetek.com">gpai@voicetek.com</A>> + Ganesh Pai <<A + HREF="mailto:gpai@voicetek.com">gpai@voicetek.com</A>> subsequently did the port for version 2.1.2, also with g++.<P> <LI><B>Chorus</B> <P> - Wei Chiang <<A HREF="mailto:chiang@tele.nokia.fi">chiang@tele.nokia.fi</A>> + Wei Chiang <<A + HREF="mailto:chiang@tele.nokia.fi">chiang@tele.nokia.fi</A>> 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 <<A HREF="mailto:davem@lynx.com">davem@lynx.com</A>> - 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 <<A + HREF="mailto:davem@lynx.com">davem@lynx.com</A>> 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> <<A + <A HREF="http://www.cs.wustl.edu/~levine/">David Levine</A> + <<A HREF="mailto:levine@cs.wustl.edu">levine@cs.wustl.edu</A>> 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 <<A HREF="mailto:gehr@sweng.stortek.com">gehr@sweng.stortek.com</A>>. - 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 <<A HREF="mailto:kielmann@informatik.uni-siegen.de">kielmann@informatik.uni-siegen.de</A>> - 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 @@ -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 |