|
Message-Id: <20240506180112.1045944-1-jcmvbkbc@gmail.com> Date: Mon, 6 May 2024 11:01:11 -0700 From: Max Filippov <jcmvbkbc@...il.com> To: musl@...ts.openwall.com Cc: Rich Felker <dalias@...c.org>, Max Filippov <jcmvbkbc@...il.com> Subject: [RFC v3 0/1] xtensa FDPIC port Hello, this is the third RFC version of the xtensa FDPIC port for musl. It corresponds to the xtensa FDPIC ABI specification version 1 available here: https://github.com/jcmvbkbc/xtensa-abi/blob/master/fdpic-xtensa.txt The following binutils and gcc can be used to build the xtensa-linux-muslfdpic toolchain: https://github.com/jcmvbkbc/binutils-gdb-xtensa tag xtensa-fdpic-abi-spec-1.2 https://github.com/jcmvbkbc/gcc-xtensa tag xtensa-fdpic-abi-spec-1.2 I've tested this version with libc-test using QEMU linux-user and full system emulation. The results in the linux-user are the following: FAIL src/functional/pthread_mutex_pi-static.exe [status 1] FAIL src/functional/pthread_mutex_pi.exe [status 1] FAIL src/functional/pthread_robust-static.exe [timed out] FAIL src/functional/pthread_robust.exe [timed out] FAIL src/functional/strptime-static.exe [status 1] FAIL src/functional/strptime.exe [status 1] FAIL src/math/acoshl.exe [status 1] FAIL src/math/asinhl.exe [status 1] FAIL src/math/erfcl.exe [status 1] FAIL src/math/fma.exe [status 1] FAIL src/math/fmal.exe [status 1] FAIL src/math/lgammal.exe [status 1] FAIL src/math/tgammal.exe [status 1] FAIL src/regression/pthread-robust-detach-static.exe [status 1] FAIL src/regression/pthread-robust-detach.exe [status 1] functional/ and regression/ pthread-related failures are expected because PI mutexes and robust list functions are not available in the linux-user mode. These particular tests pass in full system emulation. math tests fail with ULP differences. Max Filippov (1): xtensa: add port arch/xtensa/arch.mak | 1 + arch/xtensa/atomic_arch.h | 25 ++ arch/xtensa/bits/alltypes.h.in | 27 ++ arch/xtensa/bits/float.h | 16 + arch/xtensa/bits/ioctl.h | 219 ++++++++++++++ arch/xtensa/bits/ipcstat.h | 1 + arch/xtensa/bits/limits.h | 1 + arch/xtensa/bits/mman.h | 20 ++ arch/xtensa/bits/msg.h | 27 ++ arch/xtensa/bits/poll.h | 3 + arch/xtensa/bits/posix.h | 2 + arch/xtensa/bits/reg.h | 2 + arch/xtensa/bits/sem.h | 22 ++ arch/xtensa/bits/setjmp.h | 1 + arch/xtensa/bits/shm.h | 29 ++ arch/xtensa/bits/signal.h | 92 ++++++ arch/xtensa/bits/stat.h | 23 ++ arch/xtensa/bits/stdint.h | 20 ++ arch/xtensa/bits/syscall.h.in | 407 ++++++++++++++++++++++++++ arch/xtensa/bits/user.h | 4 + arch/xtensa/crt_arch.h | 47 +++ arch/xtensa/kstat.h | 18 ++ arch/xtensa/pthread_arch.h | 11 + arch/xtensa/reloc.h | 32 ++ arch/xtensa/syscall_arch.h | 104 +++++++ configure | 8 + crt/xtensa/crti.S | 23 ++ crt/xtensa/crtn.S | 15 + include/elf.h | 74 +++++ src/internal/xtensa/syscall.s | 14 + src/ldso/xtensa/dlsym.s | 7 + src/ldso/xtensa/dlsym_time64.S | 3 + src/ldso/xtensa/tlsdesc.s | 25 ++ src/process/xtensa/vfork.s | 15 + src/setjmp/xtensa/longjmp.s | 18 ++ src/setjmp/xtensa/setjmp.s | 21 ++ src/signal/xtensa/restore.s | 10 + src/signal/xtensa/sigsetjmp.s | 22 ++ src/thread/xtensa/__set_thread_area.c | 9 + src/thread/xtensa/__unmapself.s | 9 + src/thread/xtensa/clone.S | 42 +++ src/thread/xtensa/syscall_cp.s | 34 +++ 42 files changed, 1503 insertions(+) create mode 100644 arch/xtensa/arch.mak create mode 100644 arch/xtensa/atomic_arch.h create mode 100644 arch/xtensa/bits/alltypes.h.in create mode 100644 arch/xtensa/bits/float.h create mode 100644 arch/xtensa/bits/ioctl.h create mode 100644 arch/xtensa/bits/ipcstat.h create mode 100644 arch/xtensa/bits/limits.h create mode 100644 arch/xtensa/bits/mman.h create mode 100644 arch/xtensa/bits/msg.h create mode 100644 arch/xtensa/bits/poll.h create mode 100644 arch/xtensa/bits/posix.h create mode 100644 arch/xtensa/bits/reg.h create mode 100644 arch/xtensa/bits/sem.h create mode 100644 arch/xtensa/bits/setjmp.h create mode 100644 arch/xtensa/bits/shm.h create mode 100644 arch/xtensa/bits/signal.h create mode 100644 arch/xtensa/bits/stat.h create mode 100644 arch/xtensa/bits/stdint.h create mode 100644 arch/xtensa/bits/syscall.h.in create mode 100644 arch/xtensa/bits/user.h create mode 100644 arch/xtensa/crt_arch.h create mode 100644 arch/xtensa/kstat.h create mode 100644 arch/xtensa/pthread_arch.h create mode 100644 arch/xtensa/reloc.h create mode 100644 arch/xtensa/syscall_arch.h create mode 100644 crt/xtensa/crti.S create mode 100644 crt/xtensa/crtn.S create mode 100644 src/internal/xtensa/syscall.s create mode 100644 src/ldso/xtensa/dlsym.s create mode 100644 src/ldso/xtensa/dlsym_time64.S create mode 100644 src/ldso/xtensa/tlsdesc.s create mode 100644 src/process/xtensa/vfork.s create mode 100644 src/setjmp/xtensa/longjmp.s create mode 100644 src/setjmp/xtensa/setjmp.s create mode 100644 src/signal/xtensa/restore.s create mode 100644 src/signal/xtensa/sigsetjmp.s create mode 100644 src/thread/xtensa/__set_thread_area.c create mode 100644 src/thread/xtensa/__unmapself.s create mode 100644 src/thread/xtensa/clone.S create mode 100644 src/thread/xtensa/syscall_cp.s -- 2.39.2
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.