ARM NPTL support for uClibc
Khem Raj
kraj at mvista.com
Fri Aug 18 06:51:26 UTC 2006
Hi Jim
Nice work. Here are few comments.
__arch_compare_and_exchange_val_32_acq is not going to work from THUMB.
So if uclibc is compiled in thumb mode its not going to work.
same is true for atomic_exchange_acq
I will let you more as I go through the patches more.
Thanks
Khem
Jim Blandy said the following on 8/11/2006 5:28 PM:
> Hi, folks. Building on Steve Hill's work, CodeSourcery has put
> together a uClibc NPTL port for the ARM processor we'd like to
> contribute. Our patch is relative to today's uClibc trunk. This work
> was done for MontaVista.
>
> We've tested it configured for EABI ARM with no threads, using
> linuxthreads.old, and using NPTL (libpthread/linuxthreads doesn't
> support ARM), with no regressions. There is one test suite regression
> relative to the GNU C library, which hopefully I'll get fixed very
> shortly. I've included more detailed results below.
>
> It's a very large patch --- 3MB including the new trees, or 633kB with
> the new directories omitted (libpthread/nptl, libpthread/nptl_db,
> test/nptl, and test/tls). There are changes throughout the uClibc
> tree. The patch is available at the following URL:
>
> http://www.codesourcery.com/public/uClibc-0.9.28-csl-nptl-4.patch.gz
>
> The patch is relative to revision 15785 of the public uClibc trunk.
> You can retrieve this base tree from the public uClibc repository with
> the following command:
>
> $ svn checkout -r 15785 svn://uclibc.org/trunk/uClibc
>
> With much respect and appreciation for Steve Hill's work, we'd like to
> suggest that these changes, once reviewed and revised, be included
> directly on the uClibc trunk, rather than going through Steve's branch
> and being merged to the trunk in December, as he suggested on Tuesday.
> This is an opportunity for uClibc to benefit from Steve's and
> CodeSourcery's efforts immediately, and support NPTL today, on one of
> the most popular embedded processors. Maintaining this patch
> off-trunk through December would be a substantial burden for
> CodeSourcery; patches of this scale bitrot quickly.
>
>
> From our release notes to MontaVista:
>
> ----
>
> TEST RESULTS
>
> This release has no test suite regressions relative to the unmodified
> public uClibc sources, and one regression relative to the GNU C
> library (glibc) thread tests.
>
> As a basis for comparison with uClibc, we use test results from the
> unmodified public uClibc trunk, configured in two ways:
> - with no thread support (called "none" in the chart below)
> - with the old LinuxThreads thread library,
> libpthread/linuxthreads.old (called "old")
>
> We configured our uClibc with our changes in three ways:
> - with no thread support ("none")
> - with the old LinuxThreads thread library ("old")
> - with the NPTL thread library ("nptl")
>
> All tests pass in all configurations, except as follows:
>
> unpatched trunk uClibc-0.9.28-csl-nptl-4
> test none old none old nptl
> ============== ====== ====== ====== ====== ======
> assert/assert (1) fail fail fail fail fail
> mmap/mmap (2) fail fail pass pass pass
> pwd_grp/getgroups (3) fail fail fail fail fail
> time/clocktest hang hang hang hang hang
> regex/testregexi hang hang hang hang hang
> regex/tst-regex2 hang hang hang hang hang
> pthread/ex1 N/A fail N/A hang pass
> pthread/ex6 N/A fail N/A hang pass
>
> "N/A" indicates that the test does not run in that configuration.
> "hang" indicates that the test program runs indefinitely.
>
> (1) The harness for this test is not designed for use with
> cross-compilation.
> (2) The mmap system call does not exist on ARM EABI Linux; it should
> forward to mmap64.
> (3) The test is not written portably.
>
>
> The directories 'test/nptl' and 'test/tls' include tests copied from
> the GNU C library 'nptl' and 'elf' directories. (Some GNU C library
> tests are omitted; these tests are for features not implemented by
> uClibc, like POSIX asynchronous I/O.) These tests run only
> when the NPTL thread library is in use. All these tests pass with
> both the GNU C library and our sources, except as follows:
>
> test GNU C Library uClibc-0.9.28-csl-nptl-4
> ================ ============= ========================
> nptl/tst-cancel7 fail fail
> nptl/tst-cancelx7 fail fail
> nptl/tst-exec4 fail fail
> tls/tst-tls6 pass fail (regression)
> _______________________________________________
> uClibc mailing list
> uClibc at uclibc.org
> http://busybox.net/cgi-bin/mailman/listinfo/uclibc
>
--
Khem Raj <kraj at mvista.com>
MontaVista Software Inc.
More information about the uClibc
mailing list