ports/devel/llvm/17/patches/patch-lld_ELF_Symbols_h

41 lines
1.3 KiB
Text

Index: lld/ELF/Symbols.h
--- lld/ELF/Symbols.h.orig
+++ lld/ELF/Symbols.h
@@ -161,6 +161,9 @@ class Symbol { (public)
// True if the name contains '@'.
uint8_t hasVersionSuffix : 1;
+ // True if the .gnu.warning.SYMBOL is set for the symbol
+ uint8_t gwarn : 1;
+
// Symbol visibility. This is the computed minimum visibility of all
// observed non-DSO symbols.
uint8_t visibility() const { return stOther & 3; }
@@ -255,7 +258,7 @@ class Symbol { (public)
uint8_t stOther, uint8_t type)
: file(file), nameData(name.data()), nameSize(name.size()), type(type),
binding(binding), stOther(stOther), symbolKind(k),
- exportDynamic(false) {}
+ exportDynamic(false), gwarn(false) {}
void overwrite(Symbol &sym, Kind k) const {
if (sym.traced)
@@ -493,6 +496,9 @@ struct ElfSym {
// __bss_start
static Defined *bss;
+ // __data_start
+ static Defined *data;
+
// etext and _etext
static Defined *etext1;
static Defined *etext2;
@@ -552,6 +558,8 @@ void reportDuplicate(const Symbol &sym, const InputFil
InputSectionBase *errSec, uint64_t errOffset);
void maybeWarnUnorderableSymbol(const Symbol *sym);
bool computeIsPreemptible(const Symbol &sym);
+
+extern llvm::DenseMap<StringRef, StringRef> gnuWarnings;
} // namespace elf
} // namespace lld