summaryrefslogtreecommitdiffstats
path: root/Modules/Compiler/XL.cmake
Commit message (Collapse)AuthorAgeFilesLines
* Fix XL compilers on non-AIX machines.Todd Gamblin2011-08-291-10/+15
| | | | | | Linking broken on non-AIX machines when using XL compilers due to those machines not using the CreateExportList tool. Made use of this tool conditional on finding it.
* XL: Avoid copying archives into shared libraries that link themBrad King2011-04-081-0/+17
| | | | | | | | | | | | | | | | | | | | | | The XL toolchain supports shared object files stored in archives. Since CMake lists libraries on link lines by full path it is common for a shared library link line to contain the path to an archive file. When linking a shared library the compiler front-end by default runs CreateExportList to construct the list of symbols to be exported. Unfortunately it passes all files found on the command line to the tool so archive and library files get processed along with the object files. The tool returns a list of all symbols in all objects, archives, and libraries on the command line. This causes the linker to copy every object file out of every archive into the shared library whether they are dependencies of the original object files or not. Work around this problem by running CreateExportList ourselves with just the original object files intended for inclusion in the shared library. Then pass the list it produces on the link line to prevent the compiler front-end from constructing its own. This tells the linker to export only the symbols provided by the original source files of the shared library.
* XL: Consolidate compiler flag informationBrad King2011-04-071-0/+31
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.