Message ID | 20200615201441.31820-1-vgupta@synopsys.com |
---|---|
Headers | show |
Series | glibc port to ARC processors | expand |
On 6/15/20 1:14 PM, Vineet Gupta wrote: > Hi, > > This patchset implements glibc port to ARC HS48x processor from Synopsys. ping ! > > git@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 >
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@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 >> >
On 30/06/2020 21:11, Vineet Gupta wrote: > 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. Thanks for your patience, I will help wrap this up so we can include in on 2.32. >>> >>> (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 Any idea what it might the culprit here? >>> | 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 Could it be related to NFS usage as well? >>> | FAIL: locale/tst-C-locale >>> | FAIL: locale/tst-duplocale >>> | FAIL: locale/tst-locale-locpath >>> | FAIL: locale/tst-locname >>> | FAIL: localedata/sort-test Any idea why locale is not being working here (these tests are really simple, maybe another issue related to the filesystem)? >>> | 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 We might try to enhance this test to avoid require too much memory. >>> | FAIL: sunrpc/bug20790 # missing cpp on target >>> | FAIL: timezone/tst-tzset # passes outside corporate network
On 6/30/20 6:44 PM, Adhemerval Zanella via Libc-alpha wrote: >> 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. > > Thanks for your patience, I will help wrap this up so we can include in > on 2.32. And thx to you for your help and time. >>>> (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 > > Any idea what it might the culprit here? These are newly introduced so I didn't probe deeply. strace showed wait() time out statx(1, "", AT_STATX_SYNC_AS_STAT|AT_EMPTY_PATH, STATX_BASIC_STATS, {stx_mask=STATX_BASIC_STATS, stx_attrib0 kill(-1805, SIGKILL) = 0 kill(1805, SIGKILL) = 0 wait4(1805, [{WIFSIGNALED(s) && WTERMSIG(s) == SIGKILL}], WNOHANG|WSTOPPED, NULL) = 1805 --- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_KILLED, si_pid=1805, si_uid=0, si_status=SIGKILL, si_utime=0, si_- write(1, "Timed out: killed the child proc"..., 35Timed out: killed the child process) = 35 write(1, "\n", 1 ) = 1 > >>>> | 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 > > Could it be related to NFS usage as well? Very likely so. >>>> | FAIL: locale/tst-C-locale >>>> | FAIL: locale/tst-duplocale >>>> | FAIL: locale/tst-locale-locpath >>>> | FAIL: locale/tst-locname >>>> | FAIL: localedata/sort-test > > Any idea why locale is not being working here (these tests are really > simple, maybe another issue related to the filesystem)? Actually these are all OK. cross setup sometimes has issues (e.g. nfs automount at boot not working) these tests hit first and fail. When testing is resumed the failures stick. I have a clean list of current failure with v7.1 at the end of this msg. > >>>> | 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: stdio-common/bug22 # Needs more RAM: 2 GB memory > > We might try to enhance this test to avoid require too much memory. Indeed. current list of failures: Currently debugging the math errors, they are regression from recent rework for reviews. FAIL: elf/tst-audit14 FAIL: elf/tst-audit15 FAIL: elf/tst-audit16 FAIL: elf/tst-ldconfig-ld_so_conf-update FAIL: iconv/test-iconvconfig FAIL: io/ftwtest FAIL: io/tst-lockf FAIL: libio/tst-wfile-sync FAIL: locale/tst-localedef-path-norm FAIL: math/test-double-acos FAIL: math/test-double-asin FAIL: math/test-float-exp10 FAIL: math/test-float32-exp10 FAIL: math/test-float32x-acos FAIL: math/test-float32x-asin FAIL: math/test-float64-acos FAIL: math/test-float64-asin FAIL: math/test-ldouble-acos FAIL: math/test-ldouble-asin FAIL: nptl/test-cond-printers FAIL: nptl/test-condattr-printers FAIL: nptl/test-mutex-printers FAIL: nptl/test-mutexattr-printers FAIL: nptl/test-rwlock-printers FAIL: nptl/test-rwlockattr-printers FAIL: nptl/tst-umask1 FAIL: nss/bug-erange FAIL: nss/tst-nss-files-hosts-getent FAIL: nss/tst-nss-files-hosts-multi FAIL: posix/bug-ga2 FAIL: posix/globtest FAIL: posix/tst-getaddrinfo5 FAIL: stdio-common/bug22 FAIL: sunrpc/bug20790 FAIL: timezone/tst-tzset
On 7/1/20 12:13 PM, Vineet Gupta via Libc-alpha wrote: > On 6/30/20 6:44 PM, Adhemerval Zanella via Libc-alpha wrote: > FAIL: math/test-float-exp10 > FAIL: math/test-float32-exp10 The exp10 tests needed regen-ulps and now fixed. > FAIL: math/test-float32x-acos > FAIL: math/test-float32x-asin > FAIL: math/test-float64-acos > FAIL: math/test-float64-asin > FAIL: math/test-ldouble-acos > FAIL: math/test-ldouble-asin This is a regression, as we had no math errors before. Here's my analysis of the issue so far (I don't have prior builds to corroborate here). The failures are following | Failure: acos (inf): Exception "Invalid operation" not set | Failure: acos (-inf): Exception "Invalid operation" not set | Failure: acos (1.125): Exception "Invalid operation" not set | Failure: acos (-1.125): Exception "Invalid operation" not set | Failure: acos (max_value): Exception "Invalid operation" not set | Failure: acos (-max_value): Exception "Invalid operation" not set ... ... | similarly 6 for each of acos_downward(), acos_towardzero (), acos_upward () Simple testcase which confirms that Invalid Exception is *not* being raised | double in = __builtin_inf (); | acos(in); | pass = fetestexcept(FE_INVALID); Exception *is* raised for @in = __builtin_nans("") Now acos can come from 2 places depending on LIBM_SVID_COMPAT - math/w_acos_template.c <-- sets errno only - math/w_acos_compat.c <-- raises exception FE_INVALID For ARC, 1st variant is building, so explicit exception is NOT raised. Is this the issue ? Or is Invalid Exception supposed to be set by the prologue in acos (both variants) which looks like following: __acos (double x) { if (__builtin_expect ((__builtin_isgreater(fabs (x), 1.0)), 0)) isgreater() is not unordered so it is not supposed to raise exception unless signaling so it can't be, and fabs() doesn't seem be doing much except clipping off some bits. So I'm confused where the issue is
On Jul 02 2020, Vineet Gupta via Libc-alpha wrote: > Now acos can come from 2 places depending on LIBM_SVID_COMPAT > - math/w_acos_template.c <-- sets errno only > - math/w_acos_compat.c <-- raises exception FE_INVALID > > For ARC, 1st variant is building, so explicit exception is NOT raised. LIBM_SVID_COMPAT is a compat feature, thus not relevant and always off for new ports. It's a bug in the testsuite that it doesn't handle that case yet. Andreas.
On Thu, 2 Jul 2020, Vineet Gupta via Libc-alpha wrote: > Now acos can come from 2 places depending on LIBM_SVID_COMPAT > - math/w_acos_template.c <-- sets errno only This wrapper, unlike the compat one, always calls __ieee754_acos (appropriately suffixed), relying on it to raise appropriate exceptions. The implementation in sysdeps/ieee754/dbl-64/e_asin.c raises the exception by doing an Inf / Inf computation. u.i[HIGH_HALF]=0x7ff00000; v.i[HIGH_HALF]=0x7ff00000; u.i[LOW_HALF]=0; v.i[LOW_HALF]=0; return u.x/v.x; https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95115 The right place to fix this is in GCC, to stop it constant-folding Inf / Inf when flag_trapping_math. That should be a straightforward fix. It would also be reasonable to change the above code to just "return 0.0 / 0.0;", as a simpler, more idiomatic way of returning a NaN with "invalid" raised. (Any code constructing infinities / NaNs via bit patterns likely predates built-in functions that can be used to represent such values directly. Though the GCC bug means a literal replacement with "return __builtin_inf () / __builtin_inf ();" wouldn't fix the present problem.)
On 7/2/20 9:27 AM, Joseph Myers wrote: > On Thu, 2 Jul 2020, Vineet Gupta via Libc-alpha wrote: > >> Now acos can come from 2 places depending on LIBM_SVID_COMPAT >> - math/w_acos_template.c <-- sets errno only > > This wrapper, unlike the compat one, always calls __ieee754_acos > (appropriately suffixed), relying on it to raise appropriate exceptions. > The implementation in sysdeps/ieee754/dbl-64/e_asin.c raises the exception > by doing an Inf / Inf computation. > > u.i[HIGH_HALF]=0x7ff00000; > v.i[HIGH_HALF]=0x7ff00000; > u.i[LOW_HALF]=0; > v.i[LOW_HALF]=0; > return u.x/v.x; > > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95115 Aha. I almost forgot that this was upstream gcc-10 for ARC too (and problem doesn't happen with gcc-9). So my glibc updates didn't trigger this, phew ! > The right place to fix this is in GCC, to stop it constant-folding Inf / > Inf when flag_trapping_math. That should be a straightforward fix. > > It would also be reasonable to change the above code to just "return 0.0 / > 0.0;", as a simpler, more idiomatic way of returning a NaN with "invalid" > raised. (Any code constructing infinities / NaNs via bit patterns likely > predates built-in functions that can be used to represent such values > directly. Though the GCC bug means a literal replacement with "return > __builtin_inf () / __builtin_inf ();" wouldn't fix the present problem.)
On Tue, 30 Jun 2020, Adhemerval Zanella via Libc-alpha wrote: > >>> | FAIL: stdio-common/bug22 # Needs more RAM: 2 GB memory > > We might try to enhance this test to avoid require too much memory. Note this is bug 14231 (covering test-vfprintf as well, which also requires a large amount of memory). Although arguably the real bug is in the printf code, which shouldn't need so much memory (bugs 17829, 21127, 24988, maybe others).