summaryrefslogtreecommitdiffstats
path: root/Modules/Compiler/XL-C.cmake
Commit message (Collapse)AuthorAgeFilesLines
* Revert "specify language flag when source LANGUAGE property is set"Brad King2020-11-191-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | | Revert commit 74b1c9fc8e (Explicitly specify language flag when source LANGUAGE property is set, 2020-06-01, v3.19.0-rc1~722^2) and the lookup tables from its two immediate ancestors. The purpose of that change was to convert an explicit `LANGUAGE` source file property into an explicit language specification compiler flag like `-x c`. This seems reasonable since the property is documented as meaning "indicate what programming language the source file is". It is also needed to help compilers deal with non-standard source file extensions they don't recognize. However, some projects have been setting `LANGUAGE C` on `.S` assembler source files to mean "use the C compiler". Passing `-x c` for them breaks the build because the `.S` sources are not written in C. These projects should be updated to use `enable_language(ASM)`, for which CMake often chooses the C compiler as the assembler when using toolchains that support it (which would have to be the case for projects using the approach). Revert the change for now to preserve the old behavior for such projects. We can re-introduce it with a policy in a future version of CMake. Fixes: #21469 Issue: #14516, #20716
* C: Compile when possible with explicit `C` language flag setRobert Maynard2020-06-091-0/+2
| | | | Issue: #14516, #20716
* Record when C compilers have gained full support for 90,99,11Robert Maynard2019-03-271-0/+3
|
* XL: Remove overlap with the new XLClang compiler IDChuck Atkins2019-02-251-28/+7
| | | | | | | | | In commit 6555286c55 (XL: Add C and C++ language level flags, 2017-04-27, v3.9.0-rc1~184^2) we added support for both the traditional XL compiler and the Clang-based variant used on Linux. The latter is now handled by `Modules/Compiler/XLClang-{C,CXX}.cmake` using the `XLClang` compiler id. Drop the corresponding content from the traditional XL compiler modules.
* XL: Record C compiler version that started using C99 by defaultChuck Atkins2019-02-251-1/+1
|
* XL: Use common compiler macros for language standard defaultChuck Atkins2017-05-021-26/+15
|
* XL: Add C and C++ language level flagsChuck Atkins2017-04-281-1/+46
|
* XL: Fix the use of the -qhalt flag for varying OSsChuck Atkins2017-04-271-2/+1
| | | | | | | | | | | | | | The valid settings to pass to the IBM XL compiler for the -qhalt flag vary widely by language and platform. Based on existing documentation, the following table shows which error levels are valid to pass to -qhalt= since -qhalt=e is not always available. OS | xlc | xlC | xlf | ---------|-------|------------------ AIX | iwes | iw s | ilwesu | BlueGene | iwes | iwes | ilwesu | OS X | iwesu | iwesu | ilwesu | Linux | w | w | ilwesu |
* Honor CMAKE_<LANG>_FLAGS[_<CONFIG>]_INIT set in toolchain filesBrad King2016-07-061-3/+3
| | | | | | | | | | | | | | | | | | | | | | | Document these variables. Change our convention for setting these variables from: set(CMAKE_C_FLAGS_INIT "...") to string(APPEND CMAKE_C_FLAGS_INIT " ...") so that any value previously set by a toolchain file will be used. Automate the conversion with: sed -i 's/set *(\(CMAKE_\(C\|CXX\|Fortran\|RC\|ASM\|${[^}]\+}\)_FLAGS\(_[^_]\+\)\?_INIT \+"\)/string(APPEND \1 /' \ Modules/Compiler/*.cmake Modules/Platform/*.cmake and follow up with some manual fixes (e.g. to cases that already meant to append). Also revert the automated changes to contexts that are not protected from running multiple times.
* XL: Drop -qalias=noansi from default C flagsBrad King2015-07-021-2/+1
| | | | | | | | | This was added without explanation by commit v2.8.2~1138 (Add initial XL C compiler flags for safer builds, 2009-09-30). It is not consistent with our default C++ flags for XL and disables several optimizations, so drop it from our default flags for C. Suggested-by: Todd Gamblin <tgamblin@llnl.gov>
* Convert CMake-language commands to lower caseKitware Robot2012-08-131-1/+1
| | | | | | | | | | | | | | | | | Ancient CMake versions required upper-case commands. Later command names became case-insensitive. Now the preferred style is lower-case. Run the following shell code: cmake --help-command-list | grep -v "cmake version" | while read c; do echo 's/\b'"$(echo $c | tr '[:lower:]' '[:upper:]')"'\(\s*\)(/'"$c"'\1(/g' done >convert.sed && git ls-files -z -- bootstrap '*.cmake' '*.cmake.in' '*CMakeLists.txt' | egrep -z -v '^(Utilities/cm|Source/kwsys/)' | xargs -0 sed -i -f convert.sed && rm convert.sed
* XL: Consolidate compiler flag informationBrad King2011-04-071-9/+4
| | | | | | Factor duplicate information out of Compiler/XL-<lang>.cmake modules into a macro in a new Compiler/XL.cmake module. Invoke it from the per-language files to produce the original settings.
* Add initial XL C compiler flags for safer buildsBrad King2009-09-301-0/+5
| | | | | | | This commit adds some default initial C flags for the XL compiler. The most important is "-qhalt=e" which causes the compiler to error-out on non-severe error messages. This is necessary to get try-compiles to fail when bad arguments are passed to a function.
* Split XL compiler information filesBrad King2009-09-301-0/+8
| | | | | | This moves platform-independent XL compiler flags into separate "Compiler/XL-<lang>.cmake" modules. Platform-specific flags go in "Platform/<os>-XL-<lang>.cmake" modules.
* Teach compiler id about VisualAge -> XL rebrandingBrad King2009-08-071-0/+1
IBM rebranded its VisualAge compiler to XL starting at version 8.0. We use the compiler id "XL" for newer versions and "VisualAge" for older versions. We now also recognize the "z/OS" compiler, which is distinct from XL.