From 38be66a7e836a92e2c602121d06cc653afe4002f Mon Sep 17 00:00:00 2001 From: wolf Date: Wed, 18 Oct 2000 12:23:09 +0000 Subject: [PATCH] Hopefully final comment on OSF! git-svn-id: https://svn.dealii.org/trunk@3448 0785d39b-7218-0410-832d-ea1e28bc413d --- deal.II/doc/platforms/dec-osf.html | 42 ++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/deal.II/doc/platforms/dec-osf.html b/deal.II/doc/platforms/dec-osf.html index 2ae1f647df..b91b37e633 100644 --- a/deal.II/doc/platforms/dec-osf.html +++ b/deal.II/doc/platforms/dec-osf.html @@ -98,5 +98,47 @@

+

+ As a last note: we have experienced link problems when using the + ``squangle'' scheme of the compiler, with error messages like +

+      /usr/bin/ld:
+      Unresolved:
+      type_info::operator==(type_info const &) const
+      collect2: ld returned 1 exit status
+    
+ These errors are due to the fact that the function + type_info::operator==(const typeinfo &) + can be squangled into the two strings + __eq__C9type_infoRC9type_info and + __eq__C9type_infoRCB0 alike, with the + same meaning. The latter uses a ``back-reference'' to denote the + parameter with the same type as the class (this is the ``B0'' + part, identifying the parameter type with the class type), while + the first version explicitely lists the parameter type. Of course, + the compiler should be consistent in what version it generates, + but it is not, unfortunately. +

+ +

+ It is possible to work around this bug in the compiler by the + following small hack, which you have to compile and link in with + all programs that use the + type_info::operator==(const typeinfo &) + function: +

+      extern "C" {
+        int __eq__C9type_infoRC9type_info (void *x1, void *x2);
+        int __eq__C9type_infoRCB0 (void *x1, void *x2) {
+          return __eq__C9type_infoRC9type_info(x1,x2);
+        };
+      };
+    
+ Note that the ``step-7'' example program uses this operator, and + therefore needs to be linked with this code + snippet. Alternatively, you can insert these lines into one of your + source files, if you experience the problems described above. +

+ -- 2.39.5