public inbox for libc-alpha@sourceware.org
 help / color / mirror / Atom feed
* [PATCH v2 00/12] nds32 glibc port, v2
@ 2018-05-30 10:47 Vincent Chen
  2018-05-30 10:46 ` [PATCH v2 07/12] nds32: Linux Syscall Interface Vincent Chen
                   ` (12 more replies)
  0 siblings, 13 replies; 23+ messages in thread
From: Vincent Chen @ 2018-05-30 10:47 UTC (permalink / raw)
  To: libc-alpha, joseph; +Cc: deanbo422, cnoize, vincentc

This is the second submission of the nds32 port. Based on the commit
b5453d9f7a95545f3941ad439b4fb9af3585ab83 (25 May), we modify the nds32
port to fit the newer glibc generic flow and the reviewers' comments.
The modification can be summarized as following notes.

* The support of big endian ABI is removed in this version patch. In
  other words, only one ABI, little endian without FPU support, is
  supported in nds32 port. However, we still keep some flexibility in
  code to further expand supported ABI.

* The patch of build-many-glibcs.py for Andes nds32 port is included in
  this patchset. However, this build-many-glibcs.py cannot successfully
  generate toolchain because the latest version of nds32 port for Binutils
  and GCC does not been uploaded to upstream.

* To synchronize the GCC version in build-many-glibcs.py, the GCC version
  in our private git repository is updated from 6 to 8. The git
  repository path of each component for nds32 is listed as below.

  1. GCC git repo path:
    path: https://github.com/andestech/gcc.git
    branch: nds32-8.1.0-upstream
  2. Binutils git repo path:
    path: https://github.com/andestech/binutils.git 
    branch: nds32-binutils-2.30-branch-open
  3. Glibc git repo
    path: https://github.com/andestech/glibc.git 
    branch: nds32-glibc-2.27-v2
  4. Linux git repo
    path: https://github.com/andestech/linux/commits/master 
    branch: master

* Based on GCC 8, this v2 patchest has been cross-tested on FPGA board.
  The testing result is summarized as below.
    8 FAIL (16 XFAIL cases are not included)
  4982 PASS (2 XPASS cases are not included)
    14 UNSUPPORTED
  
  Detail result:
  https://github.com/andestech/glibc/blob/nds32-glibc-2.27-v2/sysdeps/nds32/misc/glibc_final_testing_result 

  1. The following 6 testcase fail because the testing environment lacks
     native python: 
     ./nptl/test-condattr-printers.test-result
     ./nptl/test-cond-printers.test-result
     ./nptl/test-mutexattr-printers.test-result
     ./nptl/test-mutex-printers.test-result
     ./nptl/test-rwlockattr-printers.test-result
     ./nptl/test-rwlock-printers.test-result
  2. stdio-common/bug22: 
     The required memory size for this testcase is more than 2 GB but the
     DRAM size on our FPGA is just 2GB. Therefore, the errno is set as
     ENOMEM instead of EOVERFLOW. 
  3. sunrpc/bug20790: 
     It fails because the testing environment lacks native cpp


* The highlight of the changes since our v1 includes:
  - Remove big endian support.
  - Add fno-isolate-erroneous-paths-dereference compile option to
    CFLAGS-divrem.c to avoid compiler calling abort() function for
    divde-by-zero case.
  - Update the list of register preservation for nds32 ABI convention
    and move the list from sysdeps/nds32/__longjmp.S to sysdeps/nds32/setjmp.h.
  - Remove sysdeps/nds32/backtrace.c.
  - Remove big endian support.
  - Add description for compile option -minline-asm-r15 to configure file.
  - Refine sysdeps/nds32/dl-machine.h.
  - Remove sysdeps/nds32/math_private.h.
  - Refine memcpy and memset function of nds32 version.
  - Define THREAD_GSCOPE_IN_TCB in sysdeps/nds32/nptl/tls.h to fix compiler
    error.
  - Rename dynamic linker based on supported ABI.
  - Replace nds32 specific arch-fork.h with generic arch-fork.h.
  - Remove nds32 kernel_sigaction.h.
  - Remove nds32 readahead.c.
  - Remove unused macro from sigcontextinfo.h.
  - Refine nds32 syscall.c.
  - Add MAP_SYNC from Linux 4.15.
  - Add change log to the end of each commit.
  - Update ABI list.
  - Upadate libm-test-ulps file.




Che-Wei Chuang (1):
  Add nds32 port to build-many-glibcs.py

Vincent Chen (11):
  nds32: Build Infastructure
  nds32: ABI Implementation
  nds32: Thread-Local Storage Support
  nds32: Startup and Dynamic Loader
  nds32: Generic <math.h> and soft-fp Routines
  nds32: Atomic and Locking Routines
  nds32: Linux Syscall Interface
  nds32: Linux ABI
  nds32: Add ABI list
  Add Andes nds32 dynamic relocation type to elf/elf.h.
  Add nds32 entries to config.h.in

 config.h.in                                        |    3 +
 elf/elf.h                                          |   10 +
 scripts/build-many-glibcs.py                       |    9 +
 sysdeps/nds32/Implies                              |    3 +
 sysdeps/nds32/Makefile                             |   15 +
 sysdeps/nds32/__longjmp.S                          |   35 +
 sysdeps/nds32/atomic-machine.h                     |  163 ++
 sysdeps/nds32/bits/endian.h                        |   29 +
 sysdeps/nds32/bits/fenv.h                          |   49 +
 sysdeps/nds32/bits/link.h                          |   54 +
 sysdeps/nds32/bits/setjmp.h                        |   54 +
 sysdeps/nds32/bsd-_setjmp.S                        |    1 +
 sysdeps/nds32/bsd-setjmp.S                         |    1 +
 sysdeps/nds32/configure                            |   10 +
 sysdeps/nds32/configure.ac                         |   10 +
 sysdeps/nds32/crti.S                               |   77 +
 sysdeps/nds32/crtn.S                               |   53 +
 sysdeps/nds32/dl-machine.h                         |  405 ++++
 sysdeps/nds32/dl-sysdep.h                          |   22 +
 sysdeps/nds32/dl-tls.h                             |   28 +
 sysdeps/nds32/dl-tlsdesc.S                         |  104 +
 sysdeps/nds32/dl-tlsdesc.h                         |   62 +
 sysdeps/nds32/dl-trampoline.S                      |  164 ++
 sysdeps/nds32/gccframe.h                           |   21 +
 sysdeps/nds32/jmpbuf-offsets.h                     |   34 +
 sysdeps/nds32/jmpbuf-unwind.h                      |   47 +
 sysdeps/nds32/ldsodefs.h                           |   44 +
 sysdeps/nds32/linkmap.h                            |   26 +
 sysdeps/nds32/machine-gmon.h                       |   32 +
 sysdeps/nds32/math-tests.h                         |   29 +
 sysdeps/nds32/memcpy.S                             |  102 +
 sysdeps/nds32/memset.S                             |  120 ++
 sysdeps/nds32/memusage.h                           |   21 +
 sysdeps/nds32/nofpu/Implies                        |    1 +
 sysdeps/nds32/nofpu/libm-test-ulps                 |  390 ++++
 sysdeps/nds32/nofpu/libm-test-ulps-name            |    1 +
 sysdeps/nds32/nptl/Makefile                        |    4 +
 sysdeps/nds32/nptl/bits/pthreadtypes-arch.h        |   71 +
 sysdeps/nds32/nptl/bits/semaphore.h                |   32 +
 sysdeps/nds32/nptl/pthread-offsets.h               |   24 +
 sysdeps/nds32/nptl/pthreaddef.h                    |   33 +
 sysdeps/nds32/nptl/tcb-offsets.sym                 |    7 +
 sysdeps/nds32/nptl/tls.h                           |  161 ++
 sysdeps/nds32/preconfigure                         |   30 +
 sysdeps/nds32/setjmp.S                             |   66 +
 sysdeps/nds32/sfp-machine.h                        |   69 +
 sysdeps/nds32/sotruss-lib.c                        |   50 +
 sysdeps/nds32/stackinfo.h                          |   32 +
 sysdeps/nds32/start.S                              |  124 ++
 sysdeps/nds32/strcmp.S                             |  105 +
 sysdeps/nds32/strcpy.S                             |   75 +
 sysdeps/nds32/sysdep.h                             |   70 +
 sysdeps/nds32/tls-macros.h                         |   75 +
 sysdeps/nds32/tlsdesc.c                            |   38 +
 sysdeps/nds32/tlsdesc.sym                          |   16 +
 sysdeps/nds32/tst-audit.h                          |   23 +
 sysdeps/unix/sysv/linux/nds32/Implies              |    3 +
 sysdeps/unix/sysv/linux/nds32/Makefile             |   17 +
 sysdeps/unix/sysv/linux/nds32/Versions             |   11 +
 sysdeps/unix/sysv/linux/nds32/bits/fcntl.h         |   54 +
 sysdeps/unix/sysv/linux/nds32/bits/mman.h          |   38 +
 sysdeps/unix/sysv/linux/nds32/bits/shm.h           |  102 +
 sysdeps/unix/sysv/linux/nds32/c++-types.data       |   67 +
 sysdeps/unix/sysv/linux/nds32/clone.S              |   66 +
 sysdeps/unix/sysv/linux/nds32/configure            |    4 +
 sysdeps/unix/sysv/linux/nds32/configure.ac         |    4 +
 sysdeps/unix/sysv/linux/nds32/dl-static.c          |   84 +
 sysdeps/unix/sysv/linux/nds32/getcontext.S         |   52 +
 sysdeps/unix/sysv/linux/nds32/init-first.c         |   50 +
 sysdeps/unix/sysv/linux/nds32/ipc_priv.h           |   22 +
 sysdeps/unix/sysv/linux/nds32/jmp_buf-macros.h     |   26 +
 sysdeps/unix/sysv/linux/nds32/kernel-features.h    |   31 +
 sysdeps/unix/sysv/linux/nds32/ld.abilist           |    9 +
 sysdeps/unix/sysv/linux/nds32/ldconfig.h           |   27 +
 sysdeps/unix/sysv/linux/nds32/ldsodefs.h           |   32 +
 .../unix/sysv/linux/nds32/libBrokenLocale.abilist  |    1 +
 sysdeps/unix/sysv/linux/nds32/libanl.abilist       |    4 +
 sysdeps/unix/sysv/linux/nds32/libc-vdso.h          |   36 +
 sysdeps/unix/sysv/linux/nds32/libc.abilist         | 2077 ++++++++++++++++++++
 sysdeps/unix/sysv/linux/nds32/libcidn.abilist      |    0
 sysdeps/unix/sysv/linux/nds32/libcrypt.abilist     |    7 +
 sysdeps/unix/sysv/linux/nds32/libdl.abilist        |    9 +
 sysdeps/unix/sysv/linux/nds32/libm.abilist         |  753 +++++++
 sysdeps/unix/sysv/linux/nds32/libnsl.abilist       |  120 ++
 .../unix/sysv/linux/nds32/libnss_compat.abilist    |    0
 sysdeps/unix/sysv/linux/nds32/libnss_db.abilist    |    0
 sysdeps/unix/sysv/linux/nds32/libnss_dns.abilist   |    0
 sysdeps/unix/sysv/linux/nds32/libnss_files.abilist |    0
 .../unix/sysv/linux/nds32/libnss_hesiod.abilist    |    0
 sysdeps/unix/sysv/linux/nds32/libnss_nis.abilist   |    0
 .../unix/sysv/linux/nds32/libnss_nisplus.abilist   |    0
 sysdeps/unix/sysv/linux/nds32/libpthread.abilist   |  216 ++
 sysdeps/unix/sysv/linux/nds32/libresolv.abilist    |   79 +
 sysdeps/unix/sysv/linux/nds32/librt.abilist        |   35 +
 sysdeps/unix/sysv/linux/nds32/libthread_db.abilist |   40 +
 sysdeps/unix/sysv/linux/nds32/libutil.abilist      |    6 +
 sysdeps/unix/sysv/linux/nds32/localplt.data        |   19 +
 sysdeps/unix/sysv/linux/nds32/makecontext.c        |   57 +
 sysdeps/unix/sysv/linux/nds32/profil-counter.h     |   31 +
 sysdeps/unix/sysv/linux/nds32/pt-vfork.S           |    1 +
 sysdeps/unix/sysv/linux/nds32/setcontext.S         |   65 +
 sysdeps/unix/sysv/linux/nds32/shlib-versions       |    7 +
 sysdeps/unix/sysv/linux/nds32/sigcontextinfo.h     |   35 +
 sysdeps/unix/sysv/linux/nds32/swapcontext.S        |   57 +
 sysdeps/unix/sysv/linux/nds32/sys/cachectl.h       |   34 +
 sysdeps/unix/sysv/linux/nds32/sys/procfs.h         |  123 ++
 sysdeps/unix/sysv/linux/nds32/sys/ucontext.h       |   85 +
 sysdeps/unix/sysv/linux/nds32/sys/user.h           |   26 +
 sysdeps/unix/sysv/linux/nds32/syscall.c            |   38 +
 sysdeps/unix/sysv/linux/nds32/syscalls.list        |    2 +
 sysdeps/unix/sysv/linux/nds32/sysctl.mk            |    1 +
 sysdeps/unix/sysv/linux/nds32/sysdep.c             |   30 +
 sysdeps/unix/sysv/linux/nds32/sysdep.h             |  337 ++++
 sysdeps/unix/sysv/linux/nds32/ucontext_i.sym       |   25 +
 sysdeps/unix/sysv/linux/nds32/vfork.S              |   46 +
 115 files changed, 8435 insertions(+)
 create mode 100644 sysdeps/nds32/Implies
 create mode 100644 sysdeps/nds32/Makefile
 create mode 100644 sysdeps/nds32/__longjmp.S
 create mode 100644 sysdeps/nds32/atomic-machine.h
 create mode 100644 sysdeps/nds32/bits/endian.h
 create mode 100644 sysdeps/nds32/bits/fenv.h
 create mode 100644 sysdeps/nds32/bits/link.h
 create mode 100644 sysdeps/nds32/bits/setjmp.h
 create mode 100644 sysdeps/nds32/bsd-_setjmp.S
 create mode 100644 sysdeps/nds32/bsd-setjmp.S
 create mode 100755 sysdeps/nds32/configure
 create mode 100644 sysdeps/nds32/configure.ac
 create mode 100644 sysdeps/nds32/crti.S
 create mode 100644 sysdeps/nds32/crtn.S
 create mode 100644 sysdeps/nds32/dl-machine.h
 create mode 100644 sysdeps/nds32/dl-sysdep.h
 create mode 100644 sysdeps/nds32/dl-tls.h
 create mode 100644 sysdeps/nds32/dl-tlsdesc.S
 create mode 100644 sysdeps/nds32/dl-tlsdesc.h
 create mode 100644 sysdeps/nds32/dl-trampoline.S
 create mode 100644 sysdeps/nds32/gccframe.h
 create mode 100644 sysdeps/nds32/jmpbuf-offsets.h
 create mode 100644 sysdeps/nds32/jmpbuf-unwind.h
 create mode 100644 sysdeps/nds32/ldsodefs.h
 create mode 100644 sysdeps/nds32/linkmap.h
 create mode 100644 sysdeps/nds32/machine-gmon.h
 create mode 100644 sysdeps/nds32/math-tests.h
 create mode 100644 sysdeps/nds32/memcpy.S
 create mode 100644 sysdeps/nds32/memset.S
 create mode 100644 sysdeps/nds32/memusage.h
 create mode 100644 sysdeps/nds32/nofpu/Implies
 create mode 100644 sysdeps/nds32/nofpu/libm-test-ulps
 create mode 100644 sysdeps/nds32/nofpu/libm-test-ulps-name
 create mode 100644 sysdeps/nds32/nptl/Makefile
 create mode 100644 sysdeps/nds32/nptl/bits/pthreadtypes-arch.h
 create mode 100644 sysdeps/nds32/nptl/bits/semaphore.h
 create mode 100644 sysdeps/nds32/nptl/pthread-offsets.h
 create mode 100644 sysdeps/nds32/nptl/pthreaddef.h
 create mode 100644 sysdeps/nds32/nptl/tcb-offsets.sym
 create mode 100644 sysdeps/nds32/nptl/tls.h
 create mode 100644 sysdeps/nds32/preconfigure
 create mode 100644 sysdeps/nds32/setjmp.S
 create mode 100644 sysdeps/nds32/sfp-machine.h
 create mode 100644 sysdeps/nds32/sotruss-lib.c
 create mode 100644 sysdeps/nds32/stackinfo.h
 create mode 100644 sysdeps/nds32/start.S
 create mode 100644 sysdeps/nds32/strcmp.S
 create mode 100644 sysdeps/nds32/strcpy.S
 create mode 100644 sysdeps/nds32/sysdep.h
 create mode 100644 sysdeps/nds32/tls-macros.h
 create mode 100644 sysdeps/nds32/tlsdesc.c
 create mode 100644 sysdeps/nds32/tlsdesc.sym
 create mode 100644 sysdeps/nds32/tst-audit.h
 create mode 100644 sysdeps/unix/sysv/linux/nds32/Implies
 create mode 100644 sysdeps/unix/sysv/linux/nds32/Makefile
 create mode 100644 sysdeps/unix/sysv/linux/nds32/Versions
 create mode 100644 sysdeps/unix/sysv/linux/nds32/bits/fcntl.h
 create mode 100644 sysdeps/unix/sysv/linux/nds32/bits/mman.h
 create mode 100644 sysdeps/unix/sysv/linux/nds32/bits/shm.h
 create mode 100644 sysdeps/unix/sysv/linux/nds32/c++-types.data
 create mode 100644 sysdeps/unix/sysv/linux/nds32/clone.S
 create mode 100755 sysdeps/unix/sysv/linux/nds32/configure
 create mode 100644 sysdeps/unix/sysv/linux/nds32/configure.ac
 create mode 100644 sysdeps/unix/sysv/linux/nds32/dl-static.c
 create mode 100644 sysdeps/unix/sysv/linux/nds32/getcontext.S
 create mode 100644 sysdeps/unix/sysv/linux/nds32/init-first.c
 create mode 100644 sysdeps/unix/sysv/linux/nds32/ipc_priv.h
 create mode 100644 sysdeps/unix/sysv/linux/nds32/jmp_buf-macros.h
 create mode 100644 sysdeps/unix/sysv/linux/nds32/kernel-features.h
 create mode 100644 sysdeps/unix/sysv/linux/nds32/ld.abilist
 create mode 100644 sysdeps/unix/sysv/linux/nds32/ldconfig.h
 create mode 100644 sysdeps/unix/sysv/linux/nds32/ldsodefs.h
 create mode 100644 sysdeps/unix/sysv/linux/nds32/libBrokenLocale.abilist
 create mode 100644 sysdeps/unix/sysv/linux/nds32/libanl.abilist
 create mode 100644 sysdeps/unix/sysv/linux/nds32/libc-vdso.h
 create mode 100644 sysdeps/unix/sysv/linux/nds32/libc.abilist
 create mode 100644 sysdeps/unix/sysv/linux/nds32/libcidn.abilist
 create mode 100644 sysdeps/unix/sysv/linux/nds32/libcrypt.abilist
 create mode 100644 sysdeps/unix/sysv/linux/nds32/libdl.abilist
 create mode 100644 sysdeps/unix/sysv/linux/nds32/libm.abilist
 create mode 100644 sysdeps/unix/sysv/linux/nds32/libnsl.abilist
 create mode 100644 sysdeps/unix/sysv/linux/nds32/libnss_compat.abilist
 create mode 100644 sysdeps/unix/sysv/linux/nds32/libnss_db.abilist
 create mode 100644 sysdeps/unix/sysv/linux/nds32/libnss_dns.abilist
 create mode 100644 sysdeps/unix/sysv/linux/nds32/libnss_files.abilist
 create mode 100644 sysdeps/unix/sysv/linux/nds32/libnss_hesiod.abilist
 create mode 100644 sysdeps/unix/sysv/linux/nds32/libnss_nis.abilist
 create mode 100644 sysdeps/unix/sysv/linux/nds32/libnss_nisplus.abilist
 create mode 100644 sysdeps/unix/sysv/linux/nds32/libpthread.abilist
 create mode 100644 sysdeps/unix/sysv/linux/nds32/libresolv.abilist
 create mode 100644 sysdeps/unix/sysv/linux/nds32/librt.abilist
 create mode 100644 sysdeps/unix/sysv/linux/nds32/libthread_db.abilist
 create mode 100644 sysdeps/unix/sysv/linux/nds32/libutil.abilist
 create mode 100644 sysdeps/unix/sysv/linux/nds32/localplt.data
 create mode 100644 sysdeps/unix/sysv/linux/nds32/makecontext.c
 create mode 100644 sysdeps/unix/sysv/linux/nds32/profil-counter.h
 create mode 100644 sysdeps/unix/sysv/linux/nds32/pt-vfork.S
 create mode 100644 sysdeps/unix/sysv/linux/nds32/setcontext.S
 create mode 100644 sysdeps/unix/sysv/linux/nds32/shlib-versions
 create mode 100644 sysdeps/unix/sysv/linux/nds32/sigcontextinfo.h
 create mode 100644 sysdeps/unix/sysv/linux/nds32/swapcontext.S
 create mode 100644 sysdeps/unix/sysv/linux/nds32/sys/cachectl.h
 create mode 100644 sysdeps/unix/sysv/linux/nds32/sys/procfs.h
 create mode 100644 sysdeps/unix/sysv/linux/nds32/sys/ucontext.h
 create mode 100644 sysdeps/unix/sysv/linux/nds32/sys/user.h
 create mode 100644 sysdeps/unix/sysv/linux/nds32/syscall.c
 create mode 100644 sysdeps/unix/sysv/linux/nds32/syscalls.list
 create mode 100644 sysdeps/unix/sysv/linux/nds32/sysctl.mk
 create mode 100644 sysdeps/unix/sysv/linux/nds32/sysdep.c
 create mode 100644 sysdeps/unix/sysv/linux/nds32/sysdep.h
 create mode 100644 sysdeps/unix/sysv/linux/nds32/ucontext_i.sym
 create mode 100644 sysdeps/unix/sysv/linux/nds32/vfork.S

-- 
2.7.4

^ permalink raw reply	[flat|nested] 23+ messages in thread

end of thread, other threads:[~2018-06-04 17:26 UTC | newest]

Thread overview: 23+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-05-30 10:47 [PATCH v2 00/12] nds32 glibc port, v2 Vincent Chen
2018-05-30 10:46 ` [PATCH v2 07/12] nds32: Linux Syscall Interface Vincent Chen
2018-05-31 21:52   ` Joseph Myers
2018-06-01  7:55     ` Vincent Chen
2018-05-30 10:46 ` [PATCH v2 08/12] nds32: Linux ABI Vincent Chen
2018-05-30 10:46 ` [PATCH v2 01/12] nds32: Build Infastructure Vincent Chen
2018-06-04 17:26   ` Joseph Myers
2018-05-30 10:46 ` [PATCH v2 06/12] nds32: Atomic and Locking Routines Vincent Chen
2018-05-30 10:47 ` [PATCH v2 12/12] Add nds32 port to build-many-glibcs.py Vincent Chen
2018-05-31 21:56   ` Joseph Myers
2018-05-30 10:47 ` [PATCH v2 09/12] nds32: Add ABI list Vincent Chen
2018-05-30 10:47 ` [PATCH v2 05/12] nds32: Generic <math.h> and soft-fp Routines Vincent Chen
2018-05-31 21:44   ` Joseph Myers
2018-06-01  7:50     ` Vincent Chen
2018-05-30 10:47 ` [PATCH v2 03/12] nds32: Thread-Local Storage Support Vincent Chen
2018-05-31 21:45   ` Joseph Myers
2018-06-01  7:52     ` Vincent Chen
2018-05-30 10:47 ` [PATCH v2 02/12] nds32: ABI Implementation Vincent Chen
2018-05-31 21:50   ` Joseph Myers
2018-05-30 10:47 ` [PATCH v2 10/12] Add Andes nds32 dynamic relocation type to elf/elf.h Vincent Chen
2018-05-30 10:47 ` [PATCH v2 11/12] Add nds32 entries to config.h.in Vincent Chen
2018-05-30 11:19 ` [PATCH v2 04/12] nds32: Startup and Dynamic Loader Vincent Chen
2018-05-31 21:42 ` [PATCH v2 00/12] nds32 glibc port, v2 Joseph Myers

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).