Alan Coopersmith <alan.coopersm...@oracle.com> writes: > On 12/22/10 02:30 PM, tom fogal wrote: > > We generally don't copy macros from the autoconf-archive into > xorg-macros, we just use them as is - adding *.m4 files to > packages that need them (especially when it's just one or two > packages, not most of X.Org's 200+ packages). See for instance, > xserver/m4/ac_define_dir.m4
Ahh, okay. I missed that. > Is there any reason not to do that here? Nope. > Why should we add multiple levels of indirection to keep in sync? We shouldn't, I was just ignorant. I'll respin. ... and I have. Attached. Both against xorg/xserver this time. -tom
From c1216dcf63d016ee53aca8c9bbc6592f0c995db1 Mon Sep 17 00:00:00 2001 From: Tom Fogal <tfo...@alumni.unh.edu> Date: Wed, 22 Dec 2010 16:03:03 -0700 Subject: [PATCH 1/2] Add macro for detecting thread local storage support. This adds an AX_TLS macro which attempts to identify if the underlying compiler/platform supports thread local storage (TLS). The macro comes from the autoconf macro archive. Signed-off-by: Tom Fogal <tfo...@alumni.unh.edu> --- m4/ax_tls.m4 | 74 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 74 insertions(+), 0 deletions(-) create mode 100644 m4/ax_tls.m4 diff --git a/m4/ax_tls.m4 b/m4/ax_tls.m4 new file mode 100644 index 0000000..481c3d0 --- /dev/null +++ b/m4/ax_tls.m4 @@ -0,0 +1,74 @@ +# =========================================================================== +# http://www.nongnu.org/autoconf-archive/ax_tls.html +# =========================================================================== +# +# SYNOPSIS +# +# AX_TLS +# +# DESCRIPTION +# +# Provides a test for the compiler support of thread local storage (TLS) +# extensions. Defines TLS if it is found. Currently only knows about GCC +# and MSVC. I think SunPro uses the same as GCC, and Borland apparently +# supports either. +# +# LICENSE +# +# Copyright (c) 2008 Alan Woodland <aj...@aber.ac.uk> +# +# This program is free software: you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by the +# Free Software Foundation, either version 3 of the License, or (at your +# option) any later version. +# +# This program 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 General +# Public License for more details. +# +# You should have received a copy of the GNU General Public License along +# with this program. If not, see <http://www.gnu.org/licenses/>. +# +# As a special exception, the respective Autoconf Macro's copyright owner +# gives unlimited permission to copy, distribute and modify the configure +# scripts that are the output of Autoconf when processing the Macro. You +# need not follow the terms of the GNU General Public License when using +# or distributing such scripts, even though portions of the text of the +# Macro appear in them. The GNU General Public License (GPL) does govern +# all other use of the material that constitutes the Autoconf Macro. +# +# This special exception to the GPL applies to versions of the Autoconf +# Macro released by the Autoconf Archive. When you make and distribute a +# modified version of the Autoconf Macro, you may extend this special +# exception to the GPL to apply to your modified version as well. + +AC_DEFUN([AX_TLS], [ + AC_MSG_CHECKING(for thread local storage (TLS) class) + AC_CACHE_VAL(ac_cv_tls, [ + ax_tls_keywords="__thread __declspec(thread) none" + for ax_tls_keyword in $ax_tls_keywords; do + case $ax_tls_keyword in + none) ac_cv_tls=none ; break ;; + *) + AC_TRY_COMPILE( + [#include <stdlib.h> + static void + foo(void) { + static ] $ax_tls_keyword [ int bar; + exit(1); + }], + [], + [ac_cv_tls=$ax_tls_keyword ; break], + ac_cv_tls=none + ) + esac + done +]) + + if test "$ac_cv_tls" != "none"; then + dnl AC_DEFINE([TLS], [], [If the compiler supports a TLS storage class define it to that here]) + AC_DEFINE_UNQUOTED([TLS], $ac_cv_tls, [If the compiler supports a TLS storage class define it to that here]) + fi + AC_MSG_RESULT($ac_cv_tls) +]) -- 1.7.0.2
From a7c721ce1ebe55805e80d557a2e08e3a6b358b62 Mon Sep 17 00:00:00 2001 From: Tom Fogal <tfo...@alumni.unh.edu> Date: Wed, 22 Dec 2010 14:39:48 -0700 Subject: [PATCH 2/2] Autodetect TLS support instead of defaulting to disabled. Uses the AX_TLS macro to figure out if the current platform supports TLS. If it does, enable TLS automagically. Still respects --enable option, regardless. Signed-off-by: Tom Fogal <tfo...@alumni.unh.edu> --- configure.ac | 9 +++++++-- 1 files changed, 7 insertions(+), 2 deletions(-) diff --git a/configure.ac b/configure.ac index 1ceffe7..e6ada8d 100644 --- a/configure.ac +++ b/configure.ac @@ -597,9 +597,14 @@ dnl GLX build options AC_ARG_ENABLE(aiglx, AS_HELP_STRING([--enable-aiglx], [Build accelerated indirect GLX (default: enabled)]), [AIGLX=$enableval], [AIGLX=yes]) -AC_ARG_ENABLE(glx-tls, AS_HELP_STRING([--enable-glx-tls], [Build GLX with TLS support (default: disabled)]), +AX_TLS +AC_ARG_ENABLE(glx-tls, AS_HELP_STRING([--enable-glx-tls], [Build GLX with TLS support (default: auto)]), [GLX_USE_TLS=$enableval], - [GLX_USE_TLS=no]) + [GLX_USE_TLS=no + if test "${ac_cv_tls}" != "none" ; then + GLX_USE_TLS=yes + fi]) +AC_SUBST(GLX_TLS, ${GLX_USE_TLS}) dnl Extensions. AC_ARG_ENABLE(registry, AS_HELP_STRING([--disable-registry], [Build string registry module (default: enabled)]), [XREGISTRY=$enableval], [XREGISTRY=yes]) -- 1.7.0.2
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev