On Wed, Feb 8, 2012 at 8:11 PM, Zhigang Gong <zhigang.g...@linux.intel.com> wrote: > On Wed, Feb 08, 2012 at 02:46:42PM -0800, Eric Anholt wrote: >> On Wed, 8 Feb 2012 16:19:38 +0800, zhigang.g...@linux.intel.com wrote: >> > From: Zhigang Gong <zhigang.g...@linux.intel.com> >> > >> > If the system support tls, we prefer to enable it by default >> > just as xserver does. Actually, the checking code is copied >> > from xserver/configure.ac. >> > >> > Signed-off-by: Zhigang Gong <zhigang.g...@linux.intel.com> >> > --- >> > configure.ac | 10 ++++++++-- >> > 1 files changed, 8 insertions(+), 2 deletions(-) >> > >> > diff --git a/configure.ac b/configure.ac >> > index b2b1ab8..7c2756b 100644 >> > --- a/configure.ac >> > +++ b/configure.ac >> > @@ -1103,8 +1103,14 @@ dnl >> > AC_ARG_ENABLE([glx-tls], >> > [AS_HELP_STRING([--enable-glx-tls], >> > [enable TLS support in GLX @<:@default=disabled@:>@])], >> > - [GLX_USE_TLS="$enableval"], >> > - [GLX_USE_TLS=no]) >> > + [GLX_USE_TLS=$enableval >> > + if test "x$GLX_USE_TLS" = "xyes" && test "${ac_cv_tls}" = "none" ; >> > then >> > + AC_MSG_ERROR([GLX with TLS support requested, but the compiler >> > does not support it.]) >> > + fi], >> > + [GLX_USE_TLS=no >> > + if test "${ac_cv_tls}" != "none" ; then >> > + GLX_USE_TLS=yes >> > + fi]) >> > AC_SUBST(GLX_TLS, ${GLX_USE_TLS}) >> >> I don't think you have anything setting ac_cv_tls. > > You are right, I forgot to add the checking code which is also from xserver. > Sorry for that, here is the v2 patch: > > From: Zhigang Gong <zhigang.g...@linux.intel.com> > Date: Wed, 8 Feb 2012 16:12:42 +0800 > Subject: [PATCH v2] configure.ac: Enable GLX_USE_TLS if possible. > > If the system support tls, we prefer to enable it by default > just as xserver does. Actually, the checking code is copied > from xserver/configure.ac. > > Signed-off-by: Zhigang Gong <zhigang.g...@linux.intel.com> > --- > configure.ac | 39 +++++++++++++++++++++++++++++++++++++-- > 1 files changed, 37 insertions(+), 2 deletions(-) > > diff --git a/configure.ac b/configure.ac > index b2b1ab8..3dfafba 100644 > --- a/configure.ac > +++ b/configure.ac > @@ -1099,12 +1099,47 @@ esac > dnl > dnl TLS detection > dnl > +AC_MSG_CHECKING(for thread local storage (TLS) support) > +AC_CACHE_VAL(ac_cv_tls, [ > + ac_cv_tls=none > + keywords="__thread __declspec(thread)" > + for kw in $keywords ; do > + AC_TRY_COMPILE([int $kw test;], [], ac_cv_tls=$kw) > + done > +]) > +AC_MSG_RESULT($ac_cv_tls) > + > +if test "$ac_cv_tls" != "none"; then > + AC_MSG_CHECKING(for tls_model attribute support) > + AC_CACHE_VAL(ac_cv_tls_model, [ > + save_CFLAGS="$CFLAGS" > + CFLAGS="$CFLAGS $STRICT_CFLAGS" > + AC_TRY_COMPILE([int $ac_cv_tls > __attribute__((tls_model("initial-exec"))) test;], [], > + ac_cv_tls_model=yes, ac_cv_tls_model=no) > + CFLAGS="$save_CFLAGS" > + ]) > + AC_MSG_RESULT($ac_cv_tls_model) > + > + if test "x$ac_cv_tls_model" = "xyes" ; then > + mesa_tls=$ac_cv_tls' __attribute__((tls_model("initial-exec")))' > + else > + mesa_tls=$ac_cv_tls > + fi Judging by the patch that tried to change the tls_model: https://bugs.freedesktop.org/show_bug.cgi?id=35268 It looks like we'd need to disable enable_asm if the tls_model attribute isn't supported, since it would probably end up defaulting to general-dynamic for PIC code IIRC, and the assembly depends on it being initial-exec. Clang still doesn't support the tls_model attribute, and it doesn't fail compilation: it just gives a -Wattributes warning, so we might need to add '-Werror -Wattributes' (to catch the versions before -Wattributes was added, which give an 'unknown warning option' warning) to the test-compilation CFLAGS...
Plus, the test would have to be moved to before enable_asm is decided and adds the -DUSE_X86_ASM, etc defines. > + > + AC_DEFINE_UNQUOTED([TLS], $mesa_tls, [The compiler supported TLS storage > class, prefering initial-exec if tls_model is supported]) > +fi > > AC_ARG_ENABLE([glx-tls], > [AS_HELP_STRING([--enable-glx-tls], > [enable TLS support in GLX @<:@default=disabled@:>@])], > - [GLX_USE_TLS="$enableval"], > - [GLX_USE_TLS=no]) > + [GLX_USE_TLS=$enableval > + if test "x$GLX_USE_TLS" = "xyes" && test "${ac_cv_tls}" = "none" ; then > + AC_MSG_ERROR([GLX with TLS support requested, but the compiler does > not support it.]) > + fi], > + [GLX_USE_TLS=no > + if test "${ac_cv_tls}" != "none" ; then > + GLX_USE_TLS=yes > + fi]) > AC_SUBST(GLX_TLS, ${GLX_USE_TLS}) > > AS_IF([test "x$GLX_USE_TLS" = xyes], > -- > 1.7.4.4 > > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev