[Users] failed build on local mac osx yosemite [POSSIBLE SOLUTION TO THE PROBLEM]
Roberto De Pietri
roberto.depietri at unipr.it
Fri May 22 09:10:36 CDT 2015
Hi Ian:
Thanks for the answer. I followed exactly your procedure and I was very surprised of having
a failing compilation. Than I starting tracing back the problem.
* All the thorns except one were compiling correctly.
* The failing thorn was CarpetIOHDF5 and of the 5 source files present only 3 failed
* The error was very strange because the only real problem was related to
a system include “/opt/local/lib/gcc49/gcc/x86_64-apple-darwin14/4.9.2/include/mmintrin.h”
and was related to conversion using AVX intel intrinsic. The error were of the type:
error: can’t convert between vector values of different size
return (__m64) __builtin_ia32_vec_init_v2si (__i, 0);
I was think about bad iteration between include files. Something like macro expansion
of system file happening after incluse of application macro.
* I decide to give a try to just change the system include on the top of the failing source
files to looks like the compiling one. Basicaly I just added
#include <cstdlib>
#include <cstring>
#include <list>
#include <sstream>
#include <string>
#include <vector>
#include <map>
#include <algorithm>
on the top of the 3 failing files
* with these limited changes to just 3 files I obtained a compiling executable that
passed the whole testsuite.
==============================================================
Here is the results about the active hdf5 library in mac ports on my machine.
tycho:python_util depietri$ port installed "*hdf5*"
The following ports are currently installed:
hdf5 @1.8.15_0+cxx
hdf5 @1.8.15_0+cxx+fortran+gfortran (active)
On the sequence of installing ports the only difference was in the order, that is
I installed subversion and python before the sequence in osx-macports.cfg
With my change I got
/opt/local/include/gcc49/c++/algorithm
include before
/Users/depietri/EinsteinToolkit/ET_dev/Cactus/arrangements/Carpet/CarpetIOHDF5/src/CarpetIOHDF5.hh
that the other way around.
This is my understanding. The thing that happens in the two files that successfully compiled.
Here is failed include sequence:
COMPILING arrangements/Carpet/CarpetIOHDF5/src/Output.cc
In file included from /opt/local/lib/gcc49/gcc/x86_64-apple-darwin14/4.9.2/include/x86intrin.h:29:0,
from /opt/local/include/gcc49/c++/x86_64-apple-darwin14/bits/opt_random.h:33,
from /opt/local/include/gcc49/c++/random:50,
from /opt/local/include/gcc49/c++/bits/stl_algo.h:66,
from /opt/local/include/gcc49/c++/algorithm:62,
from /Users/depietri/EinsteinToolkit/ET_dev/Cactus/arrangements/Carpet/CarpetLib/src/defs.hh:6,
from /Users/depietri/EinsteinToolkit/ET_dev/Cactus/arrangements/Carpet/CarpetLib/src/bbox.hh:10,
from /Users/depietri/EinsteinToolkit/ET_dev/Cactus/configs/sim/bindings/include/bbox.hh:4,
from /Users/depietri/EinsteinToolkit/ET_dev/Cactus/arrangements/Carpet/Carpet/src/functions.hh:17,
from /Users/depietri/EinsteinToolkit/ET_dev/Cactus/arrangements/Carpet/Carpet/src/carpet_public.hh:8,
from /Users/depietri/EinsteinToolkit/ET_dev/Cactus/configs/sim/bindings/include/carpet.hh:4,
from /Users/depietri/EinsteinToolkit/ET_dev/Cactus/arrangements/Carpet/CarpetIOHDF5/src/CarpetIOHDF5.hh:11,
from /Users/depietri/EinsteinToolkit/ET_dev/Cactus/arrangements/Carpet/CarpetIOHDF5/src/Output.cc:13:
Roberto
> On 22 May 2015, at 15:35, Ian Hinder <ian.hinder at aei.mpg.de> wrote:
>
>
> On 22 May 2015, at 12:44, Roberto De Pietri <roberto.depietri at unipr.it> wrote:
>
>> Dear Corner and Erik:
>>
>> After a while a decided to have the EinsteinToolkit compiled on my personal laptop. I did all from scratch.
>>
>> * Latest versione of OSX (10.10.3)
>> * Latest (clean) version of macports (MacPorts 2.3.3)
>> sudo port install subversion
>> sudo port install python27
>> sudo port select --set python python27
>> sudo port install py-numpy py-scipy
>> sudo port install py-matplotlib
>> sudo port install py-ipython
>> sudo port select --set ipython ipython27
>> sudo port install pkgconfig gcc49 fftw-3 gsl jpeg zlib hdf5 +fortran +gfortran openmpi openssl
>> sudo port install py-h5py
>> sudo port install gcc5
>> * Latest version of the EinsteinToolkit (Hilbert and dev)
>> * I used the provided option list simfactory/mdb/optionlists/osx-macports.cfg
>
>
> Hi Roberto,
>
> What we have tested carefully is to use exactly the list of ports in the osx-macports.cfg config file. I tested this by moving my usual /opt/local out of the way, and installing MacPorts from scratch using exactly the "port install" command listed in the optionlist.
>
> Unfortunately, having multiple versions of things like compilers and MPI in the places that Cactus searches for them (e.g. /opt/local) generically causes problems when compiling software from source. I notice that you have used exactly this command line (sudo port install pkgconfig gcc49 fftw-3 gsl jpeg zlib hdf5 +fortran +gfortran openmpi openssl), but you also have other ports installed, and it's possible that some of these might conflict during the autodetection stage, causing some undesirable mixtures. My main suspicion, looking at your compilation errors, is something to do with vectorisation and HDF5. You have installed py-h5py, which may well have has pulled in a different HDF5 library. You may now have more than one HDF5 library installed, and it's possible that this is causing confusion. What is the output of
>
> port installed "*hdf5*"
>
> Am I correct in understanding that by adding those additional include files, you were able to compile CarpetIOHDF5? Maybe it's pulling in an hdf5.h from a different version of hdf5 than is expected?
>
>
>
------------------------------------------------------------------
Roberto De Pietri e-mail:roberto.depietri at fis.unipr.it
Dipartimento di Fisica http://www.fis.unipr.it/~roberto.depietri
Universita' di Parma tel: +39 (0521) 905280
Via G.P.Usberti 7/A fax: +39 (0521) 905223
I-43100 PARMA --- ITALY
More information about the Users
mailing list