[PATCH v7 00/13] glibc port to ARC processors
Vineet Gupta
Vineet.Gupta1 at synopsys.com
Tue Jun 30 20:11:41 EDT 2020
On 6/23/20 9:56 AM, Vineet Gupta via Libc-alpha wrote:
> On 6/15/20 1:14 PM, Vineet Gupta wrote:
>> Hi,
>>
>> This patchset implements glibc port to ARC HS48x processor from Synopsys.
>
> ping !
ping ^2 !
I've posted the incremental series (v7.1) as a followup to include rebase fixes
since v7. The changes are minimal and documented in respective patches. Kindly
review so we can get this in, in this cycle.
Thx,
-Vineet
>
>>
>> git at github.com:foss-for-synopsys-dwc-arc-processors/glibc.git upstream-v7
>>
>> v7:
>> * Addresses review comments from Adhemerval Zanella and Florian
>> Weimer (many thx to you both)
>> * Dropped ARC specific semaphore.h (following upstream 1270fbaaeebe)
>> * ARC specific dl-runtime.h (following upstream 8dbb7a08ec52)
>> * ARC specific math-use-builtins.h and dropped ARC specific sqrt/fma
>> routines (math-use-builtins.h will be disintegrated once done upstream)
>> * setjmp/longjmp to save GP, no need to save r25 (thread pointer)
>> * makecontext/startcontext use r14/r15 (vs. r13/r14)
>> * flatten out register file in mcontext_t (remove scratch/callee)
>> * Use of 'C' comments in asm code, LDR/STR macros
>> * Use of L (..) in asm code
>> * Dropped asm global register r25 specification for thread pointer
>> and rely on __builtin_thread_pointer
>> * NEWS update rewording
>> * Sweeping update of Copyright year 2020
>> v6:
>> * Dropped 11/14: merged upstream
>> * _FPU_SETS() inline asm reworked
>> * Introduce fixup-asm-unistd.h to elide 32-bit time, offset syscalls and
>> regenerate arch-syscall.h
>> * Fix snafu in updating build-many-glibcs for ARC
>> * More code sytle fixes flagged by Joseph
>> v5:
>> * Big Endian formally supported as multi-ABI
>> * Removed code for ARC700 processors
>> * Hard-float code updates: fegetmode, fesetround, feupdateenv
>> * socket-constant.h update for 64-bit ABI spun off as standalone patch
>> * __syscall_error made glibc_private
>> * math ulps regen
>> * gmp-mparam.h removed
>> * lint fixes as flagged by Joseph
>> 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)
>>
>> v5: https://sourceware.org/pipermail/libc-alpha/2020-April/112657.html
>> v4: https://sourceware.org/pipermail/libc-alpha/2020-March/111855.html
>> 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.
>>
>> | Summary of test results:
>> | 30 FAIL (-3)
>> |
>> | FAIL: csu/test-as-const-tcb-offsets
>> + FAIL: elf/tst-audit14
>> + FAIL: elf/tst-audit15
>> + FAIL: elf/tst-audit16
>> | FAIL: elf/tst-ldconfig-ld_so_conf-update # not true: dlopen
>> | FAIL: iconv/test-iconvconfig # Needs gconv installed
>> - FAIL: iconv/tst-gconv-init-failure
>> | FAIL: io/ftwtest # Requires execution by non-root
>> - FAIL: io/tst-futimesat
>> | FAIL: io/tst-lockf
>> | FAIL: libio/tst-wfile-sync
>> | FAIL: locale/tst-C-locale
>> | FAIL: locale/tst-duplocale
>> | FAIL: locale/tst-locale-locpath
>> | FAIL: locale/tst-locname
>> | FAIL: localedata/sort-test
>> | 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-umask1 # passes if run natively on target (NFS ACLv3 support needed)
>> | FAIL: nss/bug-erange
>> | 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: resolv/tst-resolv-basic
>> - FAIL: resolv/tst-resolv-edns
>> - FAIL: resolv/tst-resolv-rotate
>> - FAIL: resolv/tst-resolv-search
>> | 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 (13):
>> 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: Build Infrastructure
>> build-many-glibcs.py: Enable ARC builds
>> Documentation for ARC port
>>
>> NEWS | 11 +
>> README | 1 +
>> config.h.in | 3 +
>> manual/install.texi | 4 +
>> scripts/build-many-glibcs.py | 10 +
>> sysdeps/arc/Implies | 3 +
>> sysdeps/arc/Makefile | 21 +
>> sysdeps/arc/Versions | 8 +
>> sysdeps/arc/__longjmp.S | 49 +
>> sysdeps/arc/abort-instr.h | 2 +
>> sysdeps/arc/atomic-machine.h | 69 +
>> sysdeps/arc/bits/endianness.h | 15 +
>> sysdeps/arc/bits/fenv.h | 78 +
>> 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 | 182 ++
>> sysdeps/arc/configure.ac | 26 +
>> sysdeps/arc/dl-machine.h | 341 +++
>> sysdeps/arc/dl-runtime.h | 42 +
>> sysdeps/arc/dl-sysdep.h | 25 +
>> sysdeps/arc/dl-tls.h | 30 +
>> sysdeps/arc/dl-trampoline.S | 72 +
>> sysdeps/arc/entry.h | 5 +
>> 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 | 40 +
>> sysdeps/arc/fpu/fesetround.c | 40 +
>> sysdeps/arc/fpu/feupdateenv.c | 51 +
>> 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 | 1140 +++++++++
>> sysdeps/arc/fpu/libm-test-ulps-name | 1 +
>> sysdeps/arc/fpu/math-use-builtins.h | 70 +
>> sysdeps/arc/fpu_control.h | 106 +
>> sysdeps/arc/gccframe.h | 21 +
>> sysdeps/arc/get-rounding-mode.h | 38 +
>> sysdeps/arc/jmpbuf-offsets.h | 22 +
>> 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 | 270 +++
>> 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/pthreaddef.h | 32 +
>> sysdeps/arc/nptl/tcb-offsets.sym | 11 +
>> sysdeps/arc/nptl/tls.h | 148 ++
>> sysdeps/arc/preconfigure | 14 +
>> sysdeps/arc/setjmp.S | 66 +
>> sysdeps/arc/sfp-machine.h | 70 +
>> sysdeps/arc/sotruss-lib.c | 50 +
>> sysdeps/arc/stackinfo.h | 33 +
>> sysdeps/arc/start.S | 74 +
>> sysdeps/arc/sysdep.h | 53 +
>> 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 | 29 +
>> sysdeps/unix/sysv/linux/arc/Versions | 16 +
>> sysdeps/unix/sysv/linux/arc/arch-syscall.h | 303 +++
>> sysdeps/unix/sysv/linux/arc/bits/procfs.h | 35 +
>> 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 | 93 +
>> sysdeps/unix/sysv/linux/arc/configure | 4 +
>> sysdeps/unix/sysv/linux/arc/configure.ac | 4 +
>> sysdeps/unix/sysv/linux/arc/dl-static.c | 84 +
>> .../unix/sysv/linux/arc/fixup-asm-unistd.h | 41 +
>> sysdeps/unix/sysv/linux/arc/getcontext.S | 64 +
>> sysdeps/unix/sysv/linux/arc/jmp_buf-macros.h | 6 +
>> sysdeps/unix/sysv/linux/arc/kernel-features.h | 27 +
>> sysdeps/unix/sysv/linux/arc/kernel_stat.h | 26 +
>> sysdeps/unix/sysv/linux/arc/ld.abilist | 5 +
>> sysdeps/unix/sysv/linux/arc/ldconfig.h | 27 +
>> 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 | 2084 +++++++++++++++++
>> 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 | 213 ++
>> 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 | 73 +
>> sysdeps/unix/sysv/linux/arc/mmap_internal.h | 27 +
>> sysdeps/unix/sysv/linux/arc/setcontext.S | 93 +
>> sysdeps/unix/sysv/linux/arc/shlib-versions | 7 +
>> 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 | 94 +
>> sysdeps/unix/sysv/linux/arc/sys/cachectl.h | 35 +
>> sysdeps/unix/sysv/linux/arc/sys/ucontext.h | 57 +
>> sysdeps/unix/sysv/linux/arc/sys/user.h | 31 +
>> sysdeps/unix/sysv/linux/arc/syscall.S | 33 +
>> sysdeps/unix/sysv/linux/arc/syscalls.list | 3 +
>> sysdeps/unix/sysv/linux/arc/sysdep.c | 33 +
>> sysdeps/unix/sysv/linux/arc/sysdep.h | 224 ++
>> sysdeps/unix/sysv/linux/arc/ucontext-macros.h | 25 +
>> sysdeps/unix/sysv/linux/arc/ucontext_i.sym | 20 +
>> sysdeps/unix/sysv/linux/arc/vfork.S | 42 +
>> 121 files changed, 9146 insertions(+)
>> 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.h
>> 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/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/math-use-builtins.h
>> 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/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/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/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/fixup-asm-unistd.h
>> 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/ldconfig.h
>> 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/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/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
>>
>
More information about the linux-snps-arc
mailing list