[lld] 5bc4e15 - [ELF] Set config->exportDynamic to true if config->shared. NFC
Fangrui Song via llvm-commits
llvm-commits at lists.llvm.org
Thu Feb 24 11:32:09 PST 2022
Author: Fangrui Song
Date: 2022-02-24T11:31:58-08:00
New Revision: 5bc4e15c6e3dee7acf558ed68316a9a968e9bc0f
URL: https://github.com/llvm/llvm-project/commit/5bc4e15c6e3dee7acf558ed68316a9a968e9bc0f
DIFF: https://github.com/llvm/llvm-project/commit/5bc4e15c6e3dee7acf558ed68316a9a968e9bc0f.diff
LOG: [ELF] Set config->exportDynamic to true if config->shared. NFC
Added:
Modified:
lld/ELF/Driver.cpp
lld/ELF/LTO.cpp
lld/ELF/Symbols.h
Removed:
################################################################################
diff --git a/lld/ELF/Driver.cpp b/lld/ELF/Driver.cpp
index 7978082f86cf4..5af69e78a3ad9 100644
--- a/lld/ELF/Driver.cpp
+++ b/lld/ELF/Driver.cpp
@@ -1016,7 +1016,8 @@ static void readConfigs(opt::InputArgList &args) {
config->executeOnly =
args.hasFlag(OPT_execute_only, OPT_no_execute_only, false);
config->exportDynamic =
- args.hasFlag(OPT_export_dynamic, OPT_no_export_dynamic, false);
+ args.hasFlag(OPT_export_dynamic, OPT_no_export_dynamic, false) ||
+ args.hasArg(OPT_shared);
config->filterList = args::getStrings(args, OPT_filter);
config->fini = args.getLastArgValue(OPT_fini, "_fini");
config->fixCortexA53Errata843419 = args.hasArg(OPT_fix_cortex_a53_843419) &&
diff --git a/lld/ELF/LTO.cpp b/lld/ELF/LTO.cpp
index 78d1280e5f419..a6c6e65b1619e 100644
--- a/lld/ELF/LTO.cpp
+++ b/lld/ELF/LTO.cpp
@@ -249,9 +249,9 @@ void BitcodeCompiler::add(BitcodeFile &f) {
usedStartStop.count(objSym.getSectionName());
// Identify symbols exported dynamically, and that therefore could be
// referenced by a shared library not visible to the linker.
- r.ExportDynamic = sym->computeBinding() != STB_LOCAL &&
- (config->shared || config->exportDynamic ||
- sym->exportDynamic || sym->inDynamicList);
+ r.ExportDynamic =
+ sym->computeBinding() != STB_LOCAL &&
+ (config->exportDynamic || sym->exportDynamic || sym->inDynamicList);
const auto *dr = dyn_cast<Defined>(sym);
r.FinalDefinitionInLinkageUnit =
(isExec || sym->visibility != STV_DEFAULT) && dr &&
diff --git a/lld/ELF/Symbols.h b/lld/ELF/Symbols.h
index 96f946935d4d1..1a6cc9f12a2de 100644
--- a/lld/ELF/Symbols.h
+++ b/lld/ELF/Symbols.h
@@ -318,7 +318,7 @@ class Defined : public Symbol {
uint8_t type, uint64_t value, uint64_t size, SectionBase *section)
: Symbol(DefinedKind, file, name, binding, stOther, type), value(value),
size(size), section(section) {
- exportDynamic = config->shared || config->exportDynamic;
+ exportDynamic = config->exportDynamic;
}
static bool classof(const Symbol *s) { return s->isDefined(); }
@@ -355,7 +355,7 @@ class CommonSymbol : public Symbol {
uint8_t stOther, uint8_t type, uint64_t alignment, uint64_t size)
: Symbol(CommonKind, file, name, binding, stOther, type),
alignment(alignment), size(size) {
- exportDynamic = config->shared || config->exportDynamic;
+ exportDynamic = config->exportDynamic;
}
static bool classof(const Symbol *s) { return s->isCommon(); }
More information about the llvm-commits
mailing list