diff options
Diffstat (limited to 'trunk/src/ld-libs.c')
-rw-r--r-- | trunk/src/ld-libs.c | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/trunk/src/ld-libs.c b/trunk/src/ld-libs.c index df2bfc6..c84cbb0 100644 --- a/trunk/src/ld-libs.c +++ b/trunk/src/ld-libs.c @@ -173,10 +173,18 @@ reloc_type_class (int type, int machine) } case EM_MIPS: - /* MIPS lazy resolution stubs are local to the containing object, - so SHN_UNDEF symbols never participate in symbol lookup. */ - return ELF_RTYPE_CLASS_PLT; - + switch (type) + { + case R_MIPS_COPY: + return ELF_RTYPE_CLASS_COPY; + case R_MIPS_JUMP_SLOT: + case R_MIPS_TLS_DTPMOD32: + case R_MIPS_TLS_DTPREL32: + case R_MIPS_TLS_TPREL32: + return ELF_RTYPE_CLASS_PLT; + default: + return 0; + } default: printf ("Unknown architecture!\n"); exit (1); |