From: Markos Chandras <[email protected]> Hi,
This patchset adds support for Imagination's Meta ATP (Meta 1) and HTP (Meta 2) processor cores in uClibc. Meta cores are 32-bit, hardware multithreaded, general purpose, embedded processors which also feature a DSP instruction set, and can be found in many digital radios. They are capable of running different operating systems on different hardware threads, for example a digital radio might run RTOSes for DAB decoding and audio decoding on 3 hardware threads, and run Linux on the 4th hardware thread to manage the user interface, networking etc. HTPs are also capable of running SMP Linux on multiple hardware threads. The patches are based on the master branch, and can also be found in the following git tree: git://github.com/hwoarang/uClibc master-metag https://github.com/hwoarang/uClibc/tree/master-metag Markos Chandras (12): libc/not-cancel.h: Enable pause_not_cancel for arches without __NR_pause libc/pause: Add __pause_not_cancel weak alias. nptl/Makefile.in: Append $(SYMBOL_PREFIX) to symbol names nptl/allocatestack.c: Fix stack mprotect alignment for STACK_GROWS_UP elf: Add ELF magic number and relocations for the Meta architecture ldd: Add MATCH_MACHINE definition for Meta Add support for the Meta architecture libm: Add support for the Meta architecture metag: Add support for loading shared objects into core memories. extra/locale: Mark __codeset_8_bit_t as packed for Meta metag: Add NPTL support sched_setaffinity: Don't use function calls as arguments to INTERNAL_SYSCALL. Rules.mak | 6 + extra/Configs/Config.in | 10 +- extra/Configs/Config.metag | 28 ++ extra/Configs/defconfigs/metag/defconfig | 1 + extra/locale/gen_wc8bit.c | 4 + include/elf.h | 49 +++ ldso/ldso/metag/dl-debug.h | 53 ++++ ldso/ldso/metag/dl-inlines.h | 38 +++ ldso/ldso/metag/dl-startup.h | 69 ++++ ldso/ldso/metag/dl-syscalls.h | 1 + ldso/ldso/metag/dl-sysdep.h | 146 +++++++++ ldso/ldso/metag/elfinterp.c | 338 ++++++++++++++++++++ ldso/ldso/metag/metag_load_tp.S | 50 +++ ldso/ldso/metag/resolve.S | 51 +++ libc/string/metag/Makefile | 13 + libc/string/metag/memchr.S | 154 +++++++++ libc/string/metag/memcpy.S | 187 +++++++++++ libc/string/metag/memmove.S | 347 +++++++++++++++++++++ libc/string/metag/memset.S | 87 ++++++ libc/string/metag/strchr.S | 164 ++++++++++ libc/string/metag/strcmp.S | 62 ++++ libc/string/metag/strcpy.S | 91 ++++++ libc/sysdeps/linux/common/Makefile.in | 1 + libc/sysdeps/linux/common/not-cancel.h | 4 +- libc/sysdeps/linux/common/pause.c | 4 +- libc/sysdeps/linux/common/sched_setaffinity.c | 3 +- libc/sysdeps/linux/metag/Makefile | 13 + libc/sysdeps/linux/metag/Makefile.arch | 12 + libc/sysdeps/linux/metag/__syscall_error.c | 18 ++ libc/sysdeps/linux/metag/_longjmp.S | 22 ++ libc/sysdeps/linux/metag/bits/atomic.h | 77 +++++ libc/sysdeps/linux/metag/bits/endian.h | 7 + libc/sysdeps/linux/metag/bits/fcntl.h | 238 ++++++++++++++ libc/sysdeps/linux/metag/bits/fenv.h | 77 +++++ libc/sysdeps/linux/metag/bits/ipc.h | 55 ++++ libc/sysdeps/linux/metag/bits/kernel_types.h | 41 +++ libc/sysdeps/linux/metag/bits/profil-counter.h | 15 + libc/sysdeps/linux/metag/bits/setjmp.h | 43 +++ libc/sysdeps/linux/metag/bits/sigcontextinfo.h | 12 + libc/sysdeps/linux/metag/bits/stackinfo.h | 28 ++ libc/sysdeps/linux/metag/bits/syscalls.h | 109 +++++++ .../linux/metag/bits/uClibc_arch_features.h | 45 +++ libc/sysdeps/linux/metag/bits/wordsize.h | 19 ++ libc/sysdeps/linux/metag/brk.c | 38 +++ libc/sysdeps/linux/metag/clone.S | 99 ++++++ libc/sysdeps/linux/metag/crt1.S | 72 +++++ libc/sysdeps/linux/metag/crti.S | 17 + libc/sysdeps/linux/metag/crtn.S | 17 + libc/sysdeps/linux/metag/libc-metag_load_tp.S | 1 + libc/sysdeps/linux/metag/metag.c | 7 + libc/sysdeps/linux/metag/setjmp.S | 48 +++ libc/sysdeps/linux/metag/sys/io.h | 48 +++ libc/sysdeps/linux/metag/sys/procfs.h | 121 +++++++ libc/sysdeps/linux/metag/sys/ucontext.h | 96 ++++++ libc/sysdeps/linux/metag/sys/user.h | 1 + libc/sysdeps/linux/metag/syscall.c | 40 +++ libc/sysdeps/linux/metag/sysdep.h | 71 +++++ libc/sysdeps/linux/metag/vfork.S | 80 +++++ libm/metag/Makefile.arch | 24 ++ libm/metag/fclrexcpt.c | 44 +++ libm/metag/fedisblxcpt.c | 40 +++ libm/metag/feenablxcpt.c | 40 +++ libm/metag/fegetenv.c | 36 +++ libm/metag/fegetexcept.c | 31 ++ libm/metag/fegetround.c | 30 ++ libm/metag/feholdexcpt.c | 41 +++ libm/metag/fesetenv.c | 60 ++++ libm/metag/fesetround.c | 41 +++ libm/metag/feupdateenv.c | 45 +++ libm/metag/fgetexcptflg.c | 34 ++ libm/metag/fraiseexcpt.c | 92 ++++++ libm/metag/fsetexcptflg.c | 44 +++ libm/metag/ftestexcept.c | 32 ++ libm/metag/internal.h | 2 + libpthread/nptl/Makefile.in | 2 +- libpthread/nptl/allocatestack.c | 2 +- libpthread/nptl/sysdeps/metag/Makefile.arch | 17 + libpthread/nptl/sysdeps/metag/dl-tls.h | 29 ++ libpthread/nptl/sysdeps/metag/jmpbuf-unwind.h | 36 +++ libpthread/nptl/sysdeps/metag/libc-tls.c | 31 ++ libpthread/nptl/sysdeps/metag/metag_load_tp.S | 1 + libpthread/nptl/sysdeps/metag/pthread_spin_init.c | 20 ++ libpthread/nptl/sysdeps/metag/pthread_spin_lock.S | 33 ++ .../nptl/sysdeps/metag/pthread_spin_trylock.S | 37 +++ .../nptl/sysdeps/metag/pthread_spin_unlock.S | 29 ++ libpthread/nptl/sysdeps/metag/pthreaddef.h | 40 +++ libpthread/nptl/sysdeps/metag/tcb-offsets.sym | 15 + libpthread/nptl/sysdeps/metag/tls.h | 163 ++++++++++ .../nptl/sysdeps/unix/sysv/linux/metag/Makefile | 13 + .../sysdeps/unix/sysv/linux/metag/Makefile.arch | 34 ++ .../unix/sysv/linux/metag/bits/pthreadtypes.h | 181 +++++++++++ .../sysdeps/unix/sysv/linux/metag/bits/semaphore.h | 35 +++ .../nptl/sysdeps/unix/sysv/linux/metag/clone.S | 3 + .../sysdeps/unix/sysv/linux/metag/createthread.c | 23 ++ .../nptl/sysdeps/unix/sysv/linux/metag/fork.c | 31 ++ .../unix/sysv/linux/metag/libc-lowlevellock.c | 21 ++ .../sysdeps/unix/sysv/linux/metag/lowlevellock.c | 134 ++++++++ .../sysdeps/unix/sysv/linux/metag/lowlevellock.h | 282 +++++++++++++++++ .../unix/sysv/linux/metag/pt-__syscall_error.c | 1 + .../sysv/linux/metag/pt-__syscall_rt_sigaction.c | 1 + .../unix/sysv/linux/metag/pt-gettimeofday.c | 5 + .../nptl/sysdeps/unix/sysv/linux/metag/pt-vfork.S | 51 +++ .../sysdeps/unix/sysv/linux/metag/pthread_once.c | 100 ++++++ .../sysdeps/unix/sysv/linux/metag/sysdep-cancel.h | 152 +++++++++ .../nptl/sysdeps/unix/sysv/linux/metag/vfork.S | 56 ++++ utils/ldd.c | 5 + 106 files changed, 5759 insertions(+), 8 deletions(-) create mode 100644 extra/Configs/Config.metag create mode 100644 extra/Configs/defconfigs/metag/defconfig create mode 100644 ldso/ldso/metag/dl-debug.h create mode 100644 ldso/ldso/metag/dl-inlines.h create mode 100644 ldso/ldso/metag/dl-startup.h create mode 100644 ldso/ldso/metag/dl-syscalls.h create mode 100644 ldso/ldso/metag/dl-sysdep.h create mode 100644 ldso/ldso/metag/elfinterp.c create mode 100644 ldso/ldso/metag/metag_load_tp.S create mode 100644 ldso/ldso/metag/resolve.S create mode 100644 libc/string/metag/Makefile create mode 100644 libc/string/metag/memchr.S create mode 100644 libc/string/metag/memcpy.S create mode 100644 libc/string/metag/memmove.S create mode 100644 libc/string/metag/memset.S create mode 100644 libc/string/metag/strchr.S create mode 100644 libc/string/metag/strcmp.S create mode 100644 libc/string/metag/strcpy.S create mode 100644 libc/sysdeps/linux/metag/Makefile create mode 100644 libc/sysdeps/linux/metag/Makefile.arch create mode 100644 libc/sysdeps/linux/metag/__syscall_error.c create mode 100644 libc/sysdeps/linux/metag/_longjmp.S create mode 100644 libc/sysdeps/linux/metag/bits/atomic.h create mode 100644 libc/sysdeps/linux/metag/bits/endian.h create mode 100644 libc/sysdeps/linux/metag/bits/fcntl.h create mode 100644 libc/sysdeps/linux/metag/bits/fenv.h create mode 100644 libc/sysdeps/linux/metag/bits/ipc.h create mode 100644 libc/sysdeps/linux/metag/bits/kernel_types.h create mode 100644 libc/sysdeps/linux/metag/bits/profil-counter.h create mode 100644 libc/sysdeps/linux/metag/bits/setjmp.h create mode 100644 libc/sysdeps/linux/metag/bits/sigcontextinfo.h create mode 100644 libc/sysdeps/linux/metag/bits/stackinfo.h create mode 100644 libc/sysdeps/linux/metag/bits/syscalls.h create mode 100644 libc/sysdeps/linux/metag/bits/uClibc_arch_features.h create mode 100644 libc/sysdeps/linux/metag/bits/wordsize.h create mode 100644 libc/sysdeps/linux/metag/brk.c create mode 100644 libc/sysdeps/linux/metag/clone.S create mode 100644 libc/sysdeps/linux/metag/crt1.S create mode 100644 libc/sysdeps/linux/metag/crti.S create mode 100644 libc/sysdeps/linux/metag/crtn.S create mode 100644 libc/sysdeps/linux/metag/libc-metag_load_tp.S create mode 100644 libc/sysdeps/linux/metag/metag.c create mode 100644 libc/sysdeps/linux/metag/setjmp.S create mode 100644 libc/sysdeps/linux/metag/sys/io.h create mode 100644 libc/sysdeps/linux/metag/sys/procfs.h create mode 100644 libc/sysdeps/linux/metag/sys/ucontext.h create mode 100644 libc/sysdeps/linux/metag/sys/user.h create mode 100644 libc/sysdeps/linux/metag/syscall.c create mode 100644 libc/sysdeps/linux/metag/sysdep.h create mode 100644 libc/sysdeps/linux/metag/vfork.S create mode 100644 libm/metag/Makefile.arch create mode 100644 libm/metag/fclrexcpt.c create mode 100644 libm/metag/fedisblxcpt.c create mode 100644 libm/metag/feenablxcpt.c create mode 100644 libm/metag/fegetenv.c create mode 100644 libm/metag/fegetexcept.c create mode 100644 libm/metag/fegetround.c create mode 100644 libm/metag/feholdexcpt.c create mode 100644 libm/metag/fesetenv.c create mode 100644 libm/metag/fesetround.c create mode 100644 libm/metag/feupdateenv.c create mode 100644 libm/metag/fgetexcptflg.c create mode 100644 libm/metag/fraiseexcpt.c create mode 100644 libm/metag/fsetexcptflg.c create mode 100644 libm/metag/ftestexcept.c create mode 100644 libm/metag/internal.h create mode 100644 libpthread/nptl/sysdeps/metag/Makefile.arch create mode 100644 libpthread/nptl/sysdeps/metag/dl-tls.h create mode 100644 libpthread/nptl/sysdeps/metag/jmpbuf-unwind.h create mode 100644 libpthread/nptl/sysdeps/metag/libc-tls.c create mode 100644 libpthread/nptl/sysdeps/metag/metag_load_tp.S create mode 100644 libpthread/nptl/sysdeps/metag/pthread_spin_init.c create mode 100644 libpthread/nptl/sysdeps/metag/pthread_spin_lock.S create mode 100644 libpthread/nptl/sysdeps/metag/pthread_spin_trylock.S create mode 100644 libpthread/nptl/sysdeps/metag/pthread_spin_unlock.S create mode 100644 libpthread/nptl/sysdeps/metag/pthreaddef.h create mode 100644 libpthread/nptl/sysdeps/metag/tcb-offsets.sym create mode 100644 libpthread/nptl/sysdeps/metag/tls.h create mode 100644 libpthread/nptl/sysdeps/unix/sysv/linux/metag/Makefile create mode 100644 libpthread/nptl/sysdeps/unix/sysv/linux/metag/Makefile.arch create mode 100644 libpthread/nptl/sysdeps/unix/sysv/linux/metag/bits/pthreadtypes.h create mode 100644 libpthread/nptl/sysdeps/unix/sysv/linux/metag/bits/semaphore.h create mode 100644 libpthread/nptl/sysdeps/unix/sysv/linux/metag/clone.S create mode 100644 libpthread/nptl/sysdeps/unix/sysv/linux/metag/createthread.c create mode 100644 libpthread/nptl/sysdeps/unix/sysv/linux/metag/fork.c create mode 100644 libpthread/nptl/sysdeps/unix/sysv/linux/metag/libc-lowlevellock.c create mode 100644 libpthread/nptl/sysdeps/unix/sysv/linux/metag/lowlevellock.c create mode 100644 libpthread/nptl/sysdeps/unix/sysv/linux/metag/lowlevellock.h create mode 100644 libpthread/nptl/sysdeps/unix/sysv/linux/metag/pt-__syscall_error.c create mode 100644 libpthread/nptl/sysdeps/unix/sysv/linux/metag/pt-__syscall_rt_sigaction.c create mode 100644 libpthread/nptl/sysdeps/unix/sysv/linux/metag/pt-gettimeofday.c create mode 100644 libpthread/nptl/sysdeps/unix/sysv/linux/metag/pt-vfork.S create mode 100644 libpthread/nptl/sysdeps/unix/sysv/linux/metag/pthread_once.c create mode 100644 libpthread/nptl/sysdeps/unix/sysv/linux/metag/sysdep-cancel.h create mode 100644 libpthread/nptl/sysdeps/unix/sysv/linux/metag/vfork.S -- 1.8.1.2 _______________________________________________ uClibc mailing list [email protected] http://lists.busybox.net/mailman/listinfo/uclibc
