1*c9945492SAndroid Build Coastguard Worker #define LDSO_ARCH "or1k" 2*c9945492SAndroid Build Coastguard Worker 3*c9945492SAndroid Build Coastguard Worker #define TPOFF_K 0 4*c9945492SAndroid Build Coastguard Worker 5*c9945492SAndroid Build Coastguard Worker #define REL_SYMBOLIC R_OR1K_32 6*c9945492SAndroid Build Coastguard Worker #define REL_GOT R_OR1K_GLOB_DAT 7*c9945492SAndroid Build Coastguard Worker #define REL_PLT R_OR1K_JMP_SLOT 8*c9945492SAndroid Build Coastguard Worker #define REL_RELATIVE R_OR1K_RELATIVE 9*c9945492SAndroid Build Coastguard Worker #define REL_COPY R_OR1K_COPY 10*c9945492SAndroid Build Coastguard Worker #define REL_DTPMOD R_OR1K_TLS_DTPMOD 11*c9945492SAndroid Build Coastguard Worker #define REL_DTPOFF R_OR1K_TLS_DTPOFF 12*c9945492SAndroid Build Coastguard Worker #define REL_TPOFF R_OR1K_TLS_TPOFF 13*c9945492SAndroid Build Coastguard Worker 14*c9945492SAndroid Build Coastguard Worker #define CRTJMP(pc,sp) __asm__ __volatile__( \ 15*c9945492SAndroid Build Coastguard Worker "l.jr %0 ; l.ori r1,%1,0" : : "r"(pc), "r"(sp) : "memory" ) 16*c9945492SAndroid Build Coastguard Worker 17*c9945492SAndroid Build Coastguard Worker #define GETFUNCSYM(fp, sym, got) __asm__ ( \ 18*c9945492SAndroid Build Coastguard Worker ".hidden " #sym " \n" \ 19*c9945492SAndroid Build Coastguard Worker " l.jal 1f \n" \ 20*c9945492SAndroid Build Coastguard Worker " l.nop \n" \ 21*c9945492SAndroid Build Coastguard Worker " .word " #sym "-. \n" \ 22*c9945492SAndroid Build Coastguard Worker "1: l.lwz %0, 0(r9) \n" \ 23*c9945492SAndroid Build Coastguard Worker " l.add %0, %0, r9 \n" \ 24*c9945492SAndroid Build Coastguard Worker : "=r"(*(fp)) : : "memory", "r9" ) 25