
|
Home AHM Ipv6 Kdb NPTL Watch Dog Timer LKCD LSB test result Links |
NPTL for XScale(TM):Native POSIX Thread Library(NPTL) is an enhanced implementation of POSIX thread library and tries to replace the linuxthreads implementation with the help of linux kernel.It is designed and implemented by Ulrich Drepper and Ingo Molnar. Its design document could be found at: http://people.redhat.com/drepper/nptl-design.pdf. The latest source code could be found at ftp://people.redhat.com/drepper/nptl/. To enable nptl in one platfrom, three components need be touched: linux kernel, glibc, and nptl. Meanwhile, a TLS(Thread Local Storage) feature support is required in the toolchain. (Its document could be found at http://people.redhat.com/drepper/tls.pdf) However, TLS is absent in arm toolchain. So here is a work-around way. In the linux kernel, a thread register is simulated by an additional field(pd_addr) to thread_struct and two system calls(sys_get/set_thread_area()). __thread keyword is disabled in glibc and nptl. Moreover, some code related TLS in nptl is protected by the glibc macro USE_TLS. So far, all tests in nptl-0.20 have passed in the arm-linux-2.5.59 on pxa-250 platform. :p
TODO
----------
---------
--------------
Steps to build kernel
$ make XXX_config (board related)
Select "File System"-->Virtual memory file sytem support (former shm fs)
$ make oldconfig mount -t tmpfs none /dev/shm/
Steps to build glibc & nptl $ ../glibc-2.3.2/configure arm-linux --prefix=/tmp/install --enable-add-ons=nptl
--without-tls --without-__thread --build=i686-pc-linux-gnu
--with-headers=/nptl_test/linux-2.5.59/include
$ make -j2
$ make subdirs=nptl tests // to build the test cases of nptl
Contactor: Boris Hu
|