Module Name:    src
Committed By:   matt
Date:           Sat Mar 12 07:55:09 UTC 2011

Modified Files:
        src/lib/libc/arch/powerpc/gen: Makefile.inc _lwp.c
        src/lib/libc/tls: Makefile.inc

Log Message:
Add PPC TLS support.  Add -D_LIBC_SOURCE for tls.c and _lwp.c (powerpc)
so that __lwp_gettcb_fast and __lwp_settcb inlines are define.


To generate a diff of this commit:
cvs rdiff -u -r1.24 -r1.25 src/lib/libc/arch/powerpc/gen/Makefile.inc
cvs rdiff -u -r1.5 -r1.6 src/lib/libc/arch/powerpc/gen/_lwp.c
cvs rdiff -u -r1.1 -r1.2 src/lib/libc/tls/Makefile.inc

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/lib/libc/arch/powerpc/gen/Makefile.inc
diff -u src/lib/libc/arch/powerpc/gen/Makefile.inc:1.24 src/lib/libc/arch/powerpc/gen/Makefile.inc:1.25
--- src/lib/libc/arch/powerpc/gen/Makefile.inc:1.24	Sun Dec  6 07:12:17 2009
+++ src/lib/libc/arch/powerpc/gen/Makefile.inc	Sat Mar 12 07:55:09 2011
@@ -1,4 +1,4 @@
-#	$NetBSD: Makefile.inc,v 1.24 2009/12/06 07:12:17 uebayasi Exp $
+#	$NetBSD: Makefile.inc,v 1.25 2011/03/12 07:55:09 matt Exp $
 
 SRCS+=	__setjmp14.S __sigsetjmp14.S _setjmp.S
 SRCS+=	bswap16.c bswap32.c bswap64.c
@@ -21,6 +21,8 @@
 SRCS+=	fpgetsticky.c fpsetsticky.c
 .endif
 
+CPPFLAGS._lwp.c	+= -D_LIBC_SOURCE
+
 LSRCS.powerpc.gen=Lint_swapcontext.c
 LSRCS+=		${LSRCS.powerpc.gen}
 DPSRCS+=	${LSRCS.powerpc.gen}

Index: src/lib/libc/arch/powerpc/gen/_lwp.c
diff -u src/lib/libc/arch/powerpc/gen/_lwp.c:1.5 src/lib/libc/arch/powerpc/gen/_lwp.c:1.6
--- src/lib/libc/arch/powerpc/gen/_lwp.c:1.5	Thu Feb 24 04:28:42 2011
+++ src/lib/libc/arch/powerpc/gen/_lwp.c	Sat Mar 12 07:55:09 2011
@@ -1,4 +1,4 @@
-/*	$NetBSD: _lwp.c,v 1.5 2011/02/24 04:28:42 joerg Exp $	*/
+/*	$NetBSD: _lwp.c,v 1.6 2011/03/12 07:55:09 matt Exp $	*/
 
 /*
  * Copyright (c) 2001 Wasabi Systems, Inc.
@@ -37,7 +37,7 @@
 
 #include <sys/cdefs.h>
 #if defined(LIBC_SCCS) && !defined(lint)
-__RCSID("$NetBSD: _lwp.c,v 1.5 2011/02/24 04:28:42 joerg Exp $");
+__RCSID("$NetBSD: _lwp.c,v 1.6 2011/03/12 07:55:09 matt Exp $");
 #endif /* LIBC_SCCS and not lint */
 
 #include "namespace.h"
@@ -48,7 +48,7 @@
 
 void
 _lwp_makecontext(ucontext_t *u, void (*start)(void *), void *arg,
-	void *private, caddr_t stack_base, size_t stack_size)
+	void *tcb, caddr_t stack_base, size_t stack_size)
 {
 	void	**sp;
 
@@ -64,5 +64,6 @@
 	u->uc_mcontext.__gregs[1] = ((int) sp) - 12;	/* stack */
 	u->uc_mcontext.__gregs[33] = (int) _lwp_exit;	/* LR */
 	u->uc_mcontext.__gregs[34] = (int) start;	/* PC */
-	u->uc_mcontext.__gregs[_REG_R2] = (__greg_t) private;
+	u->uc_mcontext.__gregs[_REG_R2] =
+	    (__greg_t)tcb + TLS_TP_OFFSET + sizeof(struct tls_tcb);
 }

Index: src/lib/libc/tls/Makefile.inc
diff -u src/lib/libc/tls/Makefile.inc:1.1 src/lib/libc/tls/Makefile.inc:1.2
--- src/lib/libc/tls/Makefile.inc:1.1	Wed Mar  9 23:10:06 2011
+++ src/lib/libc/tls/Makefile.inc	Sat Mar 12 07:55:09 2011
@@ -1,8 +1,9 @@
-#	$NetBSD: Makefile.inc,v 1.1 2011/03/09 23:10:06 joerg Exp $
+#	$NetBSD: Makefile.inc,v 1.2 2011/03/12 07:55:09 matt Exp $
 
 .include <bsd.own.mk>
 
 # Our sources
 .PATH:	${.PARSEDIR} ${ARCHDIR}/tls
 
-SRCS+=	tls.c
+SRCS+=			tls.c
+CPPFLAGS.tls.c+=	-D_LIBC_SOURCE

Reply via email to