Hi Byungsuk, > On 8 Oct 2018, at 07:26, Byungsuk Lee <cbl6...@gmail.com> wrote: > > Hello Oliver, > > Thank you for your reply. > > 1) I don't think there is any Intel-related library in my PATH. Could any of > them below be an Intel library? Below are some of the lines from > CMakeCache.txt after cmake command using Apple Clang v10 and GNU gfortran > v8.2.0: > [snip] > //Details about finding OpenMP > FIND_PACKAGE_MESSAGE_DETAILS_OpenMP:INTERNAL=[TRUE][TRUE][TRUE][c ][v3.1()] > //Details about finding OpenMP_C > FIND_PACKAGE_MESSAGE_DETAILS_OpenMP_C:INTERNAL=[-Xclang > -fopenmp][/usr/local/lib/libomp.dylib][v3.1()] > //Details about finding OpenMP_CXX > FIND_PACKAGE_MESSAGE_DETAILS_OpenMP_CXX:INTERNAL=[-Xclang > -fopenmp][/usr/local/lib/libomp.dylib][v3.1()] > //Details about finding OpenMP_Fortran > FIND_PACKAGE_MESSAGE_DETAILS_OpenMP_Fortran:INTERNAL=[-fopenmp][/usr/local/Cellar/gcc/8.2.0/lib/gcc/8/libgomp.dylib][v4.5()] > [snip]
Doesn't look like any Intel related libraries are present. I guess /usr/local/lib/libomp.dylib comes from brew? You could try to do a compilation without the Fortran, NetCDF and OpenMP features. I don't think you need any of the Fortran modules for your calculation. You can disable OpenMP with 'cmake -DNO_OPENMP=1 ..'. Just to see if that fixes the compilation errors. > 2) After installing ARTS with Homebrew llvm clang/clang++: > export CC=/usr/local/opt/llvm/bin/clang > export CXX=/usr/local/opt/llvm/bin/clang++ > export FC=/usr/local/opt/gcc/bin/gfortran > cmake -DENABLE_C_API=1 > -DARTS_XML_DATA_PATH=/Users/BLee/Desktop/ARTS/arts-xml-data-dev > -DENABLE_FORTRAN=1 -DENABLE_NETCDF=1 .. > make -j4 > > I get the following from typing "otool -L src/arts": > src/arts: > /usr/lib/libz.1.dylib (compatibility version 1.0.0, current version > 1.2.11) > /usr/local/opt/netcdf/lib/libnetcdf.13.dylib (compatibility version > 13.0.0, current version 13.0.0) > /System/Library/Frameworks/Accelerate.framework/Versions/A/Accelerate > (compatibility version 1.0.0, current version 4.0.0) > /usr/local/opt/gcc/lib/gcc/8/libgfortran.5.dylib (compatibility version > 6.0.0, current version 6.0.0) > /usr/local/lib/gcc/8/libgcc_s.1.dylib (compatibility version 1.0.0, > current version 1.0.0) > /usr/local/opt/gcc/lib/gcc/8/libquadmath.0.dylib (compatibility version > 1.0.0, current version 1.0.0) > /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current > version 1252.50.4) > /usr/local/opt/libomp/lib/libomp.dylib (compatibility version 5.0.0, > current version 5.0.0) > /usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version > 400.9.0) > > I am guessing that the Accelerate framework is properly included? Yes, that looks correct. Cheers, Oliver > Thank you, > > Byungsuk Lee > > > > On Thu, Oct 4, 2018 at 5:49 PM Oliver Lemke <oliver.le...@uni-hamburg.de> > wrote: > Hi Byungsuk, > > > On 2 Oct 2018, at 11:39, Byungsuk Lee <cbl6...@gmail.com> wrote: > > > > Dear Jonas and Oliver, > > > > Thank you for your replies. I wanted to give you a sort of status report > > regarding the use of ARTS on my Mac. > > > > 1) I checked ARTS/build/CMakeCache.txt and confirmed that no conda package > > was used, other than CONDA_PROG:FILEPATH=... which I think is irrelevant. > > > > 2) I tried compiling with gcc/g++ instead, both from Homebrew and from > > manually installing tar.gz files from the gnu website for a few different > > versions, but the same irregular invalid t_field errors in OEM happened. > > Plus, at the cmake stage, they constantly produced a failure message for > > "Wno-return-type-c-linkage" as follows, about which I am curious why. This > > doesn't happen with clang/clang++. > > > > ... > > -- Performing Test CCFLAG_Wno-sign-conversion > > -- Performing Test CCFLAG_Wno-sign-conversion - Success > > -- Performing Test CXXFLAG_Wno-sign-conversion > > -- Performing Test CXXFLAG_Wno-sign-conversion - Success > > -- Performing Test CCFLAG_Wno-unknown-pragmas > > -- Performing Test CCFLAG_Wno-unknown-pragmas - Success > > -- Performing Test CXXFLAG_Wno-unknown-pragmas > > -- Performing Test CXXFLAG_Wno-unknown-pragmas - Success > > -- Performing Test CCFLAG_Wno-return-type-c-linkage > > -- Performing Test CCFLAG_Wno-return-type-c-linkage - Failed > > -- Performing Test CXXFLAG_Wno-return-type-c-linkage > > -- Performing Test CXXFLAG_Wno-return-type-c-linkage - Failed > > -- Performing Test CCFLAG_Wno-strict-overflow > > -- Performing Test CCFLAG_Wno-strict-overflow - Success > > -- Performing Test CXXFLAG_Wno-strict-overflow > > -- Performing Test CXXFLAG_Wno-strict-overflow - Success > > ... > > Some compilers don't support the flag no-return-type-c-linkage. That is > totally fine and the reason that we test its existence with cmake before > enabling it. > > > 3) Instead of the clang/clang++ from Homebrew llvm with which I initially > > installed ARTS, I thought I could instead try using Mac's command line > > tools clang/clang++ (AppleClang v10), but they failed at the make stage > > with the following error which I am not sure how to tackle. > > > > ... > > [ 43%] Linking CXX executable make_auto_workspace_h > > Undefined symbols for architecture x86_64: > > "___kmpc_critical", referenced from: > > ArtsOut& operator<<<std::__1::basic_string<char, > > std::__1::char_traits<char>, std::__1::allocator<char> > >(ArtsOut&, > > std::__1::basic_string<char, std::__1::char_traits<char>, > > std::__1::allocator<char> > const&) in arts.cc.o > > ArtsOut& operator<<<char [35]>(ArtsOut&, char const (&) [35]) in > > file.cc.o > > ArtsOut& operator<<<char [75]>(ArtsOut&, char const (&) [75]) in > > file.cc.o > > ArtsOut& operator<<<char [2]>(ArtsOut&, char const (&) [2]) in > > file.cc.o > > ArtsOut& operator<<<my_basic_string<char> >(ArtsOut&, > > my_basic_string<char> const&) in file.cc.o > > ArtsOut& operator<<<char [3]>(ArtsOut&, char const (&) [3]) in > > file.cc.o > > ArtsOut& operator<<<long>(ArtsOut&, long const&) in file.cc.o > > ... > > "___kmpc_end_critical", referenced from: > > ArtsOut& operator<<<std::__1::basic_string<char, > > std::__1::char_traits<char>, std::__1::allocator<char> > >(ArtsOut&, > > std::__1::basic_string<char, std::__1::char_traits<char>, > > std::__1::allocator<char> > const&) in arts.cc.o > > ArtsOut& operator<<<char [35]>(ArtsOut&, char const (&) [35]) in > > file.cc.o > > ArtsOut& operator<<<char [75]>(ArtsOut&, char const (&) [75]) in > > file.cc.o > > ArtsOut& operator<<<char [2]>(ArtsOut&, char const (&) [2]) in > > file.cc.o > > ArtsOut& operator<<<my_basic_string<char> >(ArtsOut&, > > my_basic_string<char> const&) in file.cc.o > > ArtsOut& operator<<<char [3]>(ArtsOut&, char const (&) [3]) in > > file.cc.o > > ArtsOut& operator<<<long>(ArtsOut&, long const&) in file.cc.o > > ... > > "___kmpc_global_thread_num", referenced from: > > ArtsOut& operator<<<std::__1::basic_string<char, > > std::__1::char_traits<char>, std::__1::allocator<char> > >(ArtsOut&, > > std::__1::basic_string<char, std::__1::char_traits<char>, > > std::__1::allocator<char> > const&) in arts.cc.o > > ArtsOut& operator<<<char [35]>(ArtsOut&, char const (&) [35]) in > > file.cc.o > > ArtsOut& operator<<<char [75]>(ArtsOut&, char const (&) [75]) in > > file.cc.o > > ArtsOut& operator<<<char [2]>(ArtsOut&, char const (&) [2]) in > > file.cc.o > > ArtsOut& operator<<<my_basic_string<char> >(ArtsOut&, > > my_basic_string<char> const&) in file.cc.o > > ArtsOut& operator<<<char [3]>(ArtsOut&, char const (&) [3]) in > > file.cc.o > > ArtsOut& operator<<<long>(ArtsOut&, long const&) in file.cc.o > > ... > > ld: symbol(s) not found for architecture x86_64 > > clang: error: linker command failed with exit code 1 (use -v to see > > invocation) > > make[2]: *** [src/make_auto_workspace_h] Error 1 > > make[1]: *** [src/CMakeFiles/make_auto_workspace_h.dir/all] Error 2 > > [ 43%] Building CXX object > > src/CMakeFiles/test_gridded_fields.dir/test_gridded_fields.cc.o > > [ 43%] Building CXX object > > src/CMakeFiles/test_legendre.dir/test_legendre.cc.o > > [ 43%] Linking CXX executable test_legendre > > [ 43%] Built target test_legendre > > [ 43%] Linking CXX executable test_gridded_fields > > [ 43%] Built target test_gridded_fields > > make: *** [all] Error 2 > > ... > > This is interesting. The __kmpc_* Symbols come from the Intel Math Kernel > Library. These errors usually indicate that the Intel Threading library was > enabled, but the Intel OpenMP Library was not linked. Which makes sense > because Apple's Clang does not support OpenMP. But we might be on to > something here. The Intel MKL should involved here at all. Do you have an > Intel compiler set up in your PATH? > > > 4) I tried using Homebrew lapack instead of Mac's default > > Accelerate.framework but the same irregular OEM error happened. > > > > I have tried several things as above hoping to pinpoint where the error > > stems from (compiler, package, or something else?) but am so far > > unsuccessful and encountered additional errors that I hope someone could > > explain. Thank you. > > Are you sure that you're actually compiling against Lapack / Accelerate and > not accidentally always against MKL? What you're seeing in 3) makes me a bit > suspicious. Can you please check with 'otool -L src/arts' which libraries > your ARTS executable is actually linked against? > > cheers, > /oliver > > > > _______________________________________________ arts_users.mi mailing list arts_users.mi@lists.uni-hamburg.de https://mailman.rrz.uni-hamburg.de/mailman/listinfo/arts_users.mi