The attached patch adds partial support for ARM NPTL binaries.
It implements the following things:
- The Arm magic kernel code page. This is used on recent Arm kernels to
provide efficient access to kernel/CPU features. For example atomic
operations, and reading the TLS register (which may or may not be a real
hardware register). This is simplified version of the VDSO used on recent x86
and ppc kernels.
- A new Arm specific syscall to set the TLS register.
- Support for the 5-argument form of sys_clone.
This is sufficient to run single-threaded NPTL enabled binaries. I've not yet
implemented the futex syscalls, so multithreaded applications probaby won't
work.
NPTL support is only enabled for ARM. Other architectures may need
architecture specific bits implementing before they can be enabled.