ARM NPTL support for uClibc
Khem Raj
kraj at mvista.com
Fri Aug 18 01:28:06 PDT 2006
Hi Jim
I am getting
librt/librt_so.a(rt-unwind-resume.oS): In function `init':
rt-unwind-resume.c:(.text+0x54): undefined reference to `__libc_dlopen'
rt-unwind-resume.c:(.text+0x68): undefined reference to `__libc_dlsym'
rt-unwind-resume.c:(.text+0x94): undefined reference to `__libc_fatal'
make: *** [lib/librt.so] Error 1
These functions seems not to be present in uclibc How can I get over
this issue.
Thanks
Khem
Khem Raj said the following on 8/17/2006 11:51 PM:
> 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