From: wolf Date: Tue, 15 Oct 2002 21:53:25 +0000 (+0000) Subject: More on gcc2.96. X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1f6a8fcf4f418a3e433897a6a19f8a8e899e2c96;p=dealii-svn.git More on gcc2.96. git-svn-id: https://svn.dealii.org/trunk@6657 0785d39b-7218-0410-832d-ea1e28bc413d --- diff --git a/deal.II/doc/faq.html b/deal.II/doc/faq.html index 3b9587b324..3fc76e6b80 100644 --- a/deal.II/doc/faq.html +++ b/deal.II/doc/faq.html @@ -70,9 +70,13 @@ RedHat from a snapshot somewhere between 2.95 and 3.0; it contained a large number of compiler bugs, which have partly been fixed, but too many remain as that we were able to make the library work with this compiler until we could - get hold of such a system (the main development was done in Germany, which is - SuSE country, not Red Hat). Also note that version 2.96 is not an officially - released version of gcc. Simply use either gcc 2.95 or 3.X. + get hold of such a system (initially, the main development of + deal.II was done in Germany, which is SuSE country, not + Red Hat). Also note that version 2.96 is not an officially + released version of gcc. Simply use either gcc 2.95 or 3.X. Also note that we + have reports that gcc 2.96 may miscompile parts of the library, see + this + message.

@@ -82,6 +86,46 @@ compiler, so the problem does not exist there any more.

+

+ However, there are more problems lurking around the corner: even though we + have included patches so that the library can be compiled, presently not all + of the examples can. There is at least one problem in the compiler which we + could not work around (I reported this to the gcc bug tracking system as + c++/616 in October 2000, and it was fixed a few weeks later, but apparently + did not make it to Red Hat's version). The problem manifests itself in + situations like this: + +

+      template  struct Function {};
+      template  struct RHS : Function { RHS() {}; };
+
+      template  void f () {
+        const RHS rhs;
+      };
+      template void f<1> ();
+    
+ + Here, the compiler reports + +
+      x.cc: In function `void f () [with int dim = 1]':
+      x.cc:7:   instantiated from here
+      x.cc:5: uninitialized const `rhs'
+    
+
+ which is clearly bogus since rhs uses the default constructor of + the class. Unfortunately, there is no way of working around the bug short of + removing the constness of the variable. We did not want to do this, since + this changes the semantics of the programs and is promoting bad style which + we do not want to do in example programs. Furthermore, since gcc 2.96 is + being phased out at the time of this writing, there is no point in doing this + any more. Therefore, we advise you to remove the constness of these variables + if you are forced to use this compiler and want to use the example programs, + and want to test the example programs or use them as the basis for your own + project. A better way is to up- or downgrade your compiler, if this is + possible for your machine. +

+

Can I use deal.II on a