[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