summaryrefslogtreecommitdiffstats
path: root/lld/ELF/Config.h
diff options
context:
space:
mode:
Diffstat (limited to 'lld/ELF/Config.h')
-rw-r--r--lld/ELF/Config.h9
1 files changed, 7 insertions, 2 deletions
diff --git a/lld/ELF/Config.h b/lld/ELF/Config.h
index 8a8cc04b760..7412163624f 100644
--- a/lld/ELF/Config.h
+++ b/lld/ELF/Config.h
@@ -35,13 +35,18 @@ enum class BuildIdKind { None, Fnv1, Md5, Sha1, Hexstring };
enum class UnresolvedPolicy { NoUndef, Error, Warn, Ignore };
+struct SymbolVersion {
+ llvm::StringRef Name;
+ bool IsExternCpp;
+};
+
// This struct contains symbols version definition that
// can be found in version script if it is used for link.
struct Version {
Version(llvm::StringRef Name, size_t Id) : Name(Name), Id(Id) {}
llvm::StringRef Name;
size_t Id;
- std::vector<llvm::StringRef> Globals;
+ std::vector<SymbolVersion> Globals;
size_t NameOff; // Offset in string table.
};
@@ -68,7 +73,7 @@ struct Configuration {
std::vector<llvm::StringRef> DynamicList;
std::vector<llvm::StringRef> SearchPaths;
std::vector<llvm::StringRef> Undefined;
- std::vector<llvm::StringRef> VersionScriptGlobals;
+ std::vector<SymbolVersion> VersionScriptGlobals;
std::vector<uint8_t> BuildIdVector;
bool AllowMultipleDefinition;
bool AsNeeded = false;
OpenPOWER on IntegriCloud