Message ID | 20200615201441.31820-1-vgupta@synopsys.com |
---|---|
Headers |
Return-Path: <libc-alpha-bounces@sourceware.org> X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 76732388B00E; Mon, 15 Jun 2020 20:14:56 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 76732388B00E DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1592252096; bh=jfJu3KB6NWENiNkWPA+p9Y5OzZSumBwxqhcd6F/0b2M=; h=To:Subject:Date:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:List-Subscribe:From:Reply-To:Cc:From; b=rH3GxXpLKT8kgQdxGpWCgX3egy5GyIbJYFxG/1tRwj9TKvca056vvc26YaNGgThbg 6/LaTtT/wxRL6wkJ8eSW/WTKXb6gna9ytQQg3xMr33LvAXJ95aOpPc45YYwcgd+5PG OGTab0QM41BCank5dJIJnSS8zz1GuoQ9ZWAEwc+E= X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from smtprelay-out1.synopsys.com (smtprelay-out1.synopsys.com [149.117.73.133]) by sourceware.org (Postfix) with ESMTPS id 0DF93388A815 for <libc-alpha@sourceware.org>; Mon, 15 Jun 2020 20:14:47 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 0DF93388A815 Received: from mailhost.synopsys.com (sv2-mailhost1.synopsys.com [10.205.2.133]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) (No client certificate requested) by smtprelay-out1.synopsys.com (Postfix) with ESMTPS id 1A07A400FC; Mon, 15 Jun 2020 20:14:45 +0000 (UTC) Received: from vineetg-Latitude-7400.internal.synopsys.com (unknown [10.13.183.89]) by mailhost.synopsys.com (Postfix) with ESMTP id 98555A00A0; Mon, 15 Jun 2020 20:14:43 +0000 (UTC) X-SNPS-Relay: synopsys.com To: libc-alpha@sourceware.org Subject: [PATCH v7 00/13] glibc port to ARC processors Date: Mon, 15 Jun 2020 13:14:28 -0700 Message-Id: <20200615201441.31820-1-vgupta@synopsys.com> X-Mailer: git-send-email 2.20.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-9.7 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, RCVD_IN_MSPIKE_H4, RCVD_IN_MSPIKE_WL, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libc-alpha mailing list <libc-alpha.sourceware.org> List-Unsubscribe: <http://sourceware.org/mailman/options/libc-alpha>, <mailto:libc-alpha-request@sourceware.org?subject=unsubscribe> List-Archive: <https://sourceware.org/pipermail/libc-alpha/> List-Post: <mailto:libc-alpha@sourceware.org> List-Help: <mailto:libc-alpha-request@sourceware.org?subject=help> List-Subscribe: <http://sourceware.org/mailman/listinfo/libc-alpha>, <mailto:libc-alpha-request@sourceware.org?subject=subscribe> From: Vineet Gupta via Libc-alpha <libc-alpha@sourceware.org> Reply-To: Vineet Gupta <Vineet.Gupta1@synopsys.com> Cc: Vineet Gupta <Vineet.Gupta1@synopsys.com>, linux-snps-arc@lists.infradead.org Errors-To: libc-alpha-bounces@sourceware.org Sender: "Libc-alpha" <libc-alpha-bounces@sourceware.org> |
Series |
glibc port to ARC processors
|
|
Message
Vineet Gupta
June 15, 2020, 8:14 p.m. UTC
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
Comments
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).