41 lines
1.3 KiB
Text
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
|