[PATCH v4 00/15] glibc port to ARC processors
Vineet Gupta
Vineet.Gupta1@synopsys.com
Fri Mar 13 03:04:04 GMT 2020
Hi,
This patchset implements glibc port to ARC HS48x processor from Synopsys.
It is based on 64-time time and offset work by Alistair and others.
Thank you guys for all the hard-work.
Code
-----
git@github.com:foss-for-synopsys-dwc-arc-processors/glibc.git #arc-glibc-upstream
v4:
* Dropped 1/17: Merged upstream
* Dropped 17/17:
- 64-bit time/offset code chunked up into respective patches
* sysctl removed
* Updated README for arc gnu triplet
* Updated install files for ARC gcc/binutils requirements
* Updated NEWS with brief ISA/ABI info
v3:
* Support for Hardware Floating Point
* 64-bit time and offsets ABI (although all such changes are confined
to a single patch)
v3: https://sourceware.org/legacy-ml/libc-alpha/2020-03/msg00167.html
v2: https://sourceware.org/legacy-ml/libc-alpha/2019-01/msg00681.html
v1: https://sourceware.org/legacy-ml/libc-alpha/2018-12/msg00678.html
Documentation:
--------------
(a) ABI doc:
https://github.com/foss-for-synopsys-dwc-arc-processors/toolchain/wiki/files/ARCv2_ABI.pdf
(b) Programmer's Reference Manual (PRM) : needs a download request to be filled
https://www.synopsys.com/dw/ipdir.php?ds=arc-hs44-hs46-hs48
https://www.synopsys.com/dw/doc.php/ds/cc/programmers-reference-manual-ARC-HS.pdf
Test Results:
--------------
(a) build-many-glibcs.py
| Summary of test results:
| 1251 PASS
| 15 XFAIL
(b) Full testsuite ran in a cross compile setup using buildroot on HSDK development
platform. Bulk of failures come from cross testing setup and I
intend to improve things with native testing going forward.
We have 4 old container tests passing, thx to DJ Delorie's insights.
But the 3 sysv ipc tests are failing likely from generic 64-bit changes in flight
which will come to resolution as things settle down.
| Summary of test results:
| 29 FAIL # compared to prev run: +4 pass, -3 fail
|
| PASS: elf/tst-dlopen-self-container
| PASS: elf/tst-dlopen-tlsmodid-container
| PASS: elf/tst-ldconfig-bad-aux-cache
| PASS: elf/tst-pldd
|
| FAIL: elf/tst-ldconfig-ld_so_conf-update # not true: dlopen
| FAIL: iconv/test-iconvconfig # Needs gconv installed
| FAIL: io/ftwtest # Requires execution by non-root
| FAIL: io/tst-lockf
| FAIL: libio/tst-wfile-sync
| FAIL: nptl/test-cond-printers # needs Python3 and target GDB on target
| FAIL: nptl/test-condattr-printers # ditto
| FAIL: nptl/test-mutex-printers # ditto
| FAIL: nptl/test-mutexattr-printers # ditto
| FAIL: nptl/test-rwlock-printers # ditto
| FAIL: nptl/test-rwlockattr-printers # ditto
| FAIL: nptl/tst-pthread-getattr # Cannot create testroot lock.
| FAIL: nptl/tst-umask1 # passes if run natively on target (NFS ACLv3 support needed)
| FAIL: nss/bug-erange
| FAIL: nss/tst-nss-db-endgrent # Cannot create testroot lock.
| FAIL: nss/tst-nss-db-endpwent # ditto
| FAIL: nss/tst-nss-files-hosts-long # ditto
| FAIL: nss/tst-nss-test3 # ditto
| FAIL: nss/tst-nss-files-hosts-getent # Timed out
| FAIL: nss/tst-nss-files-hosts-multi # Timed out
| FAIL: posix/bug-ga2 # DNS issue: google DNS vs. SNPS
| FAIL: posix/globtest # require same user on target and host
| FAIL: posix/tst-getaddrinfo5 # passes outside corporate network
| FAIL: stdio-common/bug22 # Needs more RAM: 2 GB memory
| FAIL: sunrpc/bug20790 # missing cpp on target
| FAIL: timezone/tst-tzset # passes outside corporate network
kindly review.
Thx,
-Vineet
Vineet Gupta (15):
ARC: add definitions to elf/elf.h
ARC: ABI Implementation
ARC: startup and dynamic linking code
ARC: Thread Local Storage support
ARC: Atomics and Locking primitives
ARC: math soft float support
ARC: hardware floating point support
ARC: Linux Syscall Interface
ARC: Linux ABI
ARC: Linux Startup and Dynamic Loading
ARC: ABI lists
ARC: Update syscall-names.list for ARC specific syscalls
ARC: Build Infrastructure
build-many-glibcs.py: Enable ARC builds
Documentation for ARC port
NEWS | 11 +
README | 1 +
elf/elf.h | 70 +-
manual/install.texi | 5 +
scripts/build-many-glibcs.py | 7 +
sysdeps/arc/Implies | 3 +
sysdeps/arc/Makefile | 25 +
sysdeps/arc/Versions | 6 +
sysdeps/arc/__longjmp.S | 50 +
sysdeps/arc/abort-instr.h | 2 +
sysdeps/arc/atomic-machine.h | 73 +
sysdeps/arc/bits/endianness.h | 15 +
sysdeps/arc/bits/fenv.h | 77 +
sysdeps/arc/bits/link.h | 52 +
sysdeps/arc/bits/setjmp.h | 26 +
sysdeps/arc/bsd-_setjmp.S | 1 +
sysdeps/arc/bsd-setjmp.S | 1 +
sysdeps/arc/configure | 14 +
sysdeps/arc/configure.ac | 11 +
sysdeps/arc/dl-machine.h | 340 +++
sysdeps/arc/dl-runtime.c | 39 +
sysdeps/arc/dl-sysdep.h | 25 +
sysdeps/arc/dl-tls.h | 30 +
sysdeps/arc/dl-trampoline.S | 80 +
sysdeps/arc/entry.h | 5 +
sysdeps/arc/fpu/e_sqrt.c | 27 +
sysdeps/arc/fpu/e_sqrtf.c | 27 +
sysdeps/arc/fpu/fclrexcpt.c | 36 +
sysdeps/arc/fpu/fegetenv.c | 37 +
sysdeps/arc/fpu/fegetmode.c | 31 +
sysdeps/arc/fpu/fegetround.c | 32 +
sysdeps/arc/fpu/feholdexcpt.c | 43 +
sysdeps/arc/fpu/fesetenv.c | 48 +
sysdeps/arc/fpu/fesetexcept.c | 32 +
sysdeps/arc/fpu/fesetmode.c | 41 +
sysdeps/arc/fpu/fesetround.c | 39 +
sysdeps/arc/fpu/feupdateenv.c | 46 +
sysdeps/arc/fpu/fgetexcptflg.c | 31 +
sysdeps/arc/fpu/fraiseexcpt.c | 39 +
sysdeps/arc/fpu/fsetexcptflg.c | 38 +
sysdeps/arc/fpu/ftestexcept.c | 33 +
sysdeps/arc/fpu/libm-test-ulps | 1703 ++++++++++++++
sysdeps/arc/fpu/libm-test-ulps-name | 1 +
sysdeps/arc/fpu/s_fma.c | 28 +
sysdeps/arc/fpu/s_fmaf.c | 28 +
sysdeps/arc/fpu_control.h | 101 +
sysdeps/arc/gccframe.h | 21 +
sysdeps/arc/get-rounding-mode.h | 38 +
sysdeps/arc/gmp-mparam.h | 23 +
sysdeps/arc/jmpbuf-offsets.h | 47 +
sysdeps/arc/jmpbuf-unwind.h | 47 +
sysdeps/arc/ldsodefs.h | 43 +
sysdeps/arc/libc-tls.c | 27 +
sysdeps/arc/machine-gmon.h | 35 +
sysdeps/arc/math-tests-trap.h | 27 +
sysdeps/arc/memusage.h | 23 +
sysdeps/arc/nofpu/Implies | 1 +
sysdeps/arc/nofpu/libm-test-ulps | 390 +++
sysdeps/arc/nofpu/libm-test-ulps-name | 1 +
sysdeps/arc/nofpu/math-tests-exceptions.h | 27 +
sysdeps/arc/nofpu/math-tests-rounding.h | 27 +
sysdeps/arc/nptl/Makefile | 22 +
sysdeps/arc/nptl/bits/semaphore.h | 32 +
sysdeps/arc/nptl/pthreaddef.h | 32 +
sysdeps/arc/nptl/tcb-offsets.sym | 11 +
sysdeps/arc/nptl/tls.h | 150 ++
sysdeps/arc/preconfigure | 15 +
sysdeps/arc/setjmp.S | 66 +
sysdeps/arc/sfp-machine.h | 73 +
sysdeps/arc/sotruss-lib.c | 51 +
sysdeps/arc/stackinfo.h | 33 +
sysdeps/arc/start.S | 74 +
sysdeps/arc/sysdep.h | 48 +
sysdeps/arc/tininess.h | 1 +
sysdeps/arc/tls-macros.h | 47 +
sysdeps/arc/tst-audit.h | 23 +
sysdeps/unix/sysv/linux/arc/Implies | 3 +
sysdeps/unix/sysv/linux/arc/Makefile | 20 +
sysdeps/unix/sysv/linux/arc/Versions | 16 +
sysdeps/unix/sysv/linux/arc/arch-syscall.h | 317 +++
sysdeps/unix/sysv/linux/arc/bits/procfs.h | 35 +
.../sysv/linux/arc/bits/socket-constants.h | 38 +
sysdeps/unix/sysv/linux/arc/bits/timesize.h | 21 +
.../sysv/linux/arc/bits/types/__sigset_t.h | 12 +
sysdeps/unix/sysv/linux/arc/c++-types.data | 67 +
sysdeps/unix/sysv/linux/arc/clone.S | 98 +
sysdeps/unix/sysv/linux/arc/configure | 4 +
sysdeps/unix/sysv/linux/arc/configure.ac | 4 +
sysdeps/unix/sysv/linux/arc/dl-static.c | 84 +
sysdeps/unix/sysv/linux/arc/getcontext.S | 63 +
sysdeps/unix/sysv/linux/arc/jmp_buf-macros.h | 6 +
sysdeps/unix/sysv/linux/arc/kernel-features.h | 28 +
sysdeps/unix/sysv/linux/arc/kernel_stat.h | 26 +
sysdeps/unix/sysv/linux/arc/ld.abilist | 5 +
sysdeps/unix/sysv/linux/arc/ldsodefs.h | 32 +
.../sysv/linux/arc/libBrokenLocale.abilist | 1 +
sysdeps/unix/sysv/linux/arc/libanl.abilist | 4 +
sysdeps/unix/sysv/linux/arc/libc.abilist | 2082 +++++++++++++++++
sysdeps/unix/sysv/linux/arc/libcrypt.abilist | 2 +
sysdeps/unix/sysv/linux/arc/libdl.abilist | 9 +
sysdeps/unix/sysv/linux/arc/libm.abilist | 699 ++++++
.../unix/sysv/linux/arc/libpthread.abilist | 217 ++
sysdeps/unix/sysv/linux/arc/libresolv.abilist | 79 +
sysdeps/unix/sysv/linux/arc/librt.abilist | 35 +
.../unix/sysv/linux/arc/libthread_db.abilist | 40 +
sysdeps/unix/sysv/linux/arc/libutil.abilist | 6 +
sysdeps/unix/sysv/linux/arc/localplt.data | 12 +
sysdeps/unix/sysv/linux/arc/makecontext.c | 75 +
sysdeps/unix/sysv/linux/arc/mmap_internal.h | 27 +
sysdeps/unix/sysv/linux/arc/pt-vfork.S | 1 +
sysdeps/unix/sysv/linux/arc/setcontext.S | 92 +
sysdeps/unix/sysv/linux/arc/shlib-versions | 2 +
sysdeps/unix/sysv/linux/arc/sigaction.c | 31 +
sysdeps/unix/sysv/linux/arc/sigcontextinfo.h | 28 +
sysdeps/unix/sysv/linux/arc/sigrestorer.S | 29 +
sysdeps/unix/sysv/linux/arc/swapcontext.S | 92 +
sysdeps/unix/sysv/linux/arc/sys/cachectl.h | 36 +
sysdeps/unix/sysv/linux/arc/sys/ucontext.h | 63 +
sysdeps/unix/sysv/linux/arc/sys/user.h | 31 +
sysdeps/unix/sysv/linux/arc/syscall.S | 38 +
sysdeps/unix/sysv/linux/arc/syscalls.list | 3 +
sysdeps/unix/sysv/linux/arc/sysctl.mk | 1 +
sysdeps/unix/sysv/linux/arc/sysdep.c | 33 +
sysdeps/unix/sysv/linux/arc/sysdep.h | 219 ++
sysdeps/unix/sysv/linux/arc/ucontext-macros.h | 29 +
sysdeps/unix/sysv/linux/arc/ucontext_i.sym | 20 +
sysdeps/unix/sysv/linux/arc/vfork.S | 42 +
sysdeps/unix/sysv/linux/syscall-names.list | 3 +
128 files changed, 9824 insertions(+), 1 deletion(-)
create mode 100644 sysdeps/arc/Implies
create mode 100644 sysdeps/arc/Makefile
create mode 100644 sysdeps/arc/Versions
create mode 100644 sysdeps/arc/__longjmp.S
create mode 100644 sysdeps/arc/abort-instr.h
create mode 100644 sysdeps/arc/atomic-machine.h
create mode 100644 sysdeps/arc/bits/endianness.h
create mode 100644 sysdeps/arc/bits/fenv.h
create mode 100644 sysdeps/arc/bits/link.h
create mode 100644 sysdeps/arc/bits/setjmp.h
create mode 100644 sysdeps/arc/bsd-_setjmp.S
create mode 100644 sysdeps/arc/bsd-setjmp.S
create mode 100644 sysdeps/arc/configure
create mode 100644 sysdeps/arc/configure.ac
create mode 100644 sysdeps/arc/dl-machine.h
create mode 100644 sysdeps/arc/dl-runtime.c
create mode 100644 sysdeps/arc/dl-sysdep.h
create mode 100644 sysdeps/arc/dl-tls.h
create mode 100644 sysdeps/arc/dl-trampoline.S
create mode 100644 sysdeps/arc/entry.h
create mode 100644 sysdeps/arc/fpu/e_sqrt.c
create mode 100644 sysdeps/arc/fpu/e_sqrtf.c
create mode 100644 sysdeps/arc/fpu/fclrexcpt.c
create mode 100644 sysdeps/arc/fpu/fegetenv.c
create mode 100644 sysdeps/arc/fpu/fegetmode.c
create mode 100644 sysdeps/arc/fpu/fegetround.c
create mode 100644 sysdeps/arc/fpu/feholdexcpt.c
create mode 100644 sysdeps/arc/fpu/fesetenv.c
create mode 100644 sysdeps/arc/fpu/fesetexcept.c
create mode 100644 sysdeps/arc/fpu/fesetmode.c
create mode 100644 sysdeps/arc/fpu/fesetround.c
create mode 100644 sysdeps/arc/fpu/feupdateenv.c
create mode 100644 sysdeps/arc/fpu/fgetexcptflg.c
create mode 100644 sysdeps/arc/fpu/fraiseexcpt.c
create mode 100644 sysdeps/arc/fpu/fsetexcptflg.c
create mode 100644 sysdeps/arc/fpu/ftestexcept.c
create mode 100644 sysdeps/arc/fpu/libm-test-ulps
create mode 100644 sysdeps/arc/fpu/libm-test-ulps-name
create mode 100644 sysdeps/arc/fpu/s_fma.c
create mode 100644 sysdeps/arc/fpu/s_fmaf.c
create mode 100644 sysdeps/arc/fpu_control.h
create mode 100644 sysdeps/arc/gccframe.h
create mode 100644 sysdeps/arc/get-rounding-mode.h
create mode 100644 sysdeps/arc/gmp-mparam.h
create mode 100644 sysdeps/arc/jmpbuf-offsets.h
create mode 100644 sysdeps/arc/jmpbuf-unwind.h
create mode 100644 sysdeps/arc/ldsodefs.h
create mode 100644 sysdeps/arc/libc-tls.c
create mode 100644 sysdeps/arc/machine-gmon.h
create mode 100644 sysdeps/arc/math-tests-trap.h
create mode 100644 sysdeps/arc/memusage.h
create mode 100644 sysdeps/arc/nofpu/Implies
create mode 100644 sysdeps/arc/nofpu/libm-test-ulps
create mode 100644 sysdeps/arc/nofpu/libm-test-ulps-name
create mode 100644 sysdeps/arc/nofpu/math-tests-exceptions.h
create mode 100644 sysdeps/arc/nofpu/math-tests-rounding.h
create mode 100644 sysdeps/arc/nptl/Makefile
create mode 100644 sysdeps/arc/nptl/bits/semaphore.h
create mode 100644 sysdeps/arc/nptl/pthreaddef.h
create mode 100644 sysdeps/arc/nptl/tcb-offsets.sym
create mode 100644 sysdeps/arc/nptl/tls.h
create mode 100644 sysdeps/arc/preconfigure
create mode 100644 sysdeps/arc/setjmp.S
create mode 100644 sysdeps/arc/sfp-machine.h
create mode 100644 sysdeps/arc/sotruss-lib.c
create mode 100644 sysdeps/arc/stackinfo.h
create mode 100644 sysdeps/arc/start.S
create mode 100644 sysdeps/arc/sysdep.h
create mode 100644 sysdeps/arc/tininess.h
create mode 100644 sysdeps/arc/tls-macros.h
create mode 100644 sysdeps/arc/tst-audit.h
create mode 100644 sysdeps/unix/sysv/linux/arc/Implies
create mode 100644 sysdeps/unix/sysv/linux/arc/Makefile
create mode 100644 sysdeps/unix/sysv/linux/arc/Versions
create mode 100644 sysdeps/unix/sysv/linux/arc/arch-syscall.h
create mode 100644 sysdeps/unix/sysv/linux/arc/bits/procfs.h
create mode 100644 sysdeps/unix/sysv/linux/arc/bits/socket-constants.h
create mode 100644 sysdeps/unix/sysv/linux/arc/bits/timesize.h
create mode 100644 sysdeps/unix/sysv/linux/arc/bits/types/__sigset_t.h
create mode 100644 sysdeps/unix/sysv/linux/arc/c++-types.data
create mode 100644 sysdeps/unix/sysv/linux/arc/clone.S
create mode 100644 sysdeps/unix/sysv/linux/arc/configure
create mode 100644 sysdeps/unix/sysv/linux/arc/configure.ac
create mode 100644 sysdeps/unix/sysv/linux/arc/dl-static.c
create mode 100644 sysdeps/unix/sysv/linux/arc/getcontext.S
create mode 100644 sysdeps/unix/sysv/linux/arc/jmp_buf-macros.h
create mode 100644 sysdeps/unix/sysv/linux/arc/kernel-features.h
create mode 100644 sysdeps/unix/sysv/linux/arc/kernel_stat.h
create mode 100644 sysdeps/unix/sysv/linux/arc/ld.abilist
create mode 100644 sysdeps/unix/sysv/linux/arc/ldsodefs.h
create mode 100644 sysdeps/unix/sysv/linux/arc/libBrokenLocale.abilist
create mode 100644 sysdeps/unix/sysv/linux/arc/libanl.abilist
create mode 100644 sysdeps/unix/sysv/linux/arc/libc.abilist
create mode 100644 sysdeps/unix/sysv/linux/arc/libcrypt.abilist
create mode 100644 sysdeps/unix/sysv/linux/arc/libdl.abilist
create mode 100644 sysdeps/unix/sysv/linux/arc/libm.abilist
create mode 100644 sysdeps/unix/sysv/linux/arc/libpthread.abilist
create mode 100644 sysdeps/unix/sysv/linux/arc/libresolv.abilist
create mode 100644 sysdeps/unix/sysv/linux/arc/librt.abilist
create mode 100644 sysdeps/unix/sysv/linux/arc/libthread_db.abilist
create mode 100644 sysdeps/unix/sysv/linux/arc/libutil.abilist
create mode 100644 sysdeps/unix/sysv/linux/arc/localplt.data
create mode 100644 sysdeps/unix/sysv/linux/arc/makecontext.c
create mode 100644 sysdeps/unix/sysv/linux/arc/mmap_internal.h
create mode 100644 sysdeps/unix/sysv/linux/arc/pt-vfork.S
create mode 100644 sysdeps/unix/sysv/linux/arc/setcontext.S
create mode 100644 sysdeps/unix/sysv/linux/arc/shlib-versions
create mode 100644 sysdeps/unix/sysv/linux/arc/sigaction.c
create mode 100644 sysdeps/unix/sysv/linux/arc/sigcontextinfo.h
create mode 100644 sysdeps/unix/sysv/linux/arc/sigrestorer.S
create mode 100644 sysdeps/unix/sysv/linux/arc/swapcontext.S
create mode 100644 sysdeps/unix/sysv/linux/arc/sys/cachectl.h
create mode 100644 sysdeps/unix/sysv/linux/arc/sys/ucontext.h
create mode 100644 sysdeps/unix/sysv/linux/arc/sys/user.h
create mode 100644 sysdeps/unix/sysv/linux/arc/syscall.S
create mode 100644 sysdeps/unix/sysv/linux/arc/syscalls.list
create mode 100644 sysdeps/unix/sysv/linux/arc/sysctl.mk
create mode 100644 sysdeps/unix/sysv/linux/arc/sysdep.c
create mode 100644 sysdeps/unix/sysv/linux/arc/sysdep.h
create mode 100644 sysdeps/unix/sysv/linux/arc/ucontext-macros.h
create mode 100644 sysdeps/unix/sysv/linux/arc/ucontext_i.sym
create mode 100644 sysdeps/unix/sysv/linux/arc/vfork.S
--
2.20.1
More information about the Libc-alpha
mailing list