Hi, We (Cactus developers) recently discovered that our code would not build with HDF5 1.8.15 due to a change to the way the __attribute__ preprocessor macro is handled by the HDF5 header files.
Previously (1.8.14), this attribute was undefined when C++ was used, but this only affected HDF5 source files, because the undefinition was in H5private.h. This was presumably fine, because the HDF5 source code could handle it. In 1.8.15, however, this code has moved into H5api_adpt.h, which is included by *users* of the HDF5 library. This means that __attribute__ is broken in any source file that included it. This attribute is important, because it controls things like vectorisation. The error we get is listed below. The relevant commit seems to be SVN revision 26678 (https://github.com/live-clones/hdf5/commit/b283f087e32fb99023650240ef8290a3f46319c5). I think it is important that this is fixed, possibly in a patch release, since it stops code from compiling. (http://lists.einsteintoolkit.org/pipermail/users/2015-May/004168.html) > 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: > /opt/local/lib/gcc49/gcc/x86_64-apple-darwin14/4.9.2/include/mmintrin.h: In > function '__m64 _mm_cvtsi32_si64(int)': > /opt/local/lib/gcc49/gcc/x86_64-apple-darwin14/4.9.2/include/mmintrin.h:64:54: > error: can't convert between vector values of different size > return (__m64) __builtin_ia32_vec_init_v2si (__i, 0); > ^ -- Ian Hinder http://members.aei.mpg.de/ianhin _______________________________________________ Hdf-forum is for HDF software users discussion. [email protected] http://lists.hdfgroup.org/mailman/listinfo/hdf-forum_lists.hdfgroup.org Twitter: https://twitter.com/hdf5
