This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
[RFC PATCH V2 00/10] port C-SKY to glibc
- From: Mao Han <han_mao at c-sky dot com>
- To: libc-alpha at sourceware dot org
- Cc: Mao Han <han_mao at c-sky dot com>, c-sky_gcc_upstream at c-sky dot com, gnu-csky at mentor dot com
- Date: Sun, 8 Apr 2018 15:02:23 +0800
- Subject: [RFC PATCH V2 00/10] port C-SKY to glibc
It is a patchset port C-SKY to glibc. More information about us is on
http://en.c-sky.com/.
This patchset adds architecture support to Glibc for CK610, CK807, CK810
processor cores. It base on the release version of 2.27.
CK610 is the second-generation CPU of CSKY, fullycompatible with M*Core.
CK807/CK810 bases on C-SKY V2 instruction set architecture and 16/32-bit
variable length instruction. Including basic core(CK807/CK810),
floating-point enhancement(CK807F/CK810F), multimedia enhancement (CK810D)
and multiple-processing extension (CK807MP/CK810MP).
The porting of C-SKY Glibc is tested in our CI enviroment. Toolchain, kernel,
test packages are built form source code via builtroot. LTP, Lmbench, dhrystone
etc are tested in the enviroment.
Here is our CI envoirnment:
https://gitlab.com/c-sky/buildroot/pipelines
Our sources are available on github.com/c-sky. Including gcc, glibc, uclibc-ng
Linux kernel e.g.
Changes since v1:
- update the changelog format
- clean up unnecessary legacy code and odd comments
- add rel description and fix EM_CSKY check
- remove some arch-specific implementation
- remove DEPRECATED linux syscall support
- support pointer mangling
Mao Han (10):
C-SKY: ABI related code
C-SKY: TLS support
C-SKY: Generic math Routines
C-SKY: Hard Float Support
C-SKY: Atomic and Locking Routines
C-SKY: Linux Syscall Interface
C-SKY: ABI Lists
C-SKY: Build Infastructure
C-SKY: Linux Startup and Dynamic Loading Code
C-SKY: Linux ABI
elf/elf.h | 67 +-
scripts/config.sub | 4 +-
sysdeps/csky/Implies | 4 +
sysdeps/csky/Makefile | 13 +
sysdeps/csky/__longjmp.S | 74 +
sysdeps/csky/abort-instr.h | 2 +
sysdeps/csky/atomic-machine.h | 114 ++
sysdeps/csky/backtrace.c | 128 ++
sysdeps/csky/bits/endian.h | 10 +
sysdeps/csky/bits/fenv.h | 97 +
sysdeps/csky/bits/link.h | 54 +
sysdeps/csky/bits/setjmp.h | 34 +
sysdeps/csky/bsd-_setjmp.S | 1 +
sysdeps/csky/bsd-setjmp.S | 1 +
sysdeps/csky/configure | 4 +
sysdeps/csky/configure.ac | 4 +
sysdeps/csky/crti.S | 96 +
sysdeps/csky/crtn.S | 50 +
sysdeps/csky/csky-mcount.S | 87 +
sysdeps/csky/dl-machine.h | 472 +++++
sysdeps/csky/dl-procinfo.c | 62 +
sysdeps/csky/dl-procinfo.h | 59 +
sysdeps/csky/dl-sysdep.h | 23 +
sysdeps/csky/dl-tls.h | 26 +
sysdeps/csky/dl-tlsdesc.h | 61 +
sysdeps/csky/dl-trampoline.S | 88 +
sysdeps/csky/fenv_private.h | 288 +++
sysdeps/csky/fpu/fclrexcpt.c | 47 +
sysdeps/csky/fpu/fedisblxcpt.c | 46 +
sysdeps/csky/fpu/feenablxcpt.c | 45 +
sysdeps/csky/fpu/fegetenv.c | 42 +
sysdeps/csky/fpu/fegetexcept.c | 37 +
sysdeps/csky/fpu/fegetmode.c | 29 +
sysdeps/csky/fpu/fegetround.c | 39 +
sysdeps/csky/fpu/feholdexcpt.c | 39 +
sysdeps/csky/fpu/fenv_libc.h | 29 +
sysdeps/csky/fpu/fesetenv.c | 64 +
sysdeps/csky/fpu/fesetexcept.c | 37 +
sysdeps/csky/fpu/fesetmode.c | 37 +
sysdeps/csky/fpu/fesetround.c | 41 +
sysdeps/csky/fpu/feupdateenv.c | 51 +
sysdeps/csky/fpu/fgetexcptflg.c | 37 +
sysdeps/csky/fpu/fraiseexcpt.c | 131 ++
sysdeps/csky/fpu/fsetexcptflg.c | 48 +
sysdeps/csky/fpu/ftestexcept.c | 35 +
sysdeps/csky/fpu_control.h | 150 ++
sysdeps/csky/gccframe.h | 21 +
sysdeps/csky/jmpbuf-unwind.h | 47 +
sysdeps/csky/ldsodefs.h | 42 +
sysdeps/csky/libc-tls.c | 32 +
sysdeps/csky/libm-test-ulps | 1682 ++++++++++++++++
sysdeps/csky/libm-test-ulps-name | 1 +
sysdeps/csky/linkmap.h | 5 +
sysdeps/csky/machine-gmon.h | 32 +
sysdeps/csky/macro.S | 30 +
sysdeps/csky/math-tests.h | 35 +
sysdeps/csky/math_private.h | 7 +
sysdeps/csky/memcpy.S | 400 ++++
sysdeps/csky/memusage.h | 20 +
sysdeps/csky/nptl/Makefile | 20 +
sysdeps/csky/nptl/bits/pthreadtypes-arch.h | 71 +
sysdeps/csky/nptl/bits/semaphore.h | 34 +
sysdeps/csky/nptl/pthread-offsets.h | 5 +
sysdeps/csky/nptl/pthreaddef.h | 40 +
sysdeps/csky/nptl/tcb-offsets.sym | 11 +
sysdeps/csky/nptl/tls.h | 179 ++
sysdeps/csky/preconfigure | 4 +
sysdeps/csky/setjmp.S | 113 ++
sysdeps/csky/sfp-machine.h | 50 +
sysdeps/csky/sotruss-lib.c | 49 +
sysdeps/csky/stackinfo.h | 32 +
sysdeps/csky/start.S | 133 ++
sysdeps/csky/strcmp.S | 336 ++++
sysdeps/csky/strcpy.S | 273 +++
sysdeps/csky/sys/ucontext.h | 116 ++
sysdeps/csky/sysdep.h | 45 +
sysdeps/csky/tls-macros.h | 106 +
sysdeps/csky/tst-audit.h | 23 +
sysdeps/unix/csky/abiv2_sysdep.S | 63 +
sysdeps/unix/csky/sysdep.S | 74 +
sysdeps/unix/csky/sysdep.h | 26 +
sysdeps/unix/sysv/linux/csky/Implies | 4 +
sysdeps/unix/sysv/linux/csky/Makefile | 26 +
sysdeps/unix/sysv/linux/csky/Versions | 34 +
sysdeps/unix/sysv/linux/csky/____longjmp_chk.S | 129 ++
sysdeps/unix/sysv/linux/csky/abiv2_brk.c | 56 +
sysdeps/unix/sysv/linux/csky/abiv2_clone.S | 106 +
sysdeps/unix/sysv/linux/csky/abiv2_getcontext.S | 72 +
sysdeps/unix/sysv/linux/csky/abiv2_setcontext.S | 95 +
sysdeps/unix/sysv/linux/csky/abiv2_syscall.S | 68 +
sysdeps/unix/sysv/linux/csky/abiv2_vfork.S | 45 +
sysdeps/unix/sysv/linux/csky/bits/fcntl.h | 55 +
sysdeps/unix/sysv/linux/csky/bits/mman.h | 42 +
sysdeps/unix/sysv/linux/csky/bits/shm.h | 103 +
sysdeps/unix/sysv/linux/csky/brk.c | 61 +
sysdeps/unix/sysv/linux/csky/c++-types.data | 67 +
sysdeps/unix/sysv/linux/csky/clone.S | 99 +
sysdeps/unix/sysv/linux/csky/configure | 5 +
sysdeps/unix/sysv/linux/csky/configure.ac | 6 +
sysdeps/unix/sysv/linux/csky/csky_readtp.h | 24 +
sysdeps/unix/sysv/linux/csky/ftruncate64.c | 41 +
sysdeps/unix/sysv/linux/csky/getcontext.S | 108 +
sysdeps/unix/sysv/linux/csky/ipc_priv.h | 21 +
sysdeps/unix/sysv/linux/csky/jmp_buf-macros.h | 6 +
sysdeps/unix/sysv/linux/csky/kernel-features.h | 29 +
sysdeps/unix/sysv/linux/csky/ld.abilist | 10 +
sysdeps/unix/sysv/linux/csky/ldconfig.h | 24 +
.../unix/sysv/linux/csky/libBrokenLocale.abilist | 2 +
sysdeps/unix/sysv/linux/csky/libanl.abilist | 5 +
sysdeps/unix/sysv/linux/csky/libc-read_tp.S | 1 +
sysdeps/unix/sysv/linux/csky/libc.abilist | 2084 ++++++++++++++++++++
sysdeps/unix/sysv/linux/csky/libcrypt.abilist | 8 +
sysdeps/unix/sysv/linux/csky/libdl.abilist | 10 +
sysdeps/unix/sysv/linux/csky/libm.abilist | 737 +++++++
sysdeps/unix/sysv/linux/csky/libnsl.abilist | 121 ++
sysdeps/unix/sysv/linux/csky/libpthread.abilist | 217 ++
sysdeps/unix/sysv/linux/csky/libresolv.abilist | 80 +
sysdeps/unix/sysv/linux/csky/librt.abilist | 36 +
sysdeps/unix/sysv/linux/csky/libthread_db.abilist | 41 +
sysdeps/unix/sysv/linux/csky/libutil.abilist | 7 +
sysdeps/unix/sysv/linux/csky/makecontext.c | 81 +
sysdeps/unix/sysv/linux/csky/profil-counter.h | 34 +
sysdeps/unix/sysv/linux/csky/pt-vfork.S | 1 +
sysdeps/unix/sysv/linux/csky/read_tp.S | 46 +
sysdeps/unix/sysv/linux/csky/readahead.c | 34 +
sysdeps/unix/sysv/linux/csky/register-dump.h | 218 ++
sysdeps/unix/sysv/linux/csky/scandir64.c | 1 +
sysdeps/unix/sysv/linux/csky/setcontext.S | 128 ++
sysdeps/unix/sysv/linux/csky/shlib-versions | 3 +
sysdeps/unix/sysv/linux/csky/sigcontextinfo.h | 37 +
sysdeps/unix/sysv/linux/csky/swapcontext.S | 112 ++
sysdeps/unix/sysv/linux/csky/sys/cachectl.h | 35 +
sysdeps/unix/sysv/linux/csky/sys/procfs.h | 123 ++
sysdeps/unix/sysv/linux/csky/sys/ucontext.h | 111 ++
sysdeps/unix/sysv/linux/csky/sys/user.h | 65 +
sysdeps/unix/sysv/linux/csky/syscall.S | 61 +
sysdeps/unix/sysv/linux/csky/syscalls.list | 7 +
sysdeps/unix/sysv/linux/csky/sysdep.S | 110 ++
sysdeps/unix/sysv/linux/csky/sysdep.h | 757 +++++++
sysdeps/unix/sysv/linux/csky/ucontext_i.sym | 31 +
140 files changed, 13741 insertions(+), 3 deletions(-)
create mode 100644 sysdeps/csky/Implies
create mode 100644 sysdeps/csky/Makefile
create mode 100644 sysdeps/csky/__longjmp.S
create mode 100644 sysdeps/csky/abort-instr.h
create mode 100644 sysdeps/csky/atomic-machine.h
create mode 100644 sysdeps/csky/backtrace.c
create mode 100644 sysdeps/csky/bits/endian.h
create mode 100644 sysdeps/csky/bits/fenv.h
create mode 100644 sysdeps/csky/bits/link.h
create mode 100644 sysdeps/csky/bits/setjmp.h
create mode 100644 sysdeps/csky/bsd-_setjmp.S
create mode 100644 sysdeps/csky/bsd-setjmp.S
create mode 100644 sysdeps/csky/configure
create mode 100644 sysdeps/csky/configure.ac
create mode 100644 sysdeps/csky/crti.S
create mode 100644 sysdeps/csky/crtn.S
create mode 100644 sysdeps/csky/csky-mcount.S
create mode 100644 sysdeps/csky/dl-machine.h
create mode 100644 sysdeps/csky/dl-procinfo.c
create mode 100644 sysdeps/csky/dl-procinfo.h
create mode 100644 sysdeps/csky/dl-sysdep.h
create mode 100644 sysdeps/csky/dl-tls.h
create mode 100644 sysdeps/csky/dl-tlsdesc.h
create mode 100644 sysdeps/csky/dl-trampoline.S
create mode 100644 sysdeps/csky/fenv_private.h
create mode 100644 sysdeps/csky/fpu/fclrexcpt.c
create mode 100644 sysdeps/csky/fpu/fedisblxcpt.c
create mode 100644 sysdeps/csky/fpu/feenablxcpt.c
create mode 100644 sysdeps/csky/fpu/fegetenv.c
create mode 100644 sysdeps/csky/fpu/fegetexcept.c
create mode 100644 sysdeps/csky/fpu/fegetmode.c
create mode 100644 sysdeps/csky/fpu/fegetround.c
create mode 100644 sysdeps/csky/fpu/feholdexcpt.c
create mode 100644 sysdeps/csky/fpu/fenv_libc.h
create mode 100644 sysdeps/csky/fpu/fesetenv.c
create mode 100644 sysdeps/csky/fpu/fesetexcept.c
create mode 100644 sysdeps/csky/fpu/fesetmode.c
create mode 100644 sysdeps/csky/fpu/fesetround.c
create mode 100644 sysdeps/csky/fpu/feupdateenv.c
create mode 100644 sysdeps/csky/fpu/fgetexcptflg.c
create mode 100644 sysdeps/csky/fpu/fraiseexcpt.c
create mode 100644 sysdeps/csky/fpu/fsetexcptflg.c
create mode 100644 sysdeps/csky/fpu/ftestexcept.c
create mode 100644 sysdeps/csky/fpu_control.h
create mode 100644 sysdeps/csky/gccframe.h
create mode 100644 sysdeps/csky/jmpbuf-unwind.h
create mode 100644 sysdeps/csky/ldsodefs.h
create mode 100644 sysdeps/csky/libc-tls.c
create mode 100644 sysdeps/csky/libm-test-ulps
create mode 100644 sysdeps/csky/libm-test-ulps-name
create mode 100644 sysdeps/csky/linkmap.h
create mode 100644 sysdeps/csky/machine-gmon.h
create mode 100644 sysdeps/csky/macro.S
create mode 100644 sysdeps/csky/math-tests.h
create mode 100644 sysdeps/csky/math_private.h
create mode 100644 sysdeps/csky/memcpy.S
create mode 100644 sysdeps/csky/memusage.h
create mode 100644 sysdeps/csky/nptl/Makefile
create mode 100644 sysdeps/csky/nptl/bits/pthreadtypes-arch.h
create mode 100644 sysdeps/csky/nptl/bits/semaphore.h
create mode 100644 sysdeps/csky/nptl/pthread-offsets.h
create mode 100644 sysdeps/csky/nptl/pthreaddef.h
create mode 100644 sysdeps/csky/nptl/tcb-offsets.sym
create mode 100644 sysdeps/csky/nptl/tls.h
create mode 100644 sysdeps/csky/preconfigure
create mode 100644 sysdeps/csky/setjmp.S
create mode 100644 sysdeps/csky/sfp-machine.h
create mode 100644 sysdeps/csky/sotruss-lib.c
create mode 100644 sysdeps/csky/stackinfo.h
create mode 100644 sysdeps/csky/start.S
create mode 100644 sysdeps/csky/strcmp.S
create mode 100644 sysdeps/csky/strcpy.S
create mode 100644 sysdeps/csky/sys/ucontext.h
create mode 100644 sysdeps/csky/sysdep.h
create mode 100644 sysdeps/csky/tls-macros.h
create mode 100644 sysdeps/csky/tst-audit.h
create mode 100644 sysdeps/unix/csky/abiv2_sysdep.S
create mode 100644 sysdeps/unix/csky/sysdep.S
create mode 100644 sysdeps/unix/csky/sysdep.h
create mode 100644 sysdeps/unix/sysv/linux/csky/Implies
create mode 100644 sysdeps/unix/sysv/linux/csky/Makefile
create mode 100644 sysdeps/unix/sysv/linux/csky/Versions
create mode 100644 sysdeps/unix/sysv/linux/csky/____longjmp_chk.S
create mode 100644 sysdeps/unix/sysv/linux/csky/abiv2_brk.c
create mode 100644 sysdeps/unix/sysv/linux/csky/abiv2_clone.S
create mode 100644 sysdeps/unix/sysv/linux/csky/abiv2_getcontext.S
create mode 100644 sysdeps/unix/sysv/linux/csky/abiv2_setcontext.S
create mode 100644 sysdeps/unix/sysv/linux/csky/abiv2_syscall.S
create mode 100644 sysdeps/unix/sysv/linux/csky/abiv2_vfork.S
create mode 100644 sysdeps/unix/sysv/linux/csky/bits/fcntl.h
create mode 100644 sysdeps/unix/sysv/linux/csky/bits/mman.h
create mode 100644 sysdeps/unix/sysv/linux/csky/bits/shm.h
create mode 100644 sysdeps/unix/sysv/linux/csky/brk.c
create mode 100644 sysdeps/unix/sysv/linux/csky/c++-types.data
create mode 100644 sysdeps/unix/sysv/linux/csky/clone.S
create mode 100644 sysdeps/unix/sysv/linux/csky/configure
create mode 100644 sysdeps/unix/sysv/linux/csky/configure.ac
create mode 100644 sysdeps/unix/sysv/linux/csky/csky_readtp.h
create mode 100644 sysdeps/unix/sysv/linux/csky/ftruncate64.c
create mode 100644 sysdeps/unix/sysv/linux/csky/getcontext.S
create mode 100644 sysdeps/unix/sysv/linux/csky/ipc_priv.h
create mode 100644 sysdeps/unix/sysv/linux/csky/jmp_buf-macros.h
create mode 100644 sysdeps/unix/sysv/linux/csky/kernel-features.h
create mode 100644 sysdeps/unix/sysv/linux/csky/ld.abilist
create mode 100644 sysdeps/unix/sysv/linux/csky/ldconfig.h
create mode 100644 sysdeps/unix/sysv/linux/csky/libBrokenLocale.abilist
create mode 100644 sysdeps/unix/sysv/linux/csky/libanl.abilist
create mode 100644 sysdeps/unix/sysv/linux/csky/libc-read_tp.S
create mode 100644 sysdeps/unix/sysv/linux/csky/libc.abilist
create mode 100644 sysdeps/unix/sysv/linux/csky/libcrypt.abilist
create mode 100644 sysdeps/unix/sysv/linux/csky/libdl.abilist
create mode 100644 sysdeps/unix/sysv/linux/csky/libm.abilist
create mode 100644 sysdeps/unix/sysv/linux/csky/libnsl.abilist
create mode 100644 sysdeps/unix/sysv/linux/csky/libpthread.abilist
create mode 100644 sysdeps/unix/sysv/linux/csky/libresolv.abilist
create mode 100644 sysdeps/unix/sysv/linux/csky/librt.abilist
create mode 100644 sysdeps/unix/sysv/linux/csky/libthread_db.abilist
create mode 100644 sysdeps/unix/sysv/linux/csky/libutil.abilist
create mode 100644 sysdeps/unix/sysv/linux/csky/makecontext.c
create mode 100644 sysdeps/unix/sysv/linux/csky/profil-counter.h
create mode 100644 sysdeps/unix/sysv/linux/csky/pt-vfork.S
create mode 100644 sysdeps/unix/sysv/linux/csky/read_tp.S
create mode 100644 sysdeps/unix/sysv/linux/csky/readahead.c
create mode 100644 sysdeps/unix/sysv/linux/csky/register-dump.h
create mode 100644 sysdeps/unix/sysv/linux/csky/scandir64.c
create mode 100644 sysdeps/unix/sysv/linux/csky/setcontext.S
create mode 100644 sysdeps/unix/sysv/linux/csky/shlib-versions
create mode 100644 sysdeps/unix/sysv/linux/csky/sigcontextinfo.h
create mode 100644 sysdeps/unix/sysv/linux/csky/swapcontext.S
create mode 100644 sysdeps/unix/sysv/linux/csky/sys/cachectl.h
create mode 100644 sysdeps/unix/sysv/linux/csky/sys/procfs.h
create mode 100644 sysdeps/unix/sysv/linux/csky/sys/ucontext.h
create mode 100644 sysdeps/unix/sysv/linux/csky/sys/user.h
create mode 100644 sysdeps/unix/sysv/linux/csky/syscall.S
create mode 100644 sysdeps/unix/sysv/linux/csky/syscalls.list
create mode 100644 sysdeps/unix/sysv/linux/csky/sysdep.S
create mode 100644 sysdeps/unix/sysv/linux/csky/sysdep.h
create mode 100644 sysdeps/unix/sysv/linux/csky/ucontext_i.sym
--
2.7.4