[PATCH 00/12] Meta uClibc port

Markos Chandras markos.chandras at gmail.com
Thu Feb 21 14:00:33 UTC 2013


On 21 February 2013 10:11, Markos Chandras <markos.chandras at gmail.com> wrote:
> 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
>
>
> _______________________________________________
> uClibc mailing list
> uClibc at uclibc.org
> http://lists.busybox.net/mailman/listinfo/uclibc


Patch [07/12] "Add support for the Meta architecture" is awaiting for
approval because it is bigger than what it is currently accepted by
the uClibc mailing list. In the meantime you can review in on github
or I compress it and send it as attachment if that is preferred.

-- 
Regards,
Markos Chandras


More information about the uClibc mailing list