-----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

Reply via email to