-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On 2/1/2011 7:37 AM, Nitin Garg wrote: > We tried compiling busybox statically for ARMv7 and __tls_get_addr was > undefined. As handled in other architectures, we added the > __tls_get_addr definition for ARM to resolve the issue. > > Kindly review this and include in next release. Thanks, > > Regards, > Nitin Garg >
Hi, Looks good. Similar fix was done for SH indeed. Just few comments in-lined. > diff -Naurp uClibc/libpthread/nptl/sysdeps/arm/libc-tls.c > uClibc.new/libpthread/nptl/sysdeps/arm/libc-tls.c > --- uClibc/libpthread/nptl/sysdeps/arm/libc-tls.c 1969-12-31 > 18:00:00.000000000 -0600 > +++ uClibc.new/libpthread/nptl/sysdeps/arm/libc-tls.c 2010-11-21 > 17:38:43.000000000 -0600 > @@ -0,0 +1,37 @@ > +/* Thread-local storage handling in the ELF dynamic linker. ARM version. > + Copyright (C) 2005 Free Software Foundation, Inc. > + This file is part of the GNU C Library. > + > + The GNU C Library is free software; you can redistribute it and/or > + modify it under the terms of the GNU Lesser General Public > + License as published by the Free Software Foundation; either > + version 2.1 of the License, or (at your option) any later version. > + > + The GNU C Library is distributed in the hope that it will be useful, > + but WITHOUT ANY WARRANTY; without even the implied warranty of > + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU > + Lesser General Public License for more details. > + > + You should have received a copy of the GNU Lesser General Public > + License along with the GNU C Library; if not, write to the Free > + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA > + 02111-1307 USA. */ > + I have some doubts on how we have to manage code extracted from glibc, especially for the copyright assignment. Could someone elaborate ? > +#include <sysdeps/generic/libc-tls.c> > +#include <dl-tls.h> > + > +#if USE_TLS #if defined (USE_TLS) && (USE_TLS) should be better, to avoid warning when TLS is not enabled > + > +/* On ARM, linker optimizations are not required, so __tls_get_addr > + can be called even in statically linked binaries. In this case module > + must be always 1 and PT_TLS segment exist in the binary, otherwise it > + would not link. */ > + > +void * > +__tls_get_addr (tls_index *ti) > +{ > + dtv_t *dtv = THREAD_DTV (); > + return (char *) dtv[1].pointer.val + ti->ti_offset; > +} > + > +#endif > diff -Naurp uClibc/libpthread/nptl/sysdeps/arm/Makefile.arch > uClibc.new/libpthread/nptl/sysdeps/arm/Makefile.arch > --- uClibc/libpthread/nptl/sysdeps/arm/Makefile.arch 2010-11-18 > 12:34:13.000000000 -0600 > +++ uClibc.new/libpthread/nptl/sysdeps/arm/Makefile.arch > 2010-11-21 16:30:48.000000000 -0600 > @@ -15,3 +15,4 @@ ASFLAGS-pthread_spin_lock.S = -DNOT_IN_l > ASFLAGS-pthread_spin_trylock.S = -DNOT_IN_libc -DIS_IN_libpthread > ASFLAGS-aeabi_read_tp.S = -DNOT_IN_libc=1 > > +libc_arch_a_CSRC = libc-tls.c > _______________________________________________ > uClibc mailing list > uClibc@uclibc.org > http://lists.busybox.net/mailman/listinfo/uclibc > Cheers, Carmelo -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.10 (MingW32) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iEYEARECAAYFAk1H2AUACgkQoRq/3BrK1s+zRQCgpCOKOCSgvr7nuDRljk/gwWX4 t9sAoJh/Y5K+BeKLAru80ZcT+HjX9Yav =0Lvp -----END PGP SIGNATURE----- _______________________________________________ uClibc mailing list uClibc@uclibc.org http://lists.busybox.net/mailman/listinfo/uclibc