mirror of
git://git.musl-libc.org/musl
synced 2024-12-15 19:25:55 +00:00
01ef3dd9c5
This adds complete aarch64 target support including bigendian subarch. Some of the long double math functions are known to be broken otherwise interfaces should be fully functional, but at this point consider this port experimental. Initial work on this port was done by Sireesh Tripurari and Kevin Bortis.
41 lines
737 B
C
41 lines
737 B
C
#include <string.h>
|
|
#include <elf.h>
|
|
#include <endian.h>
|
|
|
|
#if __BYTE_ORDER == __BIG_ENDIAN
|
|
#define ENDIAN_SUFFIX "_be"
|
|
#else
|
|
#define ENDIAN_SUFFIX ""
|
|
#endif
|
|
|
|
#define LDSO_ARCH "aarch64" ENDIAN_SUFFIX
|
|
|
|
#define NO_LEGACY_INITFINI
|
|
|
|
#define TPOFF_K 16
|
|
|
|
static int remap_rel(int type)
|
|
{
|
|
switch(type) {
|
|
case R_AARCH64_ABS64:
|
|
return REL_SYMBOLIC;
|
|
case R_AARCH64_GLOB_DAT:
|
|
return REL_GOT;
|
|
case R_AARCH64_JUMP_SLOT:
|
|
return REL_PLT;
|
|
case R_AARCH64_RELATIVE:
|
|
return REL_RELATIVE;
|
|
case R_AARCH64_COPY:
|
|
return REL_COPY;
|
|
case R_AARCH64_TLS_DTPMOD64:
|
|
return REL_DTPMOD;
|
|
case R_AARCH64_TLS_DTPREL64:
|
|
return REL_DTPOFF;
|
|
case R_AARCH64_TLS_TPREL64:
|
|
return REL_TPOFF;
|
|
case R_AARCH64_TLSDESC:
|
|
return REL_TLSDESC;
|
|
}
|
|
return 0;
|
|
}
|