Date: Mon, 9 Mar 2015 19:50:58 +0100 From: Szabolcs Nagy <nsz@...t70.net> To: musl@...ts.openwall.com Subject: aarch64 port attached patch adds aarch64 support tested on foundation model + linaro rootfs, there are some issues still: dynlink should work, relocs lisghtly tested, but vdso does not work yet (at least i see clock_gettime syscalls in strace) __syscall_cp_asm i used "cbnz w0,__cancel", that is "compare and branch on nonzero" but it has a +-1M limit on the jump is that ok? __tlsdesc_dynamic needs to access dtv for which the asm needs sizeof(struct pthread) so we may want to add the dtv at the end of pthread struct too syscall.h is aarch64 only syscalls ok here or do we want a generic 32bit+64bit syscall header like kernel has now for new archs? socket.h needs __BYTE_ORDER workarounds, not tested on bigendian i think i need to include endian.h somewhere i think this should be ok but not tested on bigendian ioctl.h may needs some further checks i removed TCGETS2,etc which used struct termios2 atomic.h a_crash probably should be a single instruction a_spin is probably fine but pthread_spin* could be improved signal.h, user.h exposes ucontext stuff which uses __attribute__((aligned(16))) (can be fixed with manual padding i guess, i just copied the kernel sigcontext) and fpregset_t uses __uint128_t (for ld128 float registers). if we decide that __uint128 is ok for platforms with 128 bit long double then i'll change internal/libm.h etc to avoid the ugly endian dependent bithacks long double: printf/scanf/.. should work but some math functions are missing/broken now, there is an exp2l patch that is needed before this one to make things compile generic issues (affect other archs too): sigsetjmp.h sigprocmask vs pthread_sigmask: the only difference is errno i dont see errno requirement for sigsetjmp so pthread_sigmask should be ok? reg.h sys/reg.h seems to be x86 only (and m68k) in glibc, so probably it should be left empty.. shm.h shminfo should be under _GNU_SOURCE according to the manual: http://man7.org/linux/man-pages/man2/shmctl.2.html however shm* is reserved namespace for sys/shm.h (i used _GNU_SOURCE in aarch64, others lack it) termios.h i havent tested this much but kernel NCCS 32 vs 19 we use in various archs seems inconsistent View attachment "0001-add-aarch64-port.patch" of type "text/x-diff" (72744 bytes)
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.