CMake/Modules/Compiler
Brad King d468a2c2cb XL: Avoid copying archives into shared libraries that link them
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.
2011-04-08 08:41:36 -04:00
..
Clang-C.cmake Recognize Clang C and C++ compilers (see #10693) 2010-05-17 14:11:20 -04:00
Clang-CXX.cmake Recognize Clang C and C++ compilers (see #10693) 2010-05-17 14:11:20 -04:00
Cray-C.cmake Teach CMake about Cray C, C++, and Fortran compilers 2010-11-12 09:12:08 -05:00
Cray-CXX.cmake Teach CMake about Cray C, C++, and Fortran compilers 2010-11-12 09:12:08 -05:00
Cray-Fortran.cmake Teach CMake about Cray C, C++, and Fortran compilers 2010-11-12 09:12:08 -05:00
G95-Fortran.cmake Add support for the g95 Fortran compiler 2009-10-23 08:25:43 -04:00
GNU-ASM.cmake Change the default rules so they fit better to the new ASM handling 2011-02-23 21:21:41 +01:00
GNU-C.cmake Split GNU compiler information files 2009-12-02 09:52:00 -05:00
GNU-CXX.cmake Split GNU compiler information files 2009-12-02 09:52:00 -05:00
GNU-Fortran.cmake Split GNU compiler information files 2009-12-02 09:52:00 -05:00
GNU.cmake Modules: Fix spelling 'To distributed' -> 'To distribute' 2010-08-09 08:48:31 -04:00
HP-ASM.cmake Set the HP asm file suffix 2011-02-23 21:18:55 +01:00
HP-C.cmake Add assemble- and preprocess commands for HP 2011-02-23 21:30:21 +01:00
HP-CXX.cmake Add assemble- and preprocess commands for HP 2011-02-23 21:30:21 +01:00
HP-Fortran.cmake ENH: Implicit link info for C, CXX, and Fortran 2009-07-23 10:07:25 -04:00
Intel-ASM.cmake Add support for the Intel compiler used for ASM under Windows 2011-03-02 16:46:25 +01:00
Intel-C.cmake The preprocessing and assembly rules also need the <DEFINES>, otherwise different reults are created. 2009-09-19 04:33:10 -04:00
Intel-CXX.cmake The preprocessing and assembly rules also need the <DEFINES>, otherwise different reults are created. 2009-09-19 04:33:10 -04:00
Intel-Fortran.cmake Use Intel for Linux flags only on Linux 2009-09-01 13:55:13 -04:00
MIPSpro-C.cmake ENH: Implicit link info for C, CXX, and Fortran 2009-07-23 10:07:25 -04:00
MIPSpro-CXX.cmake ENH: Implicit link info for C, CXX, and Fortran 2009-07-23 10:07:25 -04:00
MIPSpro-Fortran.cmake ENH: Implicit link info for C, CXX, and Fortran 2009-07-23 10:07:25 -04:00
NAG-Fortran.cmake Add NAG Fortran compiler information files 2010-12-09 18:12:34 -05:00
PGI-C.cmake Generalize support for Portland Group Compiler 2009-12-04 10:21:57 -05:00
PGI-CXX.cmake Generalize support for Portland Group Compiler 2009-12-04 10:21:57 -05:00
PGI-Fortran.cmake Generalize support for Portland Group Compiler 2009-12-04 10:21:57 -05:00
PGI.cmake Modules: Fix spelling 'To distributed' -> 'To distribute' 2010-08-09 08:48:31 -04:00
PathScale-C.cmake PathScale C/C++/Fortran Compiler Information 2010-01-13 12:14:31 -05:00
PathScale-CXX.cmake PathScale C/C++/Fortran Compiler Information 2010-01-13 12:14:31 -05:00
PathScale-Fortran.cmake PathScale C/C++/Fortran Compiler Information 2010-01-13 12:14:31 -05:00
PathScale.cmake Modules: Fix spelling 'To distributed' -> 'To distribute' 2010-08-09 08:48:31 -04:00
SCO-C.cmake Factor SCO compiler info out of platform file (#11700) 2011-01-17 09:57:17 -05:00
SCO-CXX.cmake Factor SCO compiler info out of platform file (#11700) 2011-01-17 09:57:17 -05:00
SCO.cmake Factor SCO compiler info out of platform file (#11700) 2011-01-17 09:57:17 -05:00
SunPro-ASM.cmake Change the default rules so they fit better to the new ASM handling 2011-02-23 21:21:41 +01:00
SunPro-C.cmake Make VERBOSE_FLAG appear as first statement for consistency 2010-04-17 07:49:21 +02:00
SunPro-CXX.cmake Make VERBOSE_FLAG appear as first statement for consistency 2010-04-17 07:49:21 +02:00
SunPro-Fortran.cmake Make VERBOSE_FLAG appear as first statement for consistency 2010-04-17 07:49:21 +02:00
VisualAge-C.cmake Teach compiler id about VisualAge -> XL rebranding 2009-08-07 10:13:07 -04:00
VisualAge-CXX.cmake Teach compiler id about VisualAge -> XL rebranding 2009-08-07 10:13:07 -04:00
VisualAge-Fortran.cmake Teach compiler id about VisualAge -> XL rebranding 2009-08-07 10:13:07 -04:00
XL-ASM.cmake Fix the default CMAKE_ASM_COMPILE_OBJECT, make XL-ASM use it 2011-02-23 21:29:05 +01:00
XL-C.cmake XL: Consolidate compiler flag information 2011-04-07 17:09:05 -04:00
XL-CXX.cmake XL: Consolidate compiler flag information 2011-04-07 17:09:05 -04:00
XL-Fortran.cmake XL: Consolidate compiler flag information 2011-04-07 17:09:05 -04:00
XL.cmake XL: Avoid copying archives into shared libraries that link them 2011-04-08 08:41:36 -04:00