NJOY21 icon indicating copy to clipboard operation
NJOY21 copied to clipboard

Compilation issues, trying NJOY21

Open jchsublet opened this issue 5 years ago • 4 comments

On MacOs Mojave 10.14.6 and with gcc version 8.3.0 (GCC), after having followed all instruction I do get with make Scanning dependencies of target utility [ 1%] Building CXX object subprojects/utility/CMakeFiles/utility.dir/src/utility/stream/src/getRealWithLBound.cpp.o [ 2%] Building CXX object subprojects/utility/CMakeFiles/utility.dir/src/utility/stream/src/getRealNumber.cpp.o [ 4%] Building CXX object subprojects/utility/CMakeFiles/utility.dir/src/utility/stream/src/readString.cpp.o [ 5%] Building CXX object subprojects/utility/CMakeFiles/utility.dir/src/utility/stream/src/getLine.cpp.o [ 7%] Building CXX object subprojects/utility/CMakeFiles/utility.dir/src/utility/stream/src/getInteger.cpp.o [ 8%] Building CXX object subprojects/utility/CMakeFiles/utility.dir/src/utility/stream/src/getBool.cpp.o [ 10%] Building CXX object subprojects/utility/CMakeFiles/utility.dir/src/utility/stream/src/getTemperature.cpp.o [ 11%] Building CXX object subprojects/utility/CMakeFiles/utility.dir/src/utility/stream/src/getIntInRange.cpp.o [ 12%] Building CXX object subprojects/utility/CMakeFiles/utility.dir/src/utility/stream/src/getEnergy.cpp.o [ 14%] Building CXX object subprojects/utility/CMakeFiles/utility.dir/src/utility/stream/src/getStringArg.cpp.o [ 15%] Building CXX object subprojects/utility/CMakeFiles/utility.dir/src/utility/stream/src/getIntWithLBound.cpp.o [ 17%] Building CXX object subprojects/utility/CMakeFiles/utility.dir/src/utility/string/src/split.cpp.o [ 18%] Building CXX object subprojects/utility/CMakeFiles/utility.dir/src/utility/string/src/toDouble.cpp.o [ 20%] Building CXX object subprojects/utility/CMakeFiles/utility.dir/src/utility/string/src/trim.cpp.o [ 21%] Linking CXX shared library libutility.dylib [ 21%] Built target utility Scanning dependencies of target njoy [ 22%] Building Fortran object subprojects/njoy/CMakeFiles/njoy.dir/src/locale.f90.o [ 24%] Building Fortran object subprojects/njoy/CMakeFiles/njoy.dir/src/mainio.f90.o [ 25%] Building Fortran object subprojects/njoy/CMakeFiles/njoy.dir/src/util.f90.o [ 27%] Building Fortran object subprojects/njoy/CMakeFiles/njoy.dir/src/endf.f90.o [ 28%] Building Fortran object subprojects/njoy/CMakeFiles/njoy.dir/src/mathm.f90.o [ 30%] Building Fortran object subprojects/njoy/CMakeFiles/njoy.dir/src/phys.f90.o [ 31%] Building Fortran object subprojects/njoy/CMakeFiles/njoy.dir/src/acecm.f90.o [ 32%] Building Fortran object subprojects/njoy/CMakeFiles/njoy.dir/src/acedo.f90.o [ 34%] Building Fortran object subprojects/njoy/CMakeFiles/njoy.dir/src/acefc.f90.o [ 35%] Building Fortran object subprojects/njoy/CMakeFiles/njoy.dir/src/acepa.f90.o [ 37%] Building Fortran object subprojects/njoy/CMakeFiles/njoy.dir/src/acepn.f90.o [ 38%] Building Fortran object subprojects/njoy/CMakeFiles/njoy.dir/src/aceth.f90.o [ 40%] Building Fortran object subprojects/njoy/CMakeFiles/njoy.dir/src/acer.f90.o [ 41%] Building Fortran object subprojects/njoy/CMakeFiles/njoy.dir/src/broadr.f90.o [ 42%] Building Fortran object subprojects/njoy/CMakeFiles/njoy.dir/src/ccccr.f90.o [ 44%] Building Fortran object subprojects/njoy/CMakeFiles/njoy.dir/src/covr.f90.o [ 45%] Building Fortran object subprojects/njoy/CMakeFiles/njoy.dir/src/dtfr.f90.o [ 47%] Building Fortran object subprojects/njoy/CMakeFiles/njoy.dir/src/samm.f90.o [ 48%] Building Fortran object subprojects/njoy/CMakeFiles/njoy.dir/src/errorr.f90.o [ 50%] Building Fortran object subprojects/njoy/CMakeFiles/njoy.dir/src/gaminr.f90.o [ 51%] Building Fortran object subprojects/njoy/CMakeFiles/njoy.dir/src/gaspr.f90.o [ 52%] Building Fortran object subprojects/njoy/CMakeFiles/njoy.dir/src/graph.f90.o [ 54%] Building Fortran object subprojects/njoy/CMakeFiles/njoy.dir/src/groupr.f90.o [ 55%] Building Fortran object subprojects/njoy/CMakeFiles/njoy.dir/src/heatr.f90.o [ 57%] Building Fortran object subprojects/njoy/CMakeFiles/njoy.dir/src/leapr.f90.o [ 58%] Building Fortran object subprojects/njoy/CMakeFiles/njoy.dir/src/matxsr.f90.o [ 60%] Building Fortran object subprojects/njoy/CMakeFiles/njoy.dir/src/mixr.f90.o [ 61%] Building Fortran object subprojects/njoy/CMakeFiles/njoy.dir/src/moder.f90.o [ 62%] Building Fortran object subprojects/njoy/CMakeFiles/njoy.dir/src/plotr.f90.o [ 64%] Building Fortran object subprojects/njoy/CMakeFiles/njoy.dir/src/powr.f90.o [ 65%] Building Fortran object subprojects/njoy/CMakeFiles/njoy.dir/src/purr.f90.o [ 67%] Building Fortran object subprojects/njoy/CMakeFiles/njoy.dir/src/reconr.f90.o [ 68%] Building Fortran object subprojects/njoy/CMakeFiles/njoy.dir/src/resxsr.f90.o [ 70%] Building Fortran object subprojects/njoy/CMakeFiles/njoy.dir/src/thermr.f90.o [ 71%] Building Fortran object subprojects/njoy/CMakeFiles/njoy.dir/src/unresr.f90.o [ 72%] Building Fortran object subprojects/njoy/CMakeFiles/njoy.dir/src/vers.f90.o [ 74%] Building Fortran object subprojects/njoy/CMakeFiles/njoy.dir/src/viewr.f90.o [ 75%] Building Fortran object subprojects/njoy/CMakeFiles/njoy.dir/src/wimsr.f90.o [ 77%] Building Fortran object subprojects/njoy/CMakeFiles/njoy.dir/src/main.f90.o [ 78%] Linking Fortran shared library libnjoy.dylib [ 78%] Built target njoy Scanning dependencies of target njoy_c_bindings [ 80%] Building Fortran object subprojects/njoy_c_bindings/CMakeFiles/njoy_c_bindings.dir/src/njoy_c_bindings.f90.o [ 81%] Building Fortran object subprojects/njoy_c_bindings/CMakeFiles/njoy_c_bindings.dir/src/njoy_c_helpers.f90.o [ 82%] Linking Fortran shared library libnjoy_c_bindings.dylib [ 82%] Built target njoy_c_bindings Scanning dependencies of target njoy21 [ 84%] Building CXX object CMakeFiles/njoy21.dir/src/main.cpp.o In file included from /opt/code/NJOY/NJOY21/src/main.cpp:1: /opt/code/NJOY/NJOY21/src/njoy21.hpp:22:32: error: unknown warning group '-Wmaybe-uninitialized', ignored [-Werror,-Wunknown-warning-option] #pragma GCC diagnostic ignored "-Wmaybe-uninitialized" ^ 1 error generated. make[2]: *** [CMakeFiles/njoy21.dir/src/main.cpp.o] Error 1 make[1]: *** [CMakeFiles/njoy21.dir/all] Error 2 make: *** [all] Error 2

What is wrong, has I believe we are compiling f90, wrapped into c++

jchsublet avatar Sep 23 '20 07:09 jchsublet

This appears to be an issue with the compiler preprocessor (in which we exclude certain warning messages). Your version of clang/gcc does not appear to have this particular warning.

@jlconlin Any ideas?

whaeck avatar Sep 23 '20 18:09 whaeck

You loose me there as for me apple and orange are different fruit; clang is from the LLVN project while gcc from the GNU. Two different compilers, if I can change the gcc version on any Mac OsX I have no say on the Xcode clang choice, made by Apple themselves. Which one you want/need to use on OsX ?

jchsublet avatar Sep 24 '20 14:09 jchsublet

@jchsublet LLVM only provides a C/C++ compiler; it does not provide a Fortran compiler. You need to have a Fortran compiler to compile the Legacy NJOY parts. Thus, you need both LLVM and gfortran (from GCC). Likely what is happening is that CMake is using g++ and gfortran (both part of the GCC suite).

I think a solution would be to invoke CMake like this:

$ cmake -D CMAKE_CXX_COMPILER=`which clang++` -D CMAKE_BUILD_TYPE=Release ..

That should ensure that you are using the LLVM compiler on your Mac.

jlconlin avatar Sep 24 '20 14:09 jlconlin

Unlikely as your new option -Wmaybe-uninitialized belong to Clang 12 class, does not work with Clang 10 or 11, so force Xcode 12, is that what you really want? as many OsX user will not wish or could to so quickly shifted to this Xcode level

On OsX the LLVM level is not a choice, this is imposed by Xcode

jchsublet avatar Oct 05 '20 13:10 jchsublet