add sh fdpic subarch variants

with this commit it should be possible to produce a working
static-linked fdpic libc and application binaries for sh.

the changes in reloc.h are largely unused at this point since dynamic
linking is not supported, but the CRTJMP macro is used one place
outside of dynamic linking, in __unmapself.
This commit is contained in:
Rich Felker 2015-09-12 03:22:19 +00:00
parent 4ccc1a01e0
commit d4c82d05b8
2 changed files with 20 additions and 1 deletions

View File

@ -12,7 +12,13 @@
#define FP_SUFFIX "-nofpu"
#endif
#define LDSO_ARCH "sh" ENDIAN_SUFFIX FP_SUFFIX
#if __SH_FDPIC__
#define ABI_SUFFIX "-fdpic"
#else
#define ABI_SUFFIX ""
#endif
#define LDSO_ARCH "sh" ENDIAN_SUFFIX FP_SUFFIX ABI_SUFFIX
#define TPOFF_K 8
@ -26,5 +32,14 @@
#define REL_DTPOFF R_SH_TLS_DTPOFF32
#define REL_TPOFF R_SH_TLS_TPOFF32
#if __SH_FDPIC__
#define REL_FUNCDESC R_SH_FUNCDESC
#define REL_FUNCDESC_VAL R_SH_FUNCDESC_VALUE
#undef REL_RELATIVE
#define CRTJMP(pc,sp) __asm__ __volatile__( \
"mov.l @%0+,r0 ; mov.l @%0,r12 ; jmp @r0 ; mov %1,r15" \
: : "r"(pc), "r"(sp) : "r0", "memory" )
#else
#define CRTJMP(pc,sp) __asm__ __volatile__( \
"jmp @%0 ; mov %1,r15" : : "r"(pc), "r"(sp) : "memory" )
#endif

4
configure vendored
View File

@ -558,6 +558,10 @@ fi
else
SUBARCH=${SUBARCH}-nofpu
fi
if trycppif __SH_FDPIC__ "$t" ; then
SUBARCH=${SUBARCH}-fdpic
shared=no
fi
fi
test "$SUBARCH" \