This adds support for Kalray kvx arch to uClibc-ng
To check that it builds fine you can do:
git clone
https://cgit.uclibc-ng.org/cgi/cgit/uclibc-ng.git
# Apply this patch to uclibc-ng upstream's master branch
cd uclibc-ng
patch -p1 < path/to/0001-kvx-add-support-for-kvx-arch-to-uClibc-ng.patch
cd -
git clone
https://github.com/kalray/buildroot
cd buildroot
# The following line forces to use your local copy of patch'ed uClibc-ng
# this way you make sure that the patch results in something that builds
echo 'UCLIBC_OVERRIDE_SRCDIR = $(TOPDIR)/../uclibc-ng/' > local.mk
make kvx_defconfig
make
Yann Sionneau (1):
kvx: add support for kvx arch to uClibc-ng
MAINTAINERS | 4 +
README | 2 +-
Rules.mak | 6 +-
extra/Configs/Config.in | 8 +
extra/Configs/Config.kvx | 18 ++
extra/Configs/defconfigs/kvx/defconfig | 1 +
include/elf.h | 87 ++++-
ldso/ldso/kvx/dl-startup.h | 104 ++++++
ldso/ldso/kvx/dl-syscalls.h | 1 +
ldso/ldso/kvx/dl-sysdep.h | 99 ++++++
ldso/ldso/kvx/dl-tlsdesc.S | 33 ++
ldso/ldso/kvx/elfinterp.c | 302 ++++++++++++++++++
ldso/ldso/kvx/resolve.S | 17 +
libc/string/kvx/Makefile | 13 +
libc/string/kvx/memcpy.S | 221 +++++++++++++
libc/string/kvx/memset.S | 146 +++++++++
libc/sysdeps/linux/kvx/Makefile | 13 +
libc/sysdeps/linux/kvx/Makefile.arch | 10 +
libc/sysdeps/linux/kvx/__longjmp.S | 53 +++
libc/sysdeps/linux/kvx/__syscall_error.c | 19 ++
libc/sysdeps/linux/kvx/bits/atomic.h | 141 ++++++++
libc/sysdeps/linux/kvx/bits/endian.h | 13 +
libc/sysdeps/linux/kvx/bits/fcntl.h | 226 +++++++++++++
libc/sysdeps/linux/kvx/bits/fenv.h | 106 ++++++
libc/sysdeps/linux/kvx/bits/kernel_types.h | 42 +++
libc/sysdeps/linux/kvx/bits/posix_types.h | 14 +
libc/sysdeps/linux/kvx/bits/sem.h | 84 +++++
libc/sysdeps/linux/kvx/bits/setjmp.h | 46 +++
libc/sysdeps/linux/kvx/bits/stackinfo.h | 29 ++
libc/sysdeps/linux/kvx/bits/statfs.h | 64 ++++
libc/sysdeps/linux/kvx/bits/syscalls.h | 80 +++++
.../linux/kvx/bits/uClibc_arch_features.h | 41 +++
libc/sysdeps/linux/kvx/bits/wordsize.h | 9 +
libc/sysdeps/linux/kvx/bsd-_setjmp.S | 18 ++
libc/sysdeps/linux/kvx/bsd-setjmp.S | 17 +
libc/sysdeps/linux/kvx/cachectl.c | 15 +
libc/sysdeps/linux/kvx/clone.S | 100 ++++++
libc/sysdeps/linux/kvx/crt1.S | 83 +++++
libc/sysdeps/linux/kvx/crti.S | 31 ++
libc/sysdeps/linux/kvx/crtn.S | 33 ++
libc/sysdeps/linux/kvx/jmpbuf-offsets.h | 50 +++
libc/sysdeps/linux/kvx/jmpbuf-unwind.h | 30 ++
libc/sysdeps/linux/kvx/setjmp.S | 59 ++++
libc/sysdeps/linux/kvx/sys/cachectl.h | 21 ++
libc/sysdeps/linux/kvx/sys/procfs.h | 101 ++++++
libc/sysdeps/linux/kvx/sys/ucontext.h | 29 ++
libc/sysdeps/linux/kvx/sys/user.h | 27 ++
libc/sysdeps/linux/kvx/sysdep.h | 49 +++
libc/sysdeps/linux/kvx/vfork.S | 47 +++
libm/kvx/Makefile.arch | 22 ++
libm/kvx/feclearexcept.c | 20 ++
libm/kvx/fegetenv.c | 21 ++
libm/kvx/fegetexceptflag.c | 24 ++
libm/kvx/fegetround.c | 16 +
libm/kvx/feholdexcept.c | 26 ++
libm/kvx/feraiseexcept.c | 24 ++
libm/kvx/fesetenv.c | 23 ++
libm/kvx/fesetexceptflag.c | 24 ++
libm/kvx/fesetround.c | 21 ++
libm/kvx/fetestexcept.c | 21 ++
libm/kvx/feupdateenv.c | 24 ++
libpthread/nptl/sysdeps/kvx/Makefile.arch | 9 +
libpthread/nptl/sysdeps/kvx/dl-tls.h | 47 +++
libpthread/nptl/sysdeps/kvx/libc-tls.c | 26 ++
.../nptl/sysdeps/kvx/pthread_spin_lock.c | 60 ++++
.../nptl/sysdeps/kvx/pthread_spin_trylock.c | 26 ++
libpthread/nptl/sysdeps/kvx/pthreaddef.h | 26 ++
libpthread/nptl/sysdeps/kvx/tcb-offsets.sym | 6 +
libpthread/nptl/sysdeps/kvx/tls.h | 160 ++++++++++
.../nptl/sysdeps/kvx/unwind-forcedunwind.c | 165 ++++++++++
libpthread/nptl/sysdeps/pthread/Makefile.in | 2 +
.../nptl/sysdeps/unix/sysv/linux/kvx/Makefile | 13 +
.../sysdeps/unix/sysv/linux/kvx/Makefile.arch | 14 +
.../unix/sysv/linux/kvx/bits/pthreadtypes.h | 166 ++++++++++
.../unix/sysv/linux/kvx/bits/semaphore.h | 30 ++
.../unix/sysv/linux/kvx/createthread.c | 14 +
.../nptl/sysdeps/unix/sysv/linux/kvx/fork.c | 11 +
.../unix/sysv/linux/kvx/pthread_once.c | 77 +++++
.../unix/sysv/linux/kvx/sysdep-cancel.h | 43 +++
utils/ldd.c | 5 +
80 files changed, 3925 insertions(+), 3 deletions(-)
create mode 100644 extra/Configs/Config.kvx
create mode 100644 extra/Configs/defconfigs/kvx/defconfig
create mode 100644 ldso/ldso/kvx/dl-startup.h
create mode 100644 ldso/ldso/kvx/dl-syscalls.h
create mode 100644 ldso/ldso/kvx/dl-sysdep.h
create mode 100644 ldso/ldso/kvx/dl-tlsdesc.S
create mode 100644 ldso/ldso/kvx/elfinterp.c
create mode 100644 ldso/ldso/kvx/resolve.S
create mode 100644 libc/string/kvx/Makefile
create mode 100644 libc/string/kvx/memcpy.S
create mode 100644 libc/string/kvx/memset.S
create mode 100644 libc/sysdeps/linux/kvx/Makefile
create mode 100644 libc/sysdeps/linux/kvx/Makefile.arch
create mode 100644 libc/sysdeps/linux/kvx/__longjmp.S
create mode 100644 libc/sysdeps/linux/kvx/__syscall_error.c
create mode 100644 libc/sysdeps/linux/kvx/bits/atomic.h
create mode 100644 libc/sysdeps/linux/kvx/bits/endian.h
create mode 100644 libc/sysdeps/linux/kvx/bits/fcntl.h
create mode 100644 libc/sysdeps/linux/kvx/bits/fenv.h
create mode 100644 libc/sysdeps/linux/kvx/bits/kernel_types.h
create mode 100644 libc/sysdeps/linux/kvx/bits/posix_types.h
create mode 100644 libc/sysdeps/linux/kvx/bits/sem.h
create mode 100644 libc/sysdeps/linux/kvx/bits/setjmp.h
create mode 100644 libc/sysdeps/linux/kvx/bits/stackinfo.h
create mode 100644 libc/sysdeps/linux/kvx/bits/statfs.h
create mode 100644 libc/sysdeps/linux/kvx/bits/syscalls.h
create mode 100644 libc/sysdeps/linux/kvx/bits/uClibc_arch_features.h
create mode 100644 libc/sysdeps/linux/kvx/bits/wordsize.h
create mode 100644 libc/sysdeps/linux/kvx/bsd-_setjmp.S
create mode 100644 libc/sysdeps/linux/kvx/bsd-setjmp.S
create mode 100644 libc/sysdeps/linux/kvx/cachectl.c
create mode 100644 libc/sysdeps/linux/kvx/clone.S
create mode 100644 libc/sysdeps/linux/kvx/crt1.S
create mode 100644 libc/sysdeps/linux/kvx/crti.S
create mode 100644 libc/sysdeps/linux/kvx/crtn.S
create mode 100644 libc/sysdeps/linux/kvx/jmpbuf-offsets.h
create mode 100644 libc/sysdeps/linux/kvx/jmpbuf-unwind.h
create mode 100644 libc/sysdeps/linux/kvx/setjmp.S
create mode 100644 libc/sysdeps/linux/kvx/sys/cachectl.h
create mode 100644 libc/sysdeps/linux/kvx/sys/procfs.h
create mode 100644 libc/sysdeps/linux/kvx/sys/ucontext.h
create mode 100644 libc/sysdeps/linux/kvx/sys/user.h
create mode 100644 libc/sysdeps/linux/kvx/sysdep.h
create mode 100644 libc/sysdeps/linux/kvx/vfork.S
create mode 100644 libm/kvx/Makefile.arch
create mode 100644 libm/kvx/feclearexcept.c
create mode 100644 libm/kvx/fegetenv.c
create mode 100644 libm/kvx/fegetexceptflag.c
create mode 100644 libm/kvx/fegetround.c
create mode 100644 libm/kvx/feholdexcept.c
create mode 100644 libm/kvx/feraiseexcept.c
create mode 100644 libm/kvx/fesetenv.c
create mode 100644 libm/kvx/fesetexceptflag.c
create mode 100644 libm/kvx/fesetround.c
create mode 100644 libm/kvx/fetestexcept.c
create mode 100644 libm/kvx/feupdateenv.c
create mode 100644 libpthread/nptl/sysdeps/kvx/Makefile.arch
create mode 100644 libpthread/nptl/sysdeps/kvx/dl-tls.h
create mode 100644 libpthread/nptl/sysdeps/kvx/libc-tls.c
create mode 100644 libpthread/nptl/sysdeps/kvx/pthread_spin_lock.c
create mode 100644 libpthread/nptl/sysdeps/kvx/pthread_spin_trylock.c
create mode 100644 libpthread/nptl/sysdeps/kvx/pthreaddef.h
create mode 100644 libpthread/nptl/sysdeps/kvx/tcb-offsets.sym
create mode 100644 libpthread/nptl/sysdeps/kvx/tls.h
create mode 100644 libpthread/nptl/sysdeps/kvx/unwind-forcedunwind.c
create mode 100644 libpthread/nptl/sysdeps/unix/sysv/linux/kvx/Makefile
create mode 100644 libpthread/nptl/sysdeps/unix/sysv/linux/kvx/Makefile.arch
create mode 100644 libpthread/nptl/sysdeps/unix/sysv/linux/kvx/bits/pthreadtypes.h
create mode 100644 libpthread/nptl/sysdeps/unix/sysv/linux/kvx/bits/semaphore.h
create mode 100644 libpthread/nptl/sysdeps/unix/sysv/linux/kvx/createthread.c
create mode 100644 libpthread/nptl/sysdeps/unix/sysv/linux/kvx/fork.c
create mode 100644 libpthread/nptl/sysdeps/unix/sysv/linux/kvx/pthread_once.c
create mode 100644 libpthread/nptl/sysdeps/unix/sysv/linux/kvx/sysdep-cancel.h
--
2.17.1