forked from OSchip/llvm-project
[ELF][MIPS] Add comments to describe __gnu_local_gp magic symbol
NFC. Follow-up to r259781. llvm-svn: 260027
This commit is contained in:
parent
ece55b045b
commit
b76108a63a
|
@ -325,9 +325,12 @@ template <class ELFT> void LinkerDriver::link(opt::InputArgList &Args) {
|
|||
|
||||
if (Config->EMachine == EM_MIPS) {
|
||||
// On MIPS O32 ABI, _gp_disp is a magic symbol designates offset between
|
||||
// start of function and gp pointer into GOT. Use 'strong' variant of
|
||||
// the addIgnored to prevent '_gp_disp' substitution.
|
||||
// start of function and 'gp' pointer into GOT.
|
||||
Config->MipsGpDisp = Symtab.addIgnored("_gp_disp");
|
||||
// The __gnu_local_gp is a magic symbol equal to the current value of 'gp'
|
||||
// pointer. This symbol is used in the code generated by .cpload pseudo-op
|
||||
// in case of using -mno-shared option.
|
||||
// https://sourceware.org/ml/binutils/2004-12/msg00094.html
|
||||
Config->MipsLocalGp = Symtab.addIgnored("__gnu_local_gp");
|
||||
|
||||
// Define _gp for MIPS. st_value of _gp symbol will be updated by Writer
|
||||
|
|
|
@ -397,8 +397,9 @@ void Writer<ELFT>::scanRelocs(
|
|||
// linking only.
|
||||
continue;
|
||||
if (Body == Config->MipsGpDisp || Body == Config->MipsLocalGp)
|
||||
// MIPS _gp_disp designates offset between start of function and gp
|
||||
// pointer into GOT therefore any relocations against it do not require
|
||||
// MIPS _gp_disp designates offset between start of function and 'gp'
|
||||
// pointer into GOT. __gnu_local_gp is equal to the current value of
|
||||
// the 'gp'. Therefore any relocations against them do not require
|
||||
// dynamic relocation.
|
||||
continue;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue