summaryrefslogtreecommitdiffstats
path: root/mdk-stage1/dietlibc/libdl/_dl_rel.h
blob: 948aa5b792f6aa50023b33204ee3178fca0bc272 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#ifndef ___DL_REL_H__
#define ___DL_REL_H__

#if defined(__arm__) || defined(__i386__) || defined(__mips__)
/* this are REL only archs: arm, i386, mips */

#define _dl_rel_t	Elf_Rel
#define _DL_REL_T	DT_REL

#define _DL_REL_PLT(b,r)	(*(unsigned long*)((b)+(r)->r_offset)+=(unsigned long)(b))

#elif defined(__alpha__) || defined(__hppa__) || defined(__ppc__) || defined(__sparc__) || defined(__s390__)
/* this are RELA only archs: alpha, chris, hppa, ia64, m68k, ppc, sparc, sparc64, sh, s390 */

#define _dl_rel_t	Elf_Rela
#define _DL_REL_T	DT_RELA

#define _DL_REL_PLT(b,r)	(*(unsigned long*)((b)+(r)->r_offset)=(unsigned long)((b)+(r)->r_addend))

#else
/* there are no known linux supported arch with mixed relocation types ... */
#error "_dl_rel.h: NOT SUPPORTED"
#endif

#endif