Module Name: src Committed By: joerg Date: Tue Jan 17 20:34:58 UTC 2012
Modified Files: src/lib/libpthread: pthread_int.h src/sys/arch/sun2/include: types.h src/sys/arch/vax/include: types.h src/tests/lib/libc/tls: t_tls_dlopen.c t_tls_dynamic.c t_tls_static.c t_tls_static_helper.c src/tests/lib/libc/tls/dso: h_tls_dlopen.c src/tests/lib/libc/tls_dso: h_tls_dynamic.c src/tests/libexec/ld.elf_so/helper_dso1: h_helper_dso1.c Log Message: Introduce __HAVE_NO___THREAD for sun2 and vax to disable the TLS usage. Require __HAVE_TLS_VARIANT_I or __HAVE_TLS_VARIANT_II as well as __lwp_getprivate_fast / __lwp_gettcb_fast to exist for libpthread. Define VAX as going to use TLS variant I, if it is ever implemented. To generate a diff of this commit: cvs rdiff -u -r1.81 -r1.82 src/lib/libpthread/pthread_int.h cvs rdiff -u -r1.10 -r1.11 src/sys/arch/sun2/include/types.h cvs rdiff -u -r1.43 -r1.44 src/sys/arch/vax/include/types.h cvs rdiff -u -r1.2 -r1.3 src/tests/lib/libc/tls/t_tls_dlopen.c \ src/tests/lib/libc/tls/t_tls_dynamic.c cvs rdiff -u -r1.1 -r1.2 src/tests/lib/libc/tls/t_tls_static.c \ src/tests/lib/libc/tls/t_tls_static_helper.c cvs rdiff -u -r1.3 -r1.4 src/tests/lib/libc/tls/dso/h_tls_dlopen.c cvs rdiff -u -r1.2 -r1.3 src/tests/lib/libc/tls_dso/h_tls_dynamic.c cvs rdiff -u -r1.3 -r1.4 \ src/tests/libexec/ld.elf_so/helper_dso1/h_helper_dso1.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/lib/libpthread/pthread_int.h diff -u src/lib/libpthread/pthread_int.h:1.81 src/lib/libpthread/pthread_int.h:1.82 --- src/lib/libpthread/pthread_int.h:1.81 Thu Oct 6 16:03:48 2011 +++ src/lib/libpthread/pthread_int.h Tue Jan 17 20:34:57 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: pthread_int.h,v 1.81 2011/10/06 16:03:48 christos Exp $ */ +/* $NetBSD: pthread_int.h,v 1.82 2012/01/17 20:34:57 joerg Exp $ */ /*- * Copyright (c) 2001, 2002, 2003, 2006, 2007, 2008 The NetBSD Foundation, Inc. @@ -266,22 +266,8 @@ pthread__self(void) #endif return (pthread_t)tcb->tcb_pthread; } -#elif 0 && defined(__HAVE___LWP_GETPRIVATE_FAST) -static inline pthread_t __constfunc -pthread__self(void) -{ - return (pthread_t)__lwp_getprivate_fast(); -} #else -/* Stack location of pointer to a particular thread */ -extern vaddr_t pthread__mainbase; -extern vaddr_t pthread__mainstruct; -static inline pthread_t -pthread__id(vaddr_t sp) { - vaddr_t va = sp & pthread__threadmask; - return (pthread_t)(va == pthread__mainbase ? pthread__mainstruct : va); -} -#define pthread__self() (pthread__id(pthread__sp())) +#error Either __HAVE_TLS_VARIANT_I or __HAVE_TLS_VARIANT_II must be defined #endif #define pthread__abort() \ Index: src/sys/arch/sun2/include/types.h diff -u src/sys/arch/sun2/include/types.h:1.10 src/sys/arch/sun2/include/types.h:1.11 --- src/sys/arch/sun2/include/types.h:1.10 Sun Jun 12 03:35:47 2011 +++ src/sys/arch/sun2/include/types.h Tue Jan 17 20:34:57 2012 @@ -1,7 +1,8 @@ -/* $NetBSD: types.h,v 1.10 2011/06/12 03:35:47 rmind Exp $ */ +/* $NetBSD: types.h,v 1.11 2012/01/17 20:34:57 joerg Exp $ */ #include <m68k/types.h> #define __HAVE_MM_MD_KERNACC #define __HAVE_MM_MD_DIRECT_MAPPED_PHYS #define __HAVE_MM_MD_READWRITE #define __HAVE_MM_MD_MMAP +#define __HAVE_NO___THREAD Index: src/sys/arch/vax/include/types.h diff -u src/sys/arch/vax/include/types.h:1.43 src/sys/arch/vax/include/types.h:1.44 --- src/sys/arch/vax/include/types.h:1.43 Sun Jun 12 03:35:49 2011 +++ src/sys/arch/vax/include/types.h Tue Jan 17 20:34:57 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: types.h,v 1.43 2011/06/12 03:35:49 rmind Exp $ */ +/* $NetBSD: types.h,v 1.44 2012/01/17 20:34:57 joerg Exp $ */ /*- * Copyright (c) 1990 The Regents of the University of California. @@ -80,5 +80,7 @@ typedef volatile char __cpu_simple_lock_ #define __HAVE_MM_MD_DIRECT_MAPPED_PHYS #define __HAVE___LWP_GETPRIVATE_FAST +#define __HAVE_NO___THREAD +#define __HAVE_TLS_VARIANT_I #endif /* _MACHTYPES_H_ */ Index: src/tests/lib/libc/tls/t_tls_dlopen.c diff -u src/tests/lib/libc/tls/t_tls_dlopen.c:1.2 src/tests/lib/libc/tls/t_tls_dlopen.c:1.3 --- src/tests/lib/libc/tls/t_tls_dlopen.c:1.2 Thu Nov 17 16:20:11 2011 +++ src/tests/lib/libc/tls/t_tls_dlopen.c Tue Jan 17 20:34:57 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: t_tls_dlopen.c,v 1.2 2011/11/17 16:20:11 joerg Exp $ */ +/* $NetBSD: t_tls_dlopen.c,v 1.3 2012/01/17 20:34:57 joerg Exp $ */ /*- * Copyright (c) 2011 The NetBSD Foundation, Inc. * All rights reserved. @@ -32,7 +32,7 @@ */ #include <sys/cdefs.h> -__RCSID("$NetBSD: t_tls_dlopen.c,v 1.2 2011/11/17 16:20:11 joerg Exp $"); +__RCSID("$NetBSD: t_tls_dlopen.c,v 1.3 2012/01/17 20:34:57 joerg Exp $"); #include <atf-c.h> #include <dlfcn.h> @@ -41,7 +41,7 @@ __RCSID("$NetBSD: t_tls_dlopen.c,v 1.2 2 #include <sys/tls.h> -#if !defined(__HAVE_TLS_VARIANT_I) && !defined(__HAVE_TLS_VARIANT_II) +#ifdef __HAVE_NO___THREAD #define __thread #endif @@ -84,7 +84,7 @@ ATF_TC_BODY(t_tls_dlopen, tc) void *handle; pthread_t t; -#if !defined(__HAVE_TLS_VARIANT_I) && !defined(__HAVE_TLS_VARIANT_II) +#ifdef __HAVE_NO___THREAD atf_tc_skip("no TLS support on this platform"); #endif Index: src/tests/lib/libc/tls/t_tls_dynamic.c diff -u src/tests/lib/libc/tls/t_tls_dynamic.c:1.2 src/tests/lib/libc/tls/t_tls_dynamic.c:1.3 --- src/tests/lib/libc/tls/t_tls_dynamic.c:1.2 Thu Nov 17 16:20:11 2011 +++ src/tests/lib/libc/tls/t_tls_dynamic.c Tue Jan 17 20:34:57 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: t_tls_dynamic.c,v 1.2 2011/11/17 16:20:11 joerg Exp $ */ +/* $NetBSD: t_tls_dynamic.c,v 1.3 2012/01/17 20:34:57 joerg Exp $ */ /*- * Copyright (c) 2011 The NetBSD Foundation, Inc. * All rights reserved. @@ -32,7 +32,7 @@ */ #include <sys/cdefs.h> -__RCSID("$NetBSD: t_tls_dynamic.c,v 1.2 2011/11/17 16:20:11 joerg Exp $"); +__RCSID("$NetBSD: t_tls_dynamic.c,v 1.3 2012/01/17 20:34:57 joerg Exp $"); #include <atf-c.h> #include <pthread.h> @@ -40,7 +40,7 @@ __RCSID("$NetBSD: t_tls_dynamic.c,v 1.2 #include <sys/tls.h> -#if !defined(__HAVE_TLS_VARIANT_I) && !defined(__HAVE_TLS_VARIANT_II) +#ifdef __HAVE_NO___THREAD #define __thread #endif @@ -84,7 +84,7 @@ ATF_TC_BODY(t_tls_dynamic, tc) { pthread_t t; -#if !defined(__HAVE_TLS_VARIANT_I) && !defined(__HAVE_TLS_VARIANT_II) +#ifdef __HAVE_NO___THREAD atf_tc_skip("no TLS support on this platform"); #endif Index: src/tests/lib/libc/tls/t_tls_static.c diff -u src/tests/lib/libc/tls/t_tls_static.c:1.1 src/tests/lib/libc/tls/t_tls_static.c:1.2 --- src/tests/lib/libc/tls/t_tls_static.c:1.1 Wed Mar 9 23:10:07 2011 +++ src/tests/lib/libc/tls/t_tls_static.c Tue Jan 17 20:34:57 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: t_tls_static.c,v 1.1 2011/03/09 23:10:07 joerg Exp $ */ +/* $NetBSD: t_tls_static.c,v 1.2 2012/01/17 20:34:57 joerg Exp $ */ /*- * Copyright (c) 2011 The NetBSD Foundation, Inc. * All rights reserved. @@ -32,14 +32,14 @@ */ #include <sys/cdefs.h> -__RCSID("$NetBSD: t_tls_static.c,v 1.1 2011/03/09 23:10:07 joerg Exp $"); +__RCSID("$NetBSD: t_tls_static.c,v 1.2 2012/01/17 20:34:57 joerg Exp $"); #include <atf-c.h> #include <pthread.h> #include <sys/tls.h> -#if !defined(__HAVE_TLS_VARIANT_I) && !defined(__HAVE_TLS_VARIANT_II) +#ifdef __HAVE_NO___THREAD #define __thread #endif @@ -72,7 +72,7 @@ ATF_TC_BODY(t_tls_static, tc) { pthread_t t; -#if !defined(__HAVE_TLS_VARIANT_I) && !defined(__HAVE_TLS_VARIANT_II) +#ifdef __HAVE_NO___THREAD atf_tc_skip("no TLS support on this platform"); #endif Index: src/tests/lib/libc/tls/t_tls_static_helper.c diff -u src/tests/lib/libc/tls/t_tls_static_helper.c:1.1 src/tests/lib/libc/tls/t_tls_static_helper.c:1.2 --- src/tests/lib/libc/tls/t_tls_static_helper.c:1.1 Wed Mar 9 23:10:07 2011 +++ src/tests/lib/libc/tls/t_tls_static_helper.c Tue Jan 17 20:34:57 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: t_tls_static_helper.c,v 1.1 2011/03/09 23:10:07 joerg Exp $ */ +/* $NetBSD: t_tls_static_helper.c,v 1.2 2012/01/17 20:34:57 joerg Exp $ */ /*- * Copyright (c) 2011 The NetBSD Foundation, Inc. * All rights reserved. @@ -32,11 +32,11 @@ */ #include <sys/cdefs.h> -__RCSID("$NetBSD: t_tls_static_helper.c,v 1.1 2011/03/09 23:10:07 joerg Exp $"); +__RCSID("$NetBSD: t_tls_static_helper.c,v 1.2 2012/01/17 20:34:57 joerg Exp $"); #include <sys/tls.h> -#if !defined(__HAVE_TLS_VARIANT_I) && !defined(__HAVE_TLS_VARIANT_II) +#ifdef __HAVE_NO___THREAD #define __thread #endif Index: src/tests/lib/libc/tls/dso/h_tls_dlopen.c diff -u src/tests/lib/libc/tls/dso/h_tls_dlopen.c:1.3 src/tests/lib/libc/tls/dso/h_tls_dlopen.c:1.4 --- src/tests/lib/libc/tls/dso/h_tls_dlopen.c:1.3 Thu Nov 17 16:39:11 2011 +++ src/tests/lib/libc/tls/dso/h_tls_dlopen.c Tue Jan 17 20:34:57 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: h_tls_dlopen.c,v 1.3 2011/11/17 16:39:11 joerg Exp $ */ +/* $NetBSD: h_tls_dlopen.c,v 1.4 2012/01/17 20:34:57 joerg Exp $ */ /*- * Copyright (c) 2011 The NetBSD Foundation, Inc. * All rights reserved. @@ -32,13 +32,13 @@ */ #include <sys/cdefs.h> -__RCSID("$NetBSD: h_tls_dlopen.c,v 1.3 2011/11/17 16:39:11 joerg Exp $"); +__RCSID("$NetBSD: h_tls_dlopen.c,v 1.4 2012/01/17 20:34:57 joerg Exp $"); #include <atf-c.h> #include <unistd.h> #include <sys/tls.h> -#if !defined(__HAVE_TLS_VARIANT_I) && !defined(__HAVE_TLS_VARIANT_II) +#ifdef __HAVE_NO___THREAD #define __thread #endif Index: src/tests/lib/libc/tls_dso/h_tls_dynamic.c diff -u src/tests/lib/libc/tls_dso/h_tls_dynamic.c:1.2 src/tests/lib/libc/tls_dso/h_tls_dynamic.c:1.3 --- src/tests/lib/libc/tls_dso/h_tls_dynamic.c:1.2 Thu Nov 17 16:20:11 2011 +++ src/tests/lib/libc/tls_dso/h_tls_dynamic.c Tue Jan 17 20:34:57 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: h_tls_dynamic.c,v 1.2 2011/11/17 16:20:11 joerg Exp $ */ +/* $NetBSD: h_tls_dynamic.c,v 1.3 2012/01/17 20:34:57 joerg Exp $ */ /*- * Copyright (c) 2011 The NetBSD Foundation, Inc. * All rights reserved. @@ -32,12 +32,12 @@ */ #include <sys/cdefs.h> -__RCSID("$NetBSD: h_tls_dynamic.c,v 1.2 2011/11/17 16:20:11 joerg Exp $"); +__RCSID("$NetBSD: h_tls_dynamic.c,v 1.3 2012/01/17 20:34:57 joerg Exp $"); #include <unistd.h> #include <sys/tls.h> -#if !defined(__HAVE_TLS_VARIANT_I) && !defined(__HAVE_TLS_VARIANT_II) +#ifdef __HAVE_NO___THREAD #define __thread #endif Index: src/tests/libexec/ld.elf_so/helper_dso1/h_helper_dso1.c diff -u src/tests/libexec/ld.elf_so/helper_dso1/h_helper_dso1.c:1.3 src/tests/libexec/ld.elf_so/helper_dso1/h_helper_dso1.c:1.4 --- src/tests/libexec/ld.elf_so/helper_dso1/h_helper_dso1.c:1.3 Sat Jun 11 18:03:19 2011 +++ src/tests/libexec/ld.elf_so/helper_dso1/h_helper_dso1.c Tue Jan 17 20:34:57 2012 @@ -31,7 +31,7 @@ #include <stddef.h> #include <sys/tls.h> -#if !defined(__HAVE_TLS_VARIANT_I) && !defined(__HAVE_TLS_VARIANT_II) +#ifdef __HAVE_NO___THREAD #define __thread #endif