diff options
| -rw-r--r-- | lld/ELF/Driver.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/lld/ELF/Driver.cpp b/lld/ELF/Driver.cpp index 0c0e31ec714..fa121548e63 100644 --- a/lld/ELF/Driver.cpp +++ b/lld/ELF/Driver.cpp @@ -344,14 +344,15 @@ template <class ELFT> void LinkerDriver::link(opt::InputArgList &Args) { Config->Rela = ELFT::Is64Bits; if (Config->Entry.empty() && !Config->Shared && !Config->Relocatable && - Config->EMachine != EM_AMDGPU) + Config->EMachine != EM_AMDGPU) { // Add entry symbol. // // There is no entry symbol for AMDGPU binaries, so skip adding one to avoid // having and undefined symbol. Config->Entry = Config->EMachine == EM_MIPS ? "__start" : "_start"; + } - if (!Config->Relocatable) + if (!Config->Relocatable) { // In the assembly for 32 bit x86 the _GLOBAL_OFFSET_TABLE_ symbol // is magical and is used to produce a R_386_GOTPC relocation. // The R_386_GOTPC relocation value doesn't actually depend on the @@ -365,6 +366,7 @@ template <class ELFT> void LinkerDriver::link(opt::InputArgList &Args) { // Given that the symbol is effectively unused, we just create a dummy // hidden one to avoid the undefined symbol error. Symtab.addIgnored("_GLOBAL_OFFSET_TABLE_"); + } if (!Config->Entry.empty()) { // Set either EntryAddr (if S is a number) or EntrySym (otherwise). |

