f254276fc1
The CMAKE_SHARED_LIBRARY_LINK_<LANG>_FLAGS setting has always been meant for flags needed to export symbols from executables for use by shared library plugins. Since commit v3.4.0-rc1~58^2~1 (CMP0065: Restrict the use of CMAKE_SHARED_LIBRARY_LINK_<LANG>_FLAGS, 2015-08-24) this is made explicit by using the flags only for executables with ENABLE_EXPORTS, guarded by CMP0065 for compatibility. On some platforms we were accidentally using this setting to pass other flags to the linker: * AIX: -bnoipath, -brtl * HP-UX: +s, +nodefaultrpath These flags are incorrectly dropped when CMP0065 is set to NEW. Fix this by moving the flags to more appropriate places for linking executables.
38 lines
1.5 KiB
CMake
38 lines
1.5 KiB
CMake
|
|
#=============================================================================
|
|
# Copyright 2002-2009 Kitware, Inc.
|
|
#
|
|
# Distributed under the OSI-approved BSD License (the "License");
|
|
# see accompanying file Copyright.txt for details.
|
|
#
|
|
# This software is distributed WITHOUT ANY WARRANTY; without even the
|
|
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
# See the License for more information.
|
|
#=============================================================================
|
|
# (To distribute this file outside of CMake, substitute the full
|
|
# License text for the above reference.)
|
|
|
|
# This module is shared by multiple languages; use include blocker.
|
|
if(__AIX_COMPILER_GNU)
|
|
return()
|
|
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.
|
|
set (CMAKE_SHARED_LINKER_FLAGS_INIT "-Wl,-brtl")
|
|
set (CMAKE_MODULE_LINKER_FLAGS_INIT "-Wl,-brtl")
|
|
set (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 ":")
|
|
set(CMAKE_SHARED_LIBRARY_CREATE_${lang}_FLAGS "${CMAKE_SHARED_LIBRARY_CREATE_${lang}_FLAGS} -Wl,-G,-bnoipath")
|
|
set(CMAKE_SHARED_LIBRARY_LINK_${lang}_FLAGS "-Wl,-bexpall")
|
|
set(CMAKE_${lang}_USE_IMPLICIT_LINK_DIRECTORIES_IN_RUNTIME_PATH 1)
|
|
|
|
set(CMAKE_${lang}_LINK_FLAGS "-Wl,-bnoipath")
|
|
endmacro()
|