This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
[PATCH v2 00/12] nds32 glibc port, v2
- 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>, <vincentc at andestech dot com>
- Date: Wed, 30 May 2018 18:45:30 +0800
- Subject: [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