This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
[PATCH v3 00/13] nds32 glibc port, v3
- From: Vincent Chen <vincentc at andestech dot com>
- To: <libc-alpha at sourceware dot org>, <joseph at codesourcery dot com>
- Cc: <deanbo422 at gmail dot com>, <cnoize at andestech dot com>, Vincent Chen <vincentc at andestech dot com>
- Date: Thu, 14 Jun 2018 15:22:43 +0800
- Subject: [PATCH v3 00/13] nds32 glibc port, v3
This is the third submission of the nds32 port. Based on the commit
2b69fecb9d0681a124662dfba89291ad473aa55f (10 Jun), we modify the nds32
port to fit the newer glibc generic flow and Joseph's comments. The
nds32 port for Linux had been included in 4.17. However, the nds32 port
for GCC and Binutils on upstream still cannot work for this patchest.
Therefore, we put the workable GCC and Binutils in our private git
repository 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-v3
The patchest is also cross-tested on the FPGA board with Linux 4.17 and
the FAIL cases are same with v2 patchset. The testing result is
summarized as below.
8 FAIL (16 XFAIL cases are not included)
4982 PASS (2 XPASS cases are not included)
15 UNSUPPORTED
Detail result:
https://github.com/andestech/glibc/blob/nds32-glibc-2.27-v0/sysdeps/nds32/misc/glibc_final_testing_result
FAIL cases:
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
A short log of the changes since our v2 includes:
* Add MAP_FIXED_NOREPLACE definition to mman.h
* Mark _init and _fini as hidden in nds32 crti.S
* Replace u_long with unsigned long int
* Add a space between __attribute__ and '((' in sysdeps/nds32/bits/setjmp.h.
* Remove fno-isolate-erroneous-paths-dereference option from nds32 Makefile
after adding __builtin_trap support to gcc
* Set arch_minimum_kernel as 4.17.0
* Replace 'long' and 'unsigned long' with 'long int' and 'unsigned long int'
* Remove the comma which is after the last element of an enum in
sysdeps/nds32/bits/fenv.h
* Correct copyright
* Remove empty ABI test baselines
* Code cleanup for syscall.c
* Code cleanup for sysdeps/nds32/tls-macros.h
[v2] The highlight of the changes since our v1 includes:
* Update ABI list.
* Upadate libm-test-ulps file.
* 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 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.
* Remove big endian support
* To use generic fork function, define __ASSUME_CLONE_BACKWARDS and remove
nds32 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.
CheWei Chunang (1):
Add nds32 port to build-many-glibcs.py
Vincent Chen (12):
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
Skeleton documentation for the nds32 port
Add Andes nds32 dynamic relocation type to elf/elf.h.
Add nds32 entries to config.h.in
NEWS | 4 +
README | 1 +
config.h.in | 3 +
elf/elf.h | 10 +
scripts/build-many-glibcs.py | 6 +
sysdeps/nds32/Implies | 3 +
sysdeps/nds32/Makefile | 9 +
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 | 79 +
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 | 34 +
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 | 40 +
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/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 ++
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 | 39 +
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 +
109 files changed, 8438 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/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/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