CMake/Modules/Platform
Brad King 9ef3f8e820 Restore -rdynamic in Linux build rules
The commit "Drop -rdynamic from Linux build rules" removed default use
of the flag on Linux.  It was expected to be compatible because any
project using plugins should set ENABLE_EXPORTS on its executables to
export their symbols for use by the plugins in a cross-platform way.
However, it is possible to build without ENABLE_EXPORTS and load plugins
that do not link to any symbols from the executable explicitly.  These
plugins may need to see RTTI and other executable symbols needed by the
language implementation.  Executables using such plugins were broken by
the change.

If we want to remove the -rdynamic flag in the future we should do so in
a compatible way.  At that time we should also remove equivalent flags
on other platforms (like -bexpall on AIX).  We will either need a policy
or an explicit API to disable symbol exports on executables.

The primary purpose of the above-mentioned commit was to avoid passing
the -rdynamic flag to compilers on Linux that do not support it.  In
this commit we restore the flag but only on GNU and Intel compilers
which are known to support it.

See issue #9985.
2010-01-13 08:13:46 -05:00
..
AIX-GNU-C.cmake Split GNU compiler information files 2009-12-02 09:52:00 -05:00
AIX-GNU-CXX.cmake Split GNU compiler information files 2009-12-02 09:52:00 -05:00
AIX-GNU-Fortran.cmake Split GNU compiler information files 2009-12-02 09:52:00 -05:00
AIX-GNU.cmake Split GNU compiler information files 2009-12-02 09:52:00 -05:00
AIX-VisualAge-C.cmake Split XL compiler information files 2009-09-30 09:37:35 -04:00
AIX-VisualAge-CXX.cmake Split XL compiler information files 2009-09-30 09:37:35 -04:00
AIX-XL-C.cmake Split XL compiler information files 2009-09-30 09:37:35 -04:00
AIX-XL-CXX.cmake Split XL compiler information files 2009-09-30 09:37:35 -04:00
AIX-XL-Fortran.cmake Split XL compiler information files 2009-09-30 09:37:35 -04:00
AIX.cmake Split GNU compiler information files 2009-12-02 09:52:00 -05:00
BSDOS.cmake BUG: also include UnixPaths.cmake on these platforms, this also sets UNIX to 1 2007-08-10 08:54:42 -04:00
BeOS.cmake Reduce duplication in Platform/<os>.cmake files 2009-12-02 15:17:53 -05:00
BlueGeneL.cmake ENH: Rename SET_PROPERITES command to SET_PROPERTY and give it a more powerful signature. 2008-01-17 15:54:49 -05:00
CYGWIN-GNU-C.cmake Split GNU compiler information files 2009-12-02 09:52:00 -05:00
CYGWIN-GNU-CXX.cmake Split GNU compiler information files 2009-12-02 09:52:00 -05:00
CYGWIN-GNU-Fortran.cmake Split GNU compiler information files 2009-12-02 09:52:00 -05:00
CYGWIN-GNU.cmake Split GNU compiler information files 2009-12-02 09:52:00 -05:00
CYGWIN.cmake Split GNU compiler information files 2009-12-02 09:52:00 -05:00
Catamount.cmake ENH: Rename SET_PROPERITES command to SET_PROPERTY and give it a more powerful signature. 2008-01-17 15:54:49 -05:00
Darwin-GNU-C.cmake Fix OS X dylib and module GNU flags 2009-12-02 15:09:03 -05:00
Darwin-GNU-CXX.cmake Fix OS X dylib and module GNU flags 2009-12-02 15:09:03 -05:00
Darwin-GNU-Fortran.cmake Fix OS X dylib and module GNU flags 2009-12-02 15:09:03 -05:00
Darwin-GNU.cmake Fix OS X dylib and module GNU flags 2009-12-02 15:09:03 -05:00
Darwin-VisualAge-C.cmake Split XL compiler information files 2009-09-30 09:37:35 -04:00
Darwin-VisualAge-CXX.cmake Split XL compiler information files 2009-09-30 09:37:35 -04:00
Darwin-XL-C.cmake Split XL compiler information files 2009-09-30 09:37:35 -04:00
Darwin-XL-CXX.cmake Split XL compiler information files 2009-09-30 09:37:35 -04:00
Darwin-icc.cmake BUG: Remove implicit include dir suppression 2009-02-24 15:37:09 -05:00
Darwin-icpc.cmake ENH: Add Intel compiler module files for the Mac. Thanks to Mike Jackson for contributing. 2008-03-31 08:04:12 -04:00
Darwin.cmake Fix issue with SDK not matching initial deployment target chosen by setting the MACOSX_DEPLOYMENT_TARGET environment variable. The problem was that we were setting the initial SDK value based on our own internal default value for deplyment target rather than the user's environment variable choice. The solution is to base the default value for the SDK on the deployment target variable after initially caching the deployment target... Every time I'm in this code I think I leave it cleaner, only to be proven otherwise. Let's give this one a whirl. Bleh. 2009-12-23 12:08:25 -05:00
DragonFly.cmake ENH: add DragonFly BSD, which is very close to FreeBSD (#4500) 2007-07-13 11:20:42 -04:00
FreeBSD.cmake Reduce duplication in Platform/<os>.cmake files 2009-12-02 15:17:53 -05:00
GNU.cmake Reduce duplication in Platform/<os>.cmake files 2009-12-02 15:17:53 -05:00
Generic-ADSP-ASM.cmake ENH: add support for the ADSP toolchains for Blackfin, Shark and TigerShark 2007-07-12 13:41:00 -04:00
Generic-ADSP-C.cmake ENH: add support for the ADSP toolchains for Blackfin, Shark and TigerShark 2007-07-12 13:41:00 -04:00
Generic-ADSP-CXX.cmake ENH: add support for the ADSP toolchains for Blackfin, Shark and TigerShark 2007-07-12 13:41:00 -04:00
Generic-ADSP-Common.cmake ENH: add support for the ADSP toolchains for Blackfin, Shark and TigerShark 2007-07-12 13:41:00 -04:00
Generic-SDCC-C.cmake ENH: Create COMPILE_DEFINITIONS property for targets and source files. Create <config>_COMPILE_DEFINITIONS property as per-configuration version. Add Preprocess test to test the feature. Document limitations on Xcode and VS6 generators. 2008-01-14 09:20:58 -05:00
Generic.cmake ENH: Rename SET_PROPERITES command to SET_PROPERTY and give it a more powerful signature. 2008-01-17 15:54:49 -05:00
HP-UX-GNU-C.cmake Split GNU compiler information files 2009-12-02 09:52:00 -05:00
HP-UX-GNU-CXX.cmake Split GNU compiler information files 2009-12-02 09:52:00 -05:00
HP-UX-GNU-Fortran.cmake Split GNU compiler information files 2009-12-02 09:52:00 -05:00
HP-UX-GNU.cmake Split GNU compiler information files 2009-12-02 09:52:00 -05:00
HP-UX.cmake Split GNU compiler information files 2009-12-02 09:52:00 -05:00
Haiku.cmake Reduce duplication in Platform/<os>.cmake files 2009-12-02 15:17:53 -05:00
IRIX.cmake Reduce duplication in Platform/<os>.cmake files 2009-12-02 15:17:53 -05:00
IRIX64.cmake Reduce duplication in Platform/<os>.cmake files 2009-12-02 15:17:53 -05:00
Linux-GNU-C.cmake Create Linux GNU compiler flag consolidation macro 2010-01-13 08:13:19 -05:00
Linux-GNU-CXX.cmake Create Linux GNU compiler flag consolidation macro 2010-01-13 08:13:19 -05:00
Linux-GNU-Fortran.cmake Create Linux GNU compiler flag consolidation macro 2010-01-13 08:13:19 -05:00
Linux-GNU.cmake Restore -rdynamic in Linux build rules 2010-01-13 08:13:46 -05:00
Linux-Intel-C.cmake Consolidate Linux Intel compiler information 2009-12-04 09:20:24 -05:00
Linux-Intel-CXX.cmake Consolidate Linux Intel compiler information 2009-12-04 09:20:24 -05:00
Linux-Intel-Fortran.cmake Consolidate Linux Intel compiler information 2009-12-04 09:20:24 -05:00
Linux-Intel.cmake Restore -rdynamic in Linux build rules 2010-01-13 08:13:46 -05:00
Linux-PGI-C.cmake Generalize support for Portland Group Compiler 2009-12-04 10:21:57 -05:00
Linux-PGI-CXX.cmake Generalize support for Portland Group Compiler 2009-12-04 10:21:57 -05:00
Linux-PGI-Fortran.cmake Generalize support for Portland Group Compiler 2009-12-04 10:21:57 -05:00
Linux-PGI.cmake Generalize support for Portland Group Compiler 2009-12-04 10:21:57 -05:00
Linux-SunPro-CXX.cmake Remove duplicate info from Linux SunPro info files 2009-12-04 09:20:59 -05:00
Linux-VisualAge-C.cmake Teach compiler id about VisualAge -> XL rebranding 2009-08-07 10:13:07 -04:00
Linux-VisualAge-CXX.cmake Fix XL C++ compiler flags on Linux 2009-09-16 12:33:24 -04:00
Linux-VisualAge-Fortran.cmake Teach compiler id about VisualAge -> XL rebranding 2009-08-07 10:13:07 -04:00
Linux-XL-C.cmake Remove GNU-specific flags from Linux.cmake 2009-12-04 10:22:30 -05:00
Linux-XL-CXX.cmake Remove GNU-specific flags from Linux.cmake 2009-12-04 10:22:30 -05:00
Linux-XL-Fortran.cmake Remove GNU-specific flags from Linux.cmake 2009-12-04 10:22:30 -05:00
Linux-como.cmake Drop -rdynamic from Linux build rules 2009-12-01 14:25:21 -05:00
Linux.cmake Remove GNU-specific flags from Linux.cmake 2009-12-04 10:22:30 -05:00
MP-RAS.cmake BUG: also include UnixPaths.cmake on these platforms, this also sets UNIX to 1 2007-08-10 08:54:42 -04:00
NetBSD.cmake Reduce duplication in Platform/<os>.cmake files 2009-12-02 15:17:53 -05:00
OSF1.cmake Reduce duplication in Platform/<os>.cmake files 2009-12-02 15:17:53 -05:00
OpenBSD.cmake Use NetBSD to initialize OpenBSD configuration 2009-08-07 09:56:20 -04:00
OpenVMS.cmake ENH: use .exe on vms 2009-06-11 15:25:48 -04:00
QNX.cmake Reduce duplication in Platform/<os>.cmake files 2009-12-02 15:17:53 -05:00
RISCos.cmake BUG: also include UnixPaths.cmake on these platforms, this also sets UNIX to 1 2007-08-10 08:54:42 -04:00
SCO_SV.cmake ENH: add more search paths and add UnixPaths to all unix platforms 2006-03-27 10:46:42 -05:00
SINIX.cmake ENH: add more search paths and add UnixPaths to all unix platforms 2006-03-27 10:46:42 -05:00
SunOS-GNU-C.cmake Fix GNU C and Fortran flags on SunOS 2009-12-04 08:51:46 -05:00
SunOS-GNU-CXX.cmake Split GNU compiler information files 2009-12-02 09:52:00 -05:00
SunOS-GNU-Fortran.cmake Fix GNU C and Fortran flags on SunOS 2009-12-04 08:51:46 -05:00
SunOS-GNU.cmake Move GNU flags from SunOS.cmake to SunOS-GNU.cmake 2009-12-02 16:58:52 -05:00
SunOS.cmake Move GNU flags from SunOS.cmake to SunOS-GNU.cmake 2009-12-02 16:58:52 -05:00
Tru64.cmake ENH: add more search paths and add UnixPaths to all unix platforms 2006-03-27 10:46:42 -05:00
ULTRIX.cmake ENH: add more search paths and add UnixPaths to all unix platforms 2006-03-27 10:46:42 -05:00
UNIX_SV.cmake ENH: add more search paths and add UnixPaths to all unix platforms 2006-03-27 10:46:42 -05:00
UnixPaths.cmake Avoid (Unix|Windows)Paths.cmake multiple include 2009-10-05 11:47:25 -04:00
UnixWare.cmake ENH: add more search paths and add UnixPaths to all unix platforms 2006-03-27 10:46:42 -05:00
Windows-Borland-C.cmake Split Borland compiler information files 2009-10-08 11:56:07 -04:00
Windows-Borland-CXX.cmake Split Borland compiler information files 2009-10-08 11:56:07 -04:00
Windows-Borland.cmake Split Borland compiler information files 2009-10-08 11:56:07 -04:00
Windows-GNU-C.cmake Modernize GNU compiler info on Windows 2009-12-02 11:27:59 -05:00
Windows-GNU-CXX.cmake Modernize GNU compiler info on Windows 2009-12-02 11:27:59 -05:00
Windows-GNU-Fortran.cmake Modernize GNU compiler info on Windows 2009-12-02 11:27:59 -05:00
Windows-GNU.cmake Modernize GNU compiler info on Windows 2009-12-02 11:27:59 -05:00
Windows-Intel.cmake Add a module to determine if the intel linker supports manifest creation 2009-09-01 16:23:07 -04:00
Windows-NMcl.cmake ENH: add platform file for bounds checker 2008-08-15 15:07:56 -04:00
Windows-cl.cmake Change the way 32/64 bit compiles are detected with MSVC and intel makefile builds. Use the platform ID preprocessor approach. 2009-11-19 21:58:42 -05:00
Windows-cl.cmake.in ENH: make sure msvc90 gets set 2008-01-18 16:06:10 -05:00
Windows-df.cmake BUG: fix for bug 3950 add support for df compiler on windows 2007-02-20 16:43:32 -05:00
Windows-g++.cmake BUG: Need Windows-g++.cmake module to support C++-only projects on Windows. 2006-02-09 14:18:48 -05:00
Windows-icl.cmake Change the way 32/64 bit compiles are detected with MSVC and intel makefile builds. Use the platform ID preprocessor approach. 2009-11-19 21:58:42 -05:00
Windows-ifort.cmake Fix flags for Intel Fortran on Windows 2009-10-29 10:06:10 -04:00
Windows-wcl386.cmake Singly-quote target names for Watcom linker 2009-11-30 11:16:24 -05:00
Windows.cmake ENH: UNIX, CYGWIN, WIN32, APPLE, QNXNTO and BEOS are not longer set in 2007-08-09 14:45:23 -04:00
WindowsPaths.cmake Avoid (Unix|Windows)Paths.cmake multiple include 2009-10-05 11:47:25 -04:00
Xenix.cmake ENH: add more search paths and add UnixPaths to all unix platforms 2006-03-27 10:46:42 -05:00
cl.cmake ENH: Handle large object file lists on some platforms 2008-02-27 17:10:45 -05:00
eCos.cmake ENH: Fix eCos.cmake to not require a forced compiler 2008-02-11 17:01:02 -05:00
gas.cmake ENH: initial support for assembler in cmake, needs testing by our users 2007-06-28 09:14:27 -04:00
kFreeBSD.cmake Support GNU/kFreeBSD 2009-10-05 10:26:50 -04:00
syllable.cmake Reduce duplication in Platform/<os>.cmake files 2009-12-02 15:17:53 -05:00