summaryrefslogtreecommitdiffstats
path: root/Source/cmMakefileLibraryTargetGenerator.cxx
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2020-01-30 14:10:58 (GMT)
committerBrad King <brad.king@kitware.com>2020-01-31 14:34:06 (GMT)
commitafcd9fe66943259ea9521ff77b32673e0cdf70b2 (patch)
treedca73be96274dc28f334e990fa58bc8aa972533e /Source/cmMakefileLibraryTargetGenerator.cxx
parent67f30811ce6b70717c36951650d9e62b16a14260 (diff)
downloadCMake-afcd9fe66943259ea9521ff77b32673e0cdf70b2.zip
CMake-afcd9fe66943259ea9521ff77b32673e0cdf70b2.tar.gz
CMake-afcd9fe66943259ea9521ff77b32673e0cdf70b2.tar.bz2
AIX: Add an option to disable automatic exports from shared libraries
Since commit 0f150b69d3 (AIX: Explicitly compute shared object exports for both XL and GNU, 2019-07-11, v3.16.0-rc1~418^2~2) we always export all symbols from shared libraries by default. Add a new target property called `AIX_EXPORT_ALL_SYMBOLS` that can be explicitly set to OFF to suppress this behavior and export no symbols by default. Fixes: #20290
Diffstat (limited to 'Source/cmMakefileLibraryTargetGenerator.cxx')
-rw-r--r--Source/cmMakefileLibraryTargetGenerator.cxx3
1 files changed, 3 insertions, 0 deletions
diff --git a/Source/cmMakefileLibraryTargetGenerator.cxx b/Source/cmMakefileLibraryTargetGenerator.cxx
index 357e273..d3f3a4f 100644
--- a/Source/cmMakefileLibraryTargetGenerator.cxx
+++ b/Source/cmMakefileLibraryTargetGenerator.cxx
@@ -727,6 +727,8 @@ void cmMakefileLibraryTargetGenerator::WriteLibraryRules(
cmOutputConverter::SHELL);
}
+ std::string const& aixExports = this->GetAIXExports(this->GetConfigName());
+
// maybe create .def file from list of objects
this->GenDefFile(real_link_commands);
@@ -756,6 +758,7 @@ void cmMakefileLibraryTargetGenerator::WriteLibraryRules(
vars.CMTargetType =
cmState::GetTargetTypeName(this->GeneratorTarget->GetType());
vars.Language = linkLanguage.c_str();
+ vars.AIXExports = aixExports.c_str();
vars.Objects = buildObjs.c_str();
std::string objectDir = this->GeneratorTarget->GetSupportDirectory();