summaryrefslogtreecommitdiff
path: root/ACE-INSTALL.html
diff options
context:
space:
mode:
authorlevine <levine@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1997-09-19 17:50:23 +0000
committerlevine <levine@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1997-09-19 17:50:23 +0000
commitdc596435d4c6b5cd27ff741ee4982510e374d8da (patch)
tree8a64bca86193bcfd419e3cb7d18d5be26ce3d008 /ACE-INSTALL.html
parent128d6c8f4e2b87f7c2ddce3e9d730fcccd1e49ce (diff)
downloadATCD-dc596435d4c6b5cd27ff741ee4982510e374d8da.tar.gz
added requirement for explicit main () arguments and int return type on VxWorks
Diffstat (limited to 'ACE-INSTALL.html')
-rw-r--r--ACE-INSTALL.html62
1 files changed, 38 insertions, 24 deletions
diff --git a/ACE-INSTALL.html b/ACE-INSTALL.html
index cfed6ac68c9..5148fb34e50 100644
--- a/ACE-INSTALL.html
+++ b/ACE-INSTALL.html
@@ -190,15 +190,15 @@ 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''. ACE
- renames it to ``ace_main'' on VxWorks. While this may seem
- trivial, it is important with legacy code. ACE itself ran
- into this problem.<P>
+ <LI> 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.<P>
<LI> 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 <A HREF="#spa">below</a>
- for details.
+ for details.<P>
<LI> Unsigned long long support is not available with the g++ that
is distributed with Tornado 1.0.1/VxWorks 5.3.1, or with
@@ -543,7 +543,7 @@ are required with ACE:<P>
</pre>
For completeness, here are the non-default <code>#defines</code> that
-we use for VxWorks 5.3.1/g++ 2.7.2:
+we used for VxWorks 5.3.1/g++ 2.7.2:
<pre>
#define INCLUDE_CPLUS /* include C++ support */
@@ -575,26 +575,40 @@ ACE library to not require <code>INCLUDE_CPLUS_IOSTREAMS</code>,
if necessary.
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 and Threads, 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.<P>
-
-<A NAME="spa">Please</A> note that the <code>main</code> entry point
-is renamed to <code>ace_main</code> on VxWorks, to comply with the
-VxWorks restriction against using <code>main</code>. Also, if you run
-<code>ace_main</code> directly from a shell, you'll probably have to
-restart the shell (using Ctrl-C, if enabled in your configuration) in
-order to be able to unld the module. Alternatively, you can spawn a
-new task to run <code>ace_main</code>, using either VxWorks
-<code>sp</code>, or ACE'S <code>spa</code>. <code>spa</code> can be
-used from the VxWorks shell to pass arguments to
-<code>ace_main</code>. Its usage is
-
-<pre><code> spa main, "arg1" [, ...]
+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.<P>
+
+Please note that the <code>main</code> entry point is renamed to
+<code>ace_main</code> (configurable via ACE_MAIN) on VxWorks with g++,
+to comply with its restriction against using <code>main</code>.
+In addition, ACE_HAS_NONSTATIC_OBJECT_MANAGER is enabled by default
+to cleanly support construction and destruction of static objects.
+This requires that <code>main</code> be declared with its arguments
+even if they're not used, and with <code>int</code> return type:
+
+<pre><code>
+ int
+ main (int, char *[])
+</code></pre>
+
+Alternatively, this feature can be disabled by commenting out the
+#define ACE_HAS_NONSTATIC_OBJECT_MANAGER in your ace/config.h.
+But, that will make repeated testing more difficult on VxWorks.
+You'd either have to call static constructors and destructors
+manually or unload/load the program between runs.<p>
+
+You can spawn a new task to run <code>ace_main</code>, using either
+VxWorks <code>sp</code>, or ACE'S <A NAME="spa"><code>spa</code></A>.
+<code>spa</code> can be used from the VxWorks shell to pass arguments
+to <code>ace_main</code>. Its usage is:
+
+<pre><code>
+ spa ace_main, "arg1" [, ...]
</code></pre>
-All arguments must be quoted, even numbers.
+All arguments must be quoted, even numbers.<p>
<HR>