summaryrefslogtreecommitdiff
path: root/ldso/ldso/powerpc/dl-startup.h
diff options
context:
space:
mode:
Diffstat (limited to 'ldso/ldso/powerpc/dl-startup.h')
-rw-r--r--ldso/ldso/powerpc/dl-startup.h8
1 files changed, 4 insertions, 4 deletions
diff --git a/ldso/ldso/powerpc/dl-startup.h b/ldso/ldso/powerpc/dl-startup.h
index 5d8073ccf..f8e14e0ba 100644
--- a/ldso/ldso/powerpc/dl-startup.h
+++ b/ldso/ldso/powerpc/dl-startup.h
@@ -38,15 +38,15 @@ asm("" \
Elf32_Addr finaladdr=(SYMBOL)+(RELP)->r_addend;\
if (type==R_PPC_RELATIVE) { \
*REL=(Elf32_Word)(LOAD)+(RELP)->r_addend;\
+ } else if (type==R_PPC_ADDR32 || type==R_PPC_GLOB_DAT) {\
+ *REL=finaladdr; \
} else if (type==R_PPC_JMP_SLOT) { \
Elf32_Sword delta=finaladdr-(Elf32_Word)(REL);\
*REL=OPCODE_B(delta); \
- } else if (type==R_PPC_ADDR32) { \
- *REL=finaladdr; \
+ PPC_DCBST(REL); PPC_SYNC; PPC_ICBI(REL);\
} else { \
- _dl_exit(100+ELF32_R_TYPE((RELP)->r_info)); \
+ _dl_exit(100+ELF32_R_TYPE((RELP)->r_info));\
} \
- PPC_DCBST(REL); PPC_SYNC; PPC_ICBI(REL); \
}
/*
* Transfer control to the user's application, once the dynamic loader