[PATCH 00/12] Meta uClibc port
Markos Chandras
markos.chandras at gmail.com
Thu Feb 21 10:11:31 UTC 2013
From: Markos Chandras <markos.chandras at imgtec.com>
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
More information about the uClibc
mailing list