[roland/tls-init] Tile: Define TLS_DEFINE_INIT_TP

Message ID 20140609204547.0A8BE2C39AC@topped-with-meat.com
State Committed
Headers

Commit Message

Roland McGrath June 9, 2014, 8:45 p.m. UTC
  Not tested at all, but this should not change anything.

OK?

Thanks,
Roland


	* sysdeps/tile/nptl/tls.h (TLS_DEFINE_INIT_TP): New macro.
	* sysdeps/unix/sysv/linux/tile/nptl/createthread.c: File removed.
  

Comments

Chris Metcalf June 10, 2014, 4:16 p.m. UTC | #1
On 6/9/2014 4:45 PM, Roland McGrath wrote:
> Not tested at all, but this should not change anything.
>
> OK?
>
> Thanks,
> Roland
>
>
> 	* sysdeps/tile/nptl/tls.h (TLS_DEFINE_INIT_TP): New macro.
> 	* sysdeps/unix/sysv/linux/tile/nptl/createthread.c: File removed.

Built and tested, seems to work fine, looks correct.
  
Roland McGrath June 11, 2014, 7:29 p.m. UTC | #2
Committed.

Your nptl/ removal all looks good, but I would encourage you to also remove
the vfork/pt-vfork distinction as we've done for most other machines now.


Thanks,
Roland
  

Patch

--- a/sysdeps/tile/nptl/tls.h
+++ b/sysdeps/tile/nptl/tls.h
@@ -109,6 +109,10 @@  register void *__thread_pointer asm ("tp");
 # define TLS_INIT_TP(tcbp) \
     (__thread_pointer = (char *)(tcbp) + TLS_TCB_OFFSET, NULL)
 
+/* Value passed to 'clone' for initialization of the thread register.  */
+# define TLS_DEFINE_INIT_TP(tp, pd) \
+  void *tp = (void *) (pd) + TLS_TCB_OFFSET + TLS_PRE_TCB_SIZE
+
 /* Return the address of the dtv for the current thread.  */
 # define THREAD_DTV() \
     (((tcbhead_t *) (__thread_pointer - TLS_TCB_OFFSET))[-1].dtv)
--- a/sysdeps/unix/sysv/linux/tile/nptl/createthread.c
+++ /dev/null
@@ -1,24 +0,0 @@ 
-/* Copyright (C) 2011-2014 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
-
-   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, see
-   <http://www.gnu.org/licenses/>.  */
-
-/* Value passed to 'clone' for initialization of the thread register.  */
-#define TLS_VALUE ((void *) (pd) \
-		   + TLS_TCB_OFFSET + TLS_PRE_TCB_SIZE)
-
-/* Get the real implementation.	 */
-#include <sysdeps/pthread/createthread.c>