decide future of xlc+power support - Redmine #2102
Archive from user: James Ostrander Hi, I am trying to compile GROMACS with xlc/xlC in the simplest way I can. From the build directory: `cmake3 -DCMAKE_C_COMPILER=xlc -DCMAKE_CXX_COMPILER=xlC ..` Output: `[u0017592`sys-85310 build\]$ cmake3 -DCMAKE\_C\_COMPILER=xlc -DCMAKE\_CXX\_COMPILER=xlC .. — No compatible CUDA toolkit found (v5.0+), disabling native GPU acceleration CMake Error at cmake/gmxManageSimd.cmake:90 (message): Cannot find IBM VSX compiler flag. Use a newer compiler, or disable SIMD support (slower). Call Stack (most recent call first): cmake/gmxManageSimd.cmake:414 (gmx\_give\_fatal\_error\_when\_simd\_support\_not\_found) CMakeLists.txt:665 (gmx\_manage\_simd)@ CMakeError.log & CMakeOutput.log attached. My xlc version is 13.1.5. Many of the flags checked for in the CMakeError.log are no longer supported. xl compiler reference 13.1.5: http://www-01.ibm.com/support/docview.wss?uid=swg27048883&aid=7 xl compiler reference 13.1: http://www-01.ibm.com/support/docview.wss?uid=swg27041925&aid=1 - -mabi=altivec: Not in any xlc doc. Exists in gcc. Maybe in previous versions this didn’t throw errors. “-qaltivec” Enables the compiler support for vector data types and operators. Effects VSX/VMX load & store functions. This might be functionally equivalent to -maltivec, which is supported for gcc compatibility - <s>mvsx: not in any doc. See above</s> can this be replaced by -qaltivec (or -maltivec)? - -qsuppress: Exists in 13.1 but not 13.1.5 - -qhalt=e: The flag exists, but “w” is the only valid option in 13.1.5. In 13.1 more values were allowed, e.g. e, s The invalid options throw warnings but not errors, so maybe it’s not necessary to fail the build if they are raised when compiling with xlc/xlC. *(from redmine: issue id 2102, created on 2017-01-26 by gmxdefault, closed on 2017-12-12)* * Relations: * relates #2103 * Changesets: * Revision deb27c1780b9c93b14d09b452d80da3d779cfd50 by Erik Lindahl on 2017-02-09T15:45:00Z: ``` Work around false xlc-13.1.5 bug in SIMD test atan2(0,0) should return 0.0, which the Gromacs simd implementation does. However, since at least one compiler produces -nan for the standard library version it's better to compare with the known correct value rather than calling std:atan2(0,0). Refs #2102. Change-Id: I60449e9f16fb1ab79486927a3e9993da0cce937f ``` * Revision f05743b09bef9b6af452b29a00bddc7fcc956a38 by Mark Abraham on 2017-03-04T11:25:41Z: ``` Fixes for xl compilers 13.1.5 on Power8 Applied Erik's recent fix also for the atan2SinglePrecisionAccuracy test. Refs #2102 Change-Id: I230dac8084be2d0693cb616b5a5951b0ae4b71a6 ``` * Revision a590e9e1eaa5c381d6882e73c217ca2d5c827607 by Paul Bauer on 2017-12-08T10:58:52Z: ``` Add information regarding xlc compiler Added information concerning that the xlc compiler is neither supported nor tested. Refs #2102 Change-Id: I1963a2fdaa6e27f4d9521c28088fc1c1f7eabe97 ``` * Uploads: * [CMakeError.txt](/uploads/e6907ae4666031fffecdcb177a3fa752/CMakeError.txt) * [CMakeOutput.txt](/uploads/3ce39ad7ec4307cb0955dbb6ab0ca4b1/CMakeOutput.txt)
issue