summaryrefslogtreecommitdiff
path: root/INSTALL
diff options
context:
space:
mode:
authorlevine <levine@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1997-03-31 15:36:37 +0000
committerlevine <levine@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1997-03-31 15:36:37 +0000
commite5f277a565694903c001ddb170b09e61b9d7736b (patch)
tree1726acca5dc9a7d1e35b3a0d1ad698602fcbd09e /INSTALL
parent50b2693418e919e7607fbb243f0540dd2d3f8318 (diff)
downloadATCD-e5f277a565694903c001ddb170b09e61b9d7736b.tar.gz
added recommendation to use g++ -fno-implicit-templates
Diffstat (limited to 'INSTALL')
-rw-r--r--INSTALL16
1 files changed, 16 insertions, 0 deletions
diff --git a/INSTALL b/INSTALL
index bd144c1e96c..5b3d132d595 100644
--- a/INSTALL
+++ b/INSTALL
@@ -141,6 +141,22 @@ If you use the GNU GCC C++ compiler please note the following:
that initializes static objects. Please see GCC's
documentation for using "collect2."
+ . 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
+ one singleton instance, there could be one instance per
+ .o file that "sees" the template. Therefore, we strongly
+ encourage you to add the -fno-implicit-templates option
+ to CXXFLAGS in include/makeinclude/platform_macros.GNU.
+ The disadvantage of this approach is that you must then
+ 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.)
+ Alternatively, you could apply the Cygnus template
+ repository patches and use the -repo options. Please see
+ the g++ FAQ and gcc manual for more information.
+
--------------------------------------------------
INSTALLATION PROCESS FOR UNIX