diff options
author | Brad King <brad.king@kitware.com> | 2019-07-18 11:07:59 (GMT) |
---|---|---|
committer | Kitware Robot <kwrobot@kitware.com> | 2019-07-18 11:08:08 (GMT) |
commit | 52fa25e28f66f043cc7c30717d9298b9a6b8cfa3 (patch) | |
tree | 29c4fae1a9e4a3451fcb35852025880b89ecb648 | |
parent | 94b883d9d32cd42c70fa24a90c05116bfc814645 (diff) | |
parent | 3fb3157dae5427b6c86949ec1603986c57602658 (diff) | |
download | CMake-52fa25e28f66f043cc7c30717d9298b9a6b8cfa3.zip CMake-52fa25e28f66f043cc7c30717d9298b9a6b8cfa3.tar.gz CMake-52fa25e28f66f043cc7c30717d9298b9a6b8cfa3.tar.bz2 |
Merge topic 'aix-no-rtl'
3fb3157dae AIX: Do not enable runtime linking by default anymore
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3566
-rw-r--r-- | Help/release/dev/aix.rst | 10 | ||||
-rw-r--r-- | Modules/Platform/AIX-GNU.cmake | 8 | ||||
-rw-r--r-- | Modules/Platform/AIX-XL.cmake | 8 |
3 files changed, 12 insertions, 14 deletions
diff --git a/Help/release/dev/aix.rst b/Help/release/dev/aix.rst index c24872e..6919358 100644 --- a/Help/release/dev/aix.rst +++ b/Help/release/dev/aix.rst @@ -8,3 +8,13 @@ aix to the executable for its symbols are now linked using the import file. The :command:`install(TARGETS)` command now installs the import file as an ``ARCHIVE`` artifact. + +* On AIX, runtime linking is no longer enabled by default. CMake provides + the linker enough information to resolve all symbols up front. + One may manually enable runtime linking for shared libraries and/or + loadable modules by adding ``-Wl,-G`` to their link flags + (e.g. in the :variable:`CMAKE_SHARED_LINKER_FLAGS` or + :variable:`CMAKE_MODULE_LINKER_FLAGS` variable). + One may manually enable runtime linking for executables by adding + ``-Wl,-brtl`` to their link flags (e.g. in the + :variable:`CMAKE_EXE_LINKER_FLAGS` variable). diff --git a/Modules/Platform/AIX-GNU.cmake b/Modules/Platform/AIX-GNU.cmake index 9e981c6..61d213a 100644 --- a/Modules/Platform/AIX-GNU.cmake +++ b/Modules/Platform/AIX-GNU.cmake @@ -8,16 +8,10 @@ if(__AIX_COMPILER_GNU) endif() set(__AIX_COMPILER_GNU 1) -# -# By default, runtime linking is enabled. All shared objects specified on the command line -# will be listed, even if there are no symbols referenced, in the output file. -string(APPEND CMAKE_EXE_LINKER_FLAGS_INIT " -Wl,-brtl") - - macro(__aix_compiler_gnu lang) set(CMAKE_SHARED_LIBRARY_RUNTIME_${lang}_FLAG "-Wl,-blibpath:") set(CMAKE_SHARED_LIBRARY_RUNTIME_${lang}_FLAG_SEP ":") - string(APPEND CMAKE_SHARED_LIBRARY_CREATE_${lang}_FLAGS " -Wl,-G,-bnoipath") + string(APPEND CMAKE_SHARED_LIBRARY_CREATE_${lang}_FLAGS " -Wl,-bnoipath") set(CMAKE_SHARED_LIBRARY_LINK_${lang}_FLAGS "-Wl,-bexpall") # CMP0065 old behavior set(CMAKE_${lang}_USE_IMPLICIT_LINK_DIRECTORIES_IN_RUNTIME_PATH 1) diff --git a/Modules/Platform/AIX-XL.cmake b/Modules/Platform/AIX-XL.cmake index 3424e2c..64b0bc1 100644 --- a/Modules/Platform/AIX-XL.cmake +++ b/Modules/Platform/AIX-XL.cmake @@ -8,16 +8,10 @@ if(__AIX_COMPILER_XL) endif() set(__AIX_COMPILER_XL 1) -# -# By default, runtime linking is enabled. All shared objects specified on the command line -# will be listed, even if there are no symbols referenced, in the output file. -string(APPEND CMAKE_EXE_LINKER_FLAGS_INIT " -Wl,-brtl") - - macro(__aix_compiler_xl lang) set(CMAKE_SHARED_LIBRARY_RUNTIME_${lang}_FLAG "-Wl,-blibpath:") set(CMAKE_SHARED_LIBRARY_RUNTIME_${lang}_FLAG_SEP ":") - set(CMAKE_SHARED_LIBRARY_CREATE_${lang}_FLAGS "-G -Wl,-bnoipath") # -shared + string(APPEND CMAKE_SHARED_LIBRARY_CREATE_${lang}_FLAGS " -Wl,-bnoipath") set(CMAKE_SHARED_LIBRARY_LINK_${lang}_FLAGS "-Wl,-bexpall") # CMP0065 old behavior set(CMAKE_SHARED_LIBRARY_${lang}_FLAGS " ") set(CMAKE_SHARED_MODULE_${lang}_FLAGS " ") |