← Back to team overview

dolfin team mailing list archive

Re: [Dorsal] dorsal on leopard

 

Harish Narayanan wrote:
On 8/3/10 10:22 PM, Garth N. Wells wrote:
On Tue, 2010-08-03 at 12:26 -0400, Paul Barbone wrote:
Hello all,

I'm excited to give this a try. In the meantime, I've been (trying) to install dorsal on leopard (10.5.8). The snowleopard.package seems to almost work with the following modifications:

default PETSC_ARCH=darwin9.2.0-cxx-opt
default GMP_ARCH=none-apple-darwin


I also had to comment out the scotch package (per Garth Wells' advice).

I'm now stuck at compiling DofMapBuilder.cpp, which ends with the message (among many):

/usr/include/c++/4.0.0/tr1/hashtable:1363: warning: control reaches end of non-void function
scons: *** [dolfin/fem/DofMapBuilder.os] Error 1
scons: building terminated because of errors.
dolfin/fem/DofMapBuilder.os failed: Error 1

We use a new feature of C++ which is broken in older compilers (e.g. gcc
4.0.0).

Harish: macports has loads of gcc (and openmpi) versions. Can Dorsal
tell user to get gcc from macports and then use that?

Yes, and it has probably already got it. I have something called
gcc-mp-4.4 (-mp being macports) on my machine which I didn't explicitly
install. Setting

export CC=gcc-mp-4.4
export CXX=g++-mp-4.4

in leopard.platform ought to work.

Harish

You're right - those compilers were already there in /opt/local/bin. I gave that a try, but it didn't fix the problem.


I realized that earlier I showed the last warning message rather than the error message. The error message is:


/usr/include/c++/4.0.0/tr1/hashtable:1135: error: passing 'const std::tr1::hashtable<dolfin::uint, dolfin::uint, std::allocator<dolfin::uint>, Internal::identity<dolfin::uint>, std::equal_to<dolfin::uint>, std::tr1::hash<unsigned int>, Internal::mod_range_hashing, Internal::default_ranged_hash, Internal::prime_rehash_policy, false, false, true>' as 'this' argument of 'typename std::tr1::hashtable<Key, Value, Allocator, ExtractKey, Equal, H1, H2, H, RehashPolicy, cache_hash_code, mutable_iterators, unique_keys>::node* std::tr1::hashtable<Key, Value, Allocator, ExtractKey, Equal, H1, H2, H, RehashPolicy, cache_hash_code, mutable_iterators, unique_keys>::find_node(Internal::hash_node<Value, cache_hash_code>*, const Key&, typename std::tr1::hashtable<Key, Value, Allocator, ExtractKey, Equal, H1, H2, H, RehashPolicy, cache_hash_code, mutable_iterators, unique_keys>::hash_code_t) [with Key = dolfin::uint, Value = dolfin::uint, Allocator = std::allocator<dolfin::uint>, ExtractKey = Internal::identity<dolfin::uint>, Equal = std::equal_to<dolfin::uint>, H1 = std::tr1::hash<unsigned int>, H2 = Internal::mod_range_hashing, H = Internal::default_ranged_hash, RehashPolicy = Internal::prime_rehash_policy, bool cache_hash_code = false, bool mutable_iterators = false, bool unique_keys = true]' discards qualifiers


After another warning, it finally ends with:
scons: *** [dolfin/fem/DofMapBuilder.os] Error 1
scons: building terminated because of errors.
dolfin/fem/DofMapBuilder.os failed: Error 1
Failure with exit status: 2
Exit message: There was a problem building dolfin-0.9.8.

-Paul




Follow ups

References