This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
[PATCH v4 00/11] nds32 glibc port, v4
- 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, 5 Jun 2019 19:56:44 +0800
- Subject: [PATCH v4 00/11] nds32 glibc port, v4
This is the fourth version of the nds32 port. I am sorry that one year has
passed since the previous submission. The most obvious modification in this
version patchset is that FPU extension is supported now.In addition,
the mainline of gcc and binutils has contained the nds32 ports.Hence, the
nds32 toolchain without FPU extension support can be derived through
build-many-glibcs.py. The toolchain with FPU extension needs an extra kernel
patchset to successfully compile. This patchset has been pulled and may be
released in 5.2 rc-4. The implementations for nds32 FPU extension are like
other architecture except for the following two parts.
Part 1. The calling convention for variable argument function.
The ABI of nds32 FPU is different to the original ABI, especially
in the transmission of variable arguments.In nds32 original ABI, if
the summation of the number of variable arguments and the constant
arguments are lesser than 6, the caller function still uses general
purpose register to pass the variable argument.However, in nds32 FPU
extension ABI, the caller function directly places the variable
arguments to stack no matter what the number of argument. This causes
these functions with variable arguments cannot use internal_syscallX
macro to issue syscall. Hence the generic builds from syscalls.list
cannot be used for nds32 FPU extension ABI.
Part 2. Overcome the limitation of nds32 FPU on denormalize output.
For most floating point instructions, the denormalized output is
treated as an underflow case.Hence, if the underflow trap is not
enabled, the output is rounded to a normalized number according to
the rounding mode. The accuracy loss from the approximation is
possibly not acceptable for some applications. Hence we added an nds32
specific feature that the kernel can intervene in this kind of
floating point operation and recalculate it by kernel's soft-fp
module.In order for the kernel to capture each denormalized output,
the underflow and inexact bit in $fpcsr, floating pointer control
status register, should be set when this feature is enabled in the
kernel. In addition, a new kernel parameter, UDF_IEX_trap, replaces
$fpcsr to control the state of the user's inexact and underflow trap.
Hence each operation as regard the floating point environment needs to
issue a syscall with the number NR_fp_udfiex_crtl to access the
parameter UDF_IEX_trap to get the state of inexact and underflow trap.
In this mechanism, kernel uses the initial value of $fpcsr to notify
glibc whether this feature is enable or not. To avoid overriding the
initial value of $fpcsr, nds32 specific function __setfpucw is defined.
From the recent discussions in mailing list, I know that the functions such as
clock_settime for Y2038-proof syscall are under development, and I guess that
these functions may not ready before glibc-2.30 code freeze. If nds32 port is
approved by maintainers to the upstream in glibc-2.30 release, does it mean
nds32 ports need to support Y2038-incompatiable functions ? Please correct me
if I have wrong understanding.
The patchest has been cross-tested on the FPGA board based on Linux 5.2 rc-2
and glibc commit 004e52f ebf30012ab (May 21).
The detail result
https://github.com/andestech/glibc/blob/nds32-glibc-2.29-v4/nds32_v3_glibc_test_result.tar.gz
https://github.com/andestech/glibc/blob/nds32-glibc-2.29-v4/nds32_v3f_glibc_test_result.tar.gz
A. Summarize for test results
A1. nds32 port with FP extension toolchain
53 FAIL (15 XFAIL cases are not included)
4983 PASS
34 UNSUPPORTED
A2. nds32 port
32 FAIL (15 XFAIL cases are not included)
5003 PASS
34 UNSUPPORTED
The FAIL cases of nds32 FP extension toolchain are same to the nds32
toolchain except for 20 FAIL cases in math and stdlib/tst-tininess.
nds32 toolchain pass these 21 testcases.
B. The analysis of FAIL cases:
1. The following 20 cases have same error behevior, namespace violation:
"SIOCGSTAMP_OLD", "SIOCGSTAMPNSD", "fds_bits" and "val". The cause of
the first two cases, "SIOCGSTAMP_OLD" and "SIOCGSTAMPNSD", is the same
that Linux kernel recently added the definition of these two macros in
asm-generic/sockios.h. For the last two cases, kernel header
uapi/asm-generic/socket.h includes linux/posix_types.h instead of
asm/bitsperlong.h. This change introduces the two variables "fds_bits"
and "val" declared in the linux/posix_types.h and
asm-generic/posix_types.h.
conform/XOPEN2K/netinet/in.h/conform
conform/XOPEN2K/sys/socket.h/conform
conform/XOPEN2K/netdb.h/conform
conform/XOPEN2K/arpa/inet.h/conform
conform/XPG42/netinet/in.h/conform
conform/XPG42/sys/socket.h/conform
conform/XPG42/netdb.h/conform
conform/XPG42/arpa/inet.h/conform
conform/POSIX2008/netinet/in.h/conform
conform/POSIX2008/sys/socket.h/conform
conform/POSIX2008/netdb.h/conform
conform/POSIX2008/arpa/inet.h/conform
conform/UNIX98/netinet/in.h/conform
conform/UNIX98/sys/socket.h/conform
conform/UNIX98/netdb.h/conform
conform/UNIX98/arpa/inet.h/conform
conform/XOPEN2K8/netinet/in.h/conform
conform/XOPEN2K8/sys/socket.h/conform
conform/XOPEN2K8/netdb.h/conform
conform/XOPEN2K8/arpa/inet.h/conform
2. locale/tst-locale-locpath
I found that the failure is caused by missing the environment parameter
when this testcase is executed on FPGA through cross-test-ssh.sh. I try
to modify the Makefile rule of tst-locale-locpath.out to "$(SHELL) $<
'$(common-objpfx)' '$(test-wrapper-env)' '$(run_program_env)' > $ @;"
.However, the content of $ (run_program_env) is empty so that the
environment parameter is still empty.
The testcase passed if I set the environment parameters by manually.
3. libio/tst-wfile-sync.test-result
The testcases will try to operate the standard input file by lseek
function. However, the standard input is pipe instead of file if this
testcase run on FPGA through cross-test-ssh.sh. This causes testcase gets
an unexpected error ESPIPE from the return of the lseek function.
The testcase passed if it was directly executed on FPGA board.
4. sysvipc/test-sysvsem.test-result
This testcase fails due to unexpected error number, EINVAL, from
function semtimedop. The bug is due to wrong syscall handler of
NR_semtimedop for native 32bit architecture. In Linux 5.2 rc2, the syscall
handler selection of NR_semtimedop is through
__SC_COMP(__NR_semtimedop, sys_semtimedop, sys_semtimedop_time32). It
makes the native 32-bit architecture always select the function
sys_semtimedop as the syscall handler, which uses a 64-bit timespec to
parse the input parameter timeout. I had sent a mail to check the
correctness of above deductions with Arnd Bergmann before submitting this
patchset.
6. The soft-fp module in Linux kernel is too old to the following 21 cases
cannot pass.
FAIL: math/test-double-finite-lround
FAIL: math/test-double-lround
FAIL: math/test-float-double-add
FAIL: math/test-float-double-sub
FAIL: math/test-float-ldouble-add
FAIL: math/test-float-ldouble-sub
FAIL: math/test-float32-float32x-add
FAIL: math/test-float32-float32x-sub
FAIL: math/test-float32-float64-add
FAIL: math/test-float32-float64-sub
FAIL: math/test-float32x-finite-lround
FAIL: math/test-float32x-lround
FAIL: math/test-float64-finite-lround
FAIL: math/test-float64-lround
FAIL: math/test-ldouble-finite-lround
FAIL: math/test-ldouble-lround
FAIL: math/test-float32-fma
FAIL: math/test-float-fma
FAIL: math/test-float32-finite-fma
FAIL: math/test-float-finite-fma
FAIL: stdlib/tst-tininess
The cause of failure can be divided to two parts.
Part 1. If the value can be rounded to most negative integer, the result
of FP_TO_INT_D or FP_TO_INT_ROUND_D is incorrect. The example
case is lround (-0x80000000.4p0). In this case, FP_TO_INT_D
returns most negative integer 0x80000000 and raises the Invalid
exception flag.
Part 2. To Overcome the limitation of nds32 FPU on denormalize output,
any underflow and inexact case will issue a FPU trap that
notifies the kernel to recalculate the floating point operation
through kernel's soft-fp module. However, the soft-fp module in
Linux kernel does not support TININESS_AFTER_ROUNDING but nds32
FPU is TININESS_AFTER_ROUNDING. This mismatch causes some
testcases to fail because the underflow exception flag is raised,
such as stdlib/tst-tininess, add_double (-0x4p-1024, 0x4p-128)
and fma (-0x7.ffffep-128, 0x8.00001p-4, -0x8p-152).
I tried to port the latest soft-fp module from glibc to kernel, and the
above 21 failed testcases turned into PASS based on the latest soft-fp
module. By the way, I found that Joseph tried to update the soft-fp
module in Linux kernel in 2015, but the last status of the patchset seems
to remain pending due to the lack of ACK from sparc maintainer. Does
Joseph have any plans to resend the patchset?
7. misc/tst-syscall-list
This case turns to PASS if I add NR_fp_udfiex_crtl to
linux/syscall-names.list
The remaining FAIL cases are same with v3 patchest
8. The following 6 testcase fail because the testing environment lacks
native python:
./nptl/test-condattr-printers
./nptl/test-cond-printers
./nptl/test-mutexattr-printers
./nptl/test-mutex-printers
./nptl/test-rwlockattr-printers
./nptl/test-rwlock-printers
9. 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.
10. bug20790.test-result
It fails because the testing environment lacks native cpp
The short log of the changes since our v3 includes:
* Add FP extension support
* Use init_array to call PREINIT_FUNCTION
* Modify ports to meet current program flow.
* Update Copyright
[v3] The highlight 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 (10):
nds32: Build Infastructure
nds32: ABI Implementation
nds32: Thread-Local Storage Support
nds32: Startup and Dynamic Loader
nds32: Generic <math.h>, soft-fp and hard-fp Routines
nds32: Atomic and Locking Routines
nds32: Linux Syscall Interface
nds32: Linux ABI
nds32: Add ABI list
Add nds32 entries to config.h.in
config.h.in | 3 +
locale/Makefile | 2 +-
scripts/build-many-glibcs.py | 13 +
sysdeps/nds32/Implies | 4 +
sysdeps/nds32/Makefile | 12 +
sysdeps/nds32/__longjmp.S | 67 +
sysdeps/nds32/atomic-machine.h | 162 ++
sysdeps/nds32/bits/endian.h | 29 +
sysdeps/nds32/bits/fenv.h | 96 +
sysdeps/nds32/bits/link.h | 54 +
sysdeps/nds32/bits/setjmp.h | 60 +
sysdeps/nds32/bsd-_setjmp.S | 1 +
sysdeps/nds32/bsd-setjmp.S | 1 +
sysdeps/nds32/configure | 10 +
sysdeps/nds32/configure.ac | 10 +
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/fpu/e_sqrt.c | 27 +
sysdeps/nds32/fpu/e_sqrtf.c | 26 +
sysdeps/nds32/fpu/fclrexcpt.c | 42 +
sysdeps/nds32/fpu/fedisblxcpt.c | 58 +
sysdeps/nds32/fpu/feenablxcpt.c | 57 +
sysdeps/nds32/fpu/fegetenv.c | 44 +
sysdeps/nds32/fpu/fegetexcept.c | 41 +
sysdeps/nds32/fpu/fegetmode.c | 39 +
sysdeps/nds32/fpu/fegetround.c | 29 +
sysdeps/nds32/fpu/feholdexcpt.c | 29 +
sysdeps/nds32/fpu/fenv_private.h | 229 +++
sysdeps/nds32/fpu/fesetenv.c | 30 +
sysdeps/nds32/fpu/fesetexcept.c | 34 +
sysdeps/nds32/fpu/fesetmode.c | 53 +
sysdeps/nds32/fpu/fesetround.c | 35 +
sysdeps/nds32/fpu/feupdateenv.c | 31 +
sysdeps/nds32/fpu/fgetexcptflg.c | 27 +
sysdeps/nds32/fpu/fix-fp-int-compare-invalid.h | 25 +
sysdeps/nds32/fpu/fix-fp-int-convert-overflow.h | 34 +
sysdeps/nds32/fpu/fpu_control.h | 104 +
sysdeps/nds32/fpu/fraiseexcpt.c | 100 +
sysdeps/nds32/fpu/fsetexcptflg.c | 39 +
sysdeps/nds32/fpu/ftestexcept.c | 27 +
sysdeps/nds32/fpu/get-rounding-mode.h | 39 +
sysdeps/nds32/fpu/libm-test-ulps | 1643 ++++++++++++++++
sysdeps/nds32/fpu/libm-test-ulps-name | 1 +
sysdeps/nds32/fpu/math-barriers.h | 27 +
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 | 25 +
sysdeps/nds32/machine-gmon.h | 34 +
sysdeps/nds32/memcpy.S | 101 +
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 | 23 +
sysdeps/nds32/nptl/pthreaddef.h | 33 +
sysdeps/nds32/nptl/tcb-offsets.sym | 7 +
sysdeps/nds32/nptl/tls.h | 155 ++
sysdeps/nds32/preconfigure | 37 +
sysdeps/nds32/setjmp.S | 103 +
sysdeps/nds32/sfp-machine.h | 68 +
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/tininess.h | 1 +
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 | 16 +
sysdeps/unix/sysv/linux/nds32/Versions | 11 +
sysdeps/unix/sysv/linux/nds32/bits/fcntl.h | 53 +
sysdeps/unix/sysv/linux/nds32/bits/procfs.h | 40 +
sysdeps/unix/sysv/linux/nds32/bits/shmlba.h | 24 +
sysdeps/unix/sysv/linux/nds32/c++-types.data | 67 +
sysdeps/unix/sysv/linux/nds32/clone.S | 70 +
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/fpu/Makefile | 3 +
sysdeps/unix/sysv/linux/nds32/fpu/ioctl.c | 37 +
sysdeps/unix/sysv/linux/nds32/fpu/mremap.c | 37 +
sysdeps/unix/sysv/linux/nds32/fpu/prctl.c | 40 +
sysdeps/unix/sysv/linux/nds32/fpu/setfpucw.c | 50 +
sysdeps/unix/sysv/linux/nds32/getcontext.S | 102 +
sysdeps/unix/sysv/linux/nds32/init-first.c | 48 +
sysdeps/unix/sysv/linux/nds32/ipc_priv.h | 22 +
sysdeps/unix/sysv/linux/nds32/jmp_buf-macros.h | 33 +
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 | 32 +
sysdeps/unix/sysv/linux/nds32/libc.abilist | 2080 ++++++++++++++++++++
sysdeps/unix/sysv/linux/nds32/libcrypt.abilist | 2 +
sysdeps/unix/sysv/linux/nds32/libdl.abilist | 9 +
sysdeps/unix/sysv/linux/nds32/libm.abilist | 753 +++++++
sysdeps/unix/sysv/linux/nds32/libpthread.abilist | 235 +++
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 | 111 ++
sysdeps/unix/sysv/linux/nds32/shlib-versions | 9 +
sysdeps/unix/sysv/linux/nds32/sigcontextinfo.h | 35 +
sysdeps/unix/sysv/linux/nds32/swapcontext.S | 154 ++
sysdeps/unix/sysv/linux/nds32/sys/cachectl.h | 33 +
sysdeps/unix/sysv/linux/nds32/sys/ucontext.h | 88 +
sysdeps/unix/sysv/linux/nds32/sys/user.h | 22 +
sysdeps/unix/sysv/linux/nds32/syscall.c | 39 +
sysdeps/unix/sysv/linux/nds32/syscalls.list | 3 +
sysdeps/unix/sysv/linux/nds32/sysctl.mk | 1 +
sysdeps/unix/sysv/linux/nds32/sysdep.c | 29 +
sysdeps/unix/sysv/linux/nds32/sysdep.h | 340 ++++
sysdeps/unix/sysv/linux/nds32/ucontext_i.sym | 28 +
sysdeps/unix/sysv/linux/nds32/vfork.S | 46 +
135 files changed, 11328 insertions(+), 1 deletion(-)
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/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/fpu/e_sqrt.c
create mode 100644 sysdeps/nds32/fpu/e_sqrtf.c
create mode 100644 sysdeps/nds32/fpu/fclrexcpt.c
create mode 100644 sysdeps/nds32/fpu/fedisblxcpt.c
create mode 100644 sysdeps/nds32/fpu/feenablxcpt.c
create mode 100644 sysdeps/nds32/fpu/fegetenv.c
create mode 100644 sysdeps/nds32/fpu/fegetexcept.c
create mode 100644 sysdeps/nds32/fpu/fegetmode.c
create mode 100644 sysdeps/nds32/fpu/fegetround.c
create mode 100644 sysdeps/nds32/fpu/feholdexcpt.c
create mode 100644 sysdeps/nds32/fpu/fenv_private.h
create mode 100644 sysdeps/nds32/fpu/fesetenv.c
create mode 100644 sysdeps/nds32/fpu/fesetexcept.c
create mode 100644 sysdeps/nds32/fpu/fesetmode.c
create mode 100644 sysdeps/nds32/fpu/fesetround.c
create mode 100644 sysdeps/nds32/fpu/feupdateenv.c
create mode 100644 sysdeps/nds32/fpu/fgetexcptflg.c
create mode 100644 sysdeps/nds32/fpu/fix-fp-int-compare-invalid.h
create mode 100644 sysdeps/nds32/fpu/fix-fp-int-convert-overflow.h
create mode 100644 sysdeps/nds32/fpu/fpu_control.h
create mode 100644 sysdeps/nds32/fpu/fraiseexcpt.c
create mode 100644 sysdeps/nds32/fpu/fsetexcptflg.c
create mode 100644 sysdeps/nds32/fpu/ftestexcept.c
create mode 100644 sysdeps/nds32/fpu/get-rounding-mode.h
create mode 100644 sysdeps/nds32/fpu/libm-test-ulps
create mode 100644 sysdeps/nds32/fpu/libm-test-ulps-name
create mode 100644 sysdeps/nds32/fpu/math-barriers.h
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/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/tininess.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/procfs.h
create mode 100644 sysdeps/unix/sysv/linux/nds32/bits/shmlba.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/fpu/Makefile
create mode 100644 sysdeps/unix/sysv/linux/nds32/fpu/ioctl.c
create mode 100644 sysdeps/unix/sysv/linux/nds32/fpu/mremap.c
create mode 100644 sysdeps/unix/sysv/linux/nds32/fpu/prctl.c
create mode 100644 sysdeps/unix/sysv/linux/nds32/fpu/setfpucw.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/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/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
--
1.9.5