[v7,00/13] glibc port to ARC processors

Message ID 20200615201441.31820-1-vgupta@synopsys.com
Headers show
Series
  • glibc port to ARC processors
Related show

Message

Alistair Francis via Libc-alpha June 15, 2020, 8:14 p.m.
Hi,

This patchset implements glibc port to ARC HS48x processor from Synopsys.

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

-- 
2.20.1

Comments

Alistair Francis via Libc-alpha June 23, 2020, 4:56 p.m. | #1
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

>
Alistair Francis via Libc-alpha July 1, 2020, 12:11 a.m. | #2
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

>>

>
Alistair Francis via Libc-alpha July 1, 2020, 1:44 a.m. | #3
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
Alistair Francis via Libc-alpha July 1, 2020, 7:13 p.m. | #4
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
Alistair Francis via Libc-alpha July 2, 2020, 1 a.m. | #5
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
Andreas Schwab July 2, 2020, 7:17 a.m. | #6
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.

-- 
Andreas Schwab, schwab@linux-m68k.org
GPG Key fingerprint = 7578 EB47 D4E5 4D69 2510  2552 DF73 E780 A9DA AEC1
"And now for something completely different."
Joseph Myers July 2, 2020, 4:27 p.m. | #7
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.)

-- 
Joseph S. Myers
joseph@codesourcery.com
Alistair Francis via Libc-alpha July 2, 2020, 5:45 p.m. | #8
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.)
Joseph Myers July 2, 2020, 9:27 p.m. | #9
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).

-- 
Joseph S. Myers
joseph@codesourcery.com