forked from OSchip/llvm-project
parent
e57c487eee
commit
f53b1b7fde
|
@ -16,7 +16,7 @@
|
||||||
// by default. Starting with GC-root symbols or sections, markLive function
|
// by default. Starting with GC-root symbols or sections, markLive function
|
||||||
// defined in this file visits all reachable sections to set their Live
|
// defined in this file visits all reachable sections to set their Live
|
||||||
// bits. Writer will then ignore sections whose Live bits are off, so that
|
// bits. Writer will then ignore sections whose Live bits are off, so that
|
||||||
// such sections are removed from output.
|
// such sections are not included into output.
|
||||||
//
|
//
|
||||||
//===----------------------------------------------------------------------===//
|
//===----------------------------------------------------------------------===//
|
||||||
|
|
||||||
|
@ -37,7 +37,7 @@ using namespace llvm::object;
|
||||||
using namespace lld;
|
using namespace lld;
|
||||||
using namespace lld::elf2;
|
using namespace lld::elf2;
|
||||||
|
|
||||||
// Calls Fn for each section that Sec refers to.
|
// Calls Fn for each section that Sec refers to via relocations.
|
||||||
template <class ELFT>
|
template <class ELFT>
|
||||||
static void forEachSuccessor(InputSection<ELFT> *Sec,
|
static void forEachSuccessor(InputSection<ELFT> *Sec,
|
||||||
std::function<void(InputSectionBase<ELFT> *)> Fn) {
|
std::function<void(InputSectionBase<ELFT> *)> Fn) {
|
||||||
|
@ -104,7 +104,7 @@ template <class ELFT> void lld::elf2::markLive(SymbolTable<ELFT> *Symtab) {
|
||||||
MarkSymbol(Symtab->find(S));
|
MarkSymbol(Symtab->find(S));
|
||||||
|
|
||||||
// Preserve externally-visible symbols if the symbols defined by this
|
// Preserve externally-visible symbols if the symbols defined by this
|
||||||
// file could override other ELF file's symbols at runtime.
|
// file can interrupt other ELF file's symbols at runtime.
|
||||||
if (Config->Shared || Config->ExportDynamic) {
|
if (Config->Shared || Config->ExportDynamic) {
|
||||||
for (const std::pair<StringRef, Symbol *> &P : Symtab->getSymbols()) {
|
for (const std::pair<StringRef, Symbol *> &P : Symtab->getSymbols()) {
|
||||||
SymbolBody *B = P.second->Body;
|
SymbolBody *B = P.second->Body;
|
||||||
|
|
|
@ -320,7 +320,7 @@ void X86TargetInfo::writePltZeroEntry(uint8_t *Buf, uint64_t GotEntryAddr,
|
||||||
// separate procedure linkage tables.
|
// separate procedure linkage tables.
|
||||||
if (Config->Shared) {
|
if (Config->Shared) {
|
||||||
const uint8_t V[] = {
|
const uint8_t V[] = {
|
||||||
0xff, 0xb3, 0x04, 0x00, 0x00, 0x00, // pushl 4(%ebx
|
0xff, 0xb3, 0x04, 0x00, 0x00, 0x00, // pushl 4(%ebx)
|
||||||
0xff, 0xa3, 0x08, 0x00, 0x00, 0x00, // jmp *8(%ebx)
|
0xff, 0xa3, 0x08, 0x00, 0x00, 0x00, // jmp *8(%ebx)
|
||||||
0x90, 0x90, 0x90, 0x90 // nop;nop;nop;nop
|
0x90, 0x90, 0x90, 0x90 // nop;nop;nop;nop
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue