powerpc: modules implement R_PPC64_TOCSAVE relocation.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
This commit is contained in:
Rusty Russell 2014-03-18 17:36:28 +10:30 committed by Anton Blanchard
parent 0e60e46e2a
commit d247da0a8e
2 changed files with 12 additions and 1 deletions

View File

@ -291,9 +291,12 @@ do { \
#define R_PPC64_DTPREL16_HIGHERA 104 /* half16 (sym+add)@dtprel@highera */
#define R_PPC64_DTPREL16_HIGHEST 105 /* half16 (sym+add)@dtprel@highest */
#define R_PPC64_DTPREL16_HIGHESTA 106 /* half16 (sym+add)@dtprel@highesta */
#define R_PPC64_TLSGD 107
#define R_PPC64_TLSLD 108
#define R_PPC64_TOCSAVE 109
/* Keep this the last entry. */
#define R_PPC64_NUM 107
#define R_PPC64_NUM 110
/* There's actually a third entry here, but it's unused */
struct ppc64_opd_entry

View File

@ -454,6 +454,14 @@ int apply_relocate_add(Elf64_Shdr *sechdrs,
*location = value - (unsigned long)location;
break;
case R_PPC64_TOCSAVE:
/*
* Marker reloc indicates we don't have to save r2.
* That would only save us one instruction, so ignore
* it.
*/
break;
default:
printk("%s: Unknown ADD relocation: %lu\n",
me->name,