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