This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH v2 00/12] nds32 glibc port, v2


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]