On 22 May 2015, at 18:34, Ian Hinder <ian.hinder@aei.mpg.de> wrote:


On 22 May 2015, at 16:10, Roberto De Pietri <roberto.depietri@unipr.it> wrote:

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);

There is a stackoverflow post (http://stackoverflow.com/questions/19043109/gcc-4-8-1-combining-c-code-with-c11-code ) which describes a similar problem, which I haven't studied in depth, but they seem to suggest that it's a bug in gcc, and that setting --std=gnu++11 instead of --std=c++11 in CXXFLAGS will work around the problem.  We currently have

CXXFLAGS = -g -std=c++14

so I'm guessing that changing this to

CXXFLAGS = -g -std=gnu++14

might have the same effect.

What I don't understand is why we didn't pick this up in testing.  I successfully compiled the whole ET using exactly that set of MacPorts packages and the optionlist before the release, and the gcc49 macports package hasn't been updated since 4 weeks ago.

I should add that I tested it on 10.9.5, since I haven't been brave enough to update to 10.10 yet.  I think Erik was testing on 10.10, but he can confirm that.

-- 
Ian Hinder