From 7beff712f02f83f6c2327da735f9aa504b919e00 Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Wed, 10 Jun 2009 14:55:04 +0000 Subject: [PATCH] added --disable-tls option and use it by default under NetBSD which is reported to not have TLS support git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@60978 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- configure | 100 ++++++++++++++++++++++++++++++++++++++++----------- configure.in | 91 ++++++++++++++++++++++++++-------------------- 2 files changed, 131 insertions(+), 60 deletions(-) diff --git a/configure b/configure index c194d90ab8..277c06438a 100755 --- a/configure +++ b/configure @@ -1,5 +1,5 @@ #! /bin/sh -# From configure.in Id: configure.in 60470 2009-05-02 12:52:54Z VZ . +# From configure.in Id: configure.in 60555 2009-05-08 23:12:57Z VZ . # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.61 for wxWidgets 2.9.0. # @@ -1693,6 +1693,7 @@ Optional Features: --disable-rpath disable use of rpath for uninstalled builds --enable-objc_uniquifying enable Objective-C class name uniquifying --disable-visibility disable use of ELF symbols visibility even if supported + --disable-tls disable use of compiler TLS support --enable-intl use internationalization system --enable-xlocale use x-locale support (requires wxLocale) --enable-config use wxConfig (and derived) classes @@ -2930,6 +2931,7 @@ DEFAULT_wxUSE_GSTREAMER8=no DEFAULT_wxUSE_UNICODE_UTF8=auto DEFAULT_wxUSE_OPENGL=auto DEFAULT_wxUSE_MEDIACTRL=auto +DEFAULT_wxUSE_COMPILER_TLS=auto DEFAULT_wxUSE_UNICODE_UTF8_LOCALE=no @@ -5583,6 +5585,50 @@ fi echo "${ECHO_T}$result" >&6; } + enablestring=disable + defaultval= + if test -z "$defaultval"; then + if test x"$enablestring" = xdisable; then + defaultval=yes + else + defaultval=no + fi + fi + + { echo "$as_me:$LINENO: checking for --${enablestring:-enable}-tls" >&5 +echo $ECHO_N "checking for --${enablestring:-enable}-tls... $ECHO_C" >&6; } + # Check whether --enable-tls was given. +if test "${enable_tls+set}" = set; then + enableval=$enable_tls; + if test "$enableval" = yes; then + wx_cv_use_tls='wxUSE_COMPILER_TLS=yes' + else + wx_cv_use_tls='wxUSE_COMPILER_TLS=no' + fi + +else + + wx_cv_use_tls='wxUSE_COMPILER_TLS=${'DEFAULT_wxUSE_COMPILER_TLS":-$defaultval}" + +fi + + + eval "$wx_cv_use_tls" + + if test x"$enablestring" = xdisable; then + if test $wxUSE_COMPILER_TLS = yes; then + result=no + else + result=yes + fi + else + result=$wxUSE_COMPILER_TLS + fi + + { echo "$as_me:$LINENO: result: $result" >&5 +echo "${ECHO_T}$result" >&6; } + + enablestring= @@ -40239,13 +40285,24 @@ echo "$as_me: WARNING: wxMutex won't be recursive on this platform" >&2;} fi fi - { echo "$as_me:$LINENO: checking for __thread keyword" >&5 + if test "$wxUSE_COMPILER_TLS" = "auto"; then + if test "$USE_NETBSD" = 1; then + { echo "$as_me:$LINENO: WARNING: Disabling TLS under NetBSD, please contact wx-dev if it works now" >&5 +echo "$as_me: WARNING: Disabling TLS under NetBSD, please contact wx-dev if it works now" >&2;} + wxUSE_COMPILER_TLS=no + else + wxUSE_COMPILER_TLS=yes + fi + fi + + if test "$wxUSE_COMPILER_TLS" = "yes"; then + { echo "$as_me:$LINENO: checking for __thread keyword" >&5 echo $ECHO_N "checking for __thread keyword... $ECHO_C" >&6; } if test "${wx_cv_cc___thread+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else - cat >conftest.$ac_ext <<_ACEOF + cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -40256,8 +40313,8 @@ int main () { - static __thread int n = 0; - static __thread int *p = 0; + static __thread int n = 0; + static __thread int *p = 0; ; return 0; @@ -40296,7 +40353,7 @@ fi { echo "$as_me:$LINENO: result: $wx_cv_cc___thread" >&5 echo "${ECHO_T}$wx_cv_cc___thread" >&6; } - if test "$wx_cv_cc___thread" = "yes"; then + if test "$wx_cv_cc___thread" = "yes"; then GXX_VERSION="" @@ -40396,29 +40453,30 @@ fi - if test -n "$ax_cv_gxx_version"; then - { echo "$as_me:$LINENO: checking whether __thread support in g++ is usable" >&5 + if test -n "$ax_cv_gxx_version"; then + { echo "$as_me:$LINENO: checking whether __thread support in g++ is usable" >&5 echo $ECHO_N "checking whether __thread support in g++ is usable... $ECHO_C" >&6; } - case "$ax_cv_gxx_version" in - 1.* | 2.* | 3.* ) - { echo "$as_me:$LINENO: result: no, it's broken" >&5 + case "$ax_cv_gxx_version" in + 1.* | 2.* | 3.* ) + { echo "$as_me:$LINENO: result: no, it's broken" >&5 echo "${ECHO_T}no, it's broken" >&6; } - wx_cv_cc___thread=no - ;; - *) - { echo "$as_me:$LINENO: result: yes, it works" >&5 + wx_cv_cc___thread=no + ;; + *) + { echo "$as_me:$LINENO: result: yes, it works" >&5 echo "${ECHO_T}yes, it works" >&6; } - ;; - esac + ;; + esac + fi fi - fi - if test "$wx_cv_cc___thread" = "yes"; then - cat >>confdefs.h <<\_ACEOF + if test "$wx_cv_cc___thread" = "yes"; then + cat >>confdefs.h <<\_ACEOF #define HAVE___THREAD_KEYWORD 1 _ACEOF - fi + fi + fi fi else diff --git a/configure.in b/configure.in index c0dda91e9d..8804175a4a 100644 --- a/configure.in +++ b/configure.in @@ -388,6 +388,7 @@ dnl automatic features DEFAULT_wxUSE_UNICODE_UTF8=auto DEFAULT_wxUSE_OPENGL=auto DEFAULT_wxUSE_MEDIACTRL=auto +DEFAULT_wxUSE_COMPILER_TLS=auto DEFAULT_wxUSE_UNICODE_UTF8_LOCALE=no @@ -687,6 +688,7 @@ WX_ARG_DISABLE(rpath, [ --disable-rpath disable use of rpath for WX_ARG_ENABLE(objc_uniquifying,[ --enable-objc_uniquifying enable Objective-C class name uniquifying], wxUSE_OBJC_UNIQUIFYING) WX_ARG_DISABLE(visibility, [ --disable-visibility disable use of ELF symbols visibility even if supported], wxUSE_VISIBILITY) +WX_ARG_DISABLE(tls, [ --disable-tls disable use of compiler TLS support], wxUSE_COMPILER_TLS) dnl --------------------------------------------------------------------------- dnl optional non GUI features @@ -4985,48 +4987,59 @@ if test "$TOOLKIT" != "MSW" -a "$USE_OS2" != 1; then fi fi - dnl test for compiler thread-specific variables support - AC_CACHE_CHECK([for __thread keyword], - wx_cv_cc___thread, - [ - AC_TRY_COMPILE([#include ], - [ - static __thread int n = 0; - static __thread int *p = 0; - ], - wx_cv_cc___thread=yes, - wx_cv_cc___thread=no - ) - ] - ) - - if test "$wx_cv_cc___thread" = "yes"; then - AX_GXX_VERSION - if test -n "$ax_cv_gxx_version"; then - dnl g++ supports __thread since at least version 3.3 but its support - dnl seems to be broken until 4.1, see - dnl http://thread.gmane.org/gmane.comp.lib.wxwidgets.devel/108388 - dnl - dnl NB: we still need to test __thread support with - dnl AC_TRY_COMPILE above even for g++ 4 as it doesn't - dnl support it for all architectures (e.g. it doesn't - dnl work under OS X) - AC_MSG_CHECKING([whether __thread support in g++ is usable]) - case "$ax_cv_gxx_version" in - 1.* | 2.* | 3.* ) - AC_MSG_RESULT([no, it's broken]) - wx_cv_cc___thread=no - ;; - *) - AC_MSG_RESULT([yes, it works]) - ;; - esac + if test "$wxUSE_COMPILER_TLS" = "auto"; then + if test "$USE_NETBSD" = 1; then + AC_MSG_WARN([Disabling TLS under NetBSD, please contact wx-dev if it works now]) + wxUSE_COMPILER_TLS=no + else + wxUSE_COMPILER_TLS=yes fi fi - if test "$wx_cv_cc___thread" = "yes"; then - AC_DEFINE(HAVE___THREAD_KEYWORD) - fi + if test "$wxUSE_COMPILER_TLS" = "yes"; then + dnl test for compiler thread-specific variables support + AC_CACHE_CHECK([for __thread keyword], + wx_cv_cc___thread, + [ + AC_TRY_COMPILE([#include ], + [ + static __thread int n = 0; + static __thread int *p = 0; + ], + wx_cv_cc___thread=yes, + wx_cv_cc___thread=no + ) + ] + ) + + if test "$wx_cv_cc___thread" = "yes"; then + AX_GXX_VERSION + if test -n "$ax_cv_gxx_version"; then + dnl g++ supports __thread since at least version 3.3 but its support + dnl seems to be broken until 4.1, see + dnl http://thread.gmane.org/gmane.comp.lib.wxwidgets.devel/108388 + dnl + dnl NB: we still need to test __thread support with + dnl AC_TRY_COMPILE above even for g++ 4 as it doesn't + dnl support it for all architectures (e.g. it doesn't + dnl work under OS X) + AC_MSG_CHECKING([whether __thread support in g++ is usable]) + case "$ax_cv_gxx_version" in + 1.* | 2.* | 3.* ) + AC_MSG_RESULT([no, it's broken]) + wx_cv_cc___thread=no + ;; + *) + AC_MSG_RESULT([yes, it works]) + ;; + esac + fi + fi + + if test "$wx_cv_cc___thread" = "yes"; then + AC_DEFINE(HAVE___THREAD_KEYWORD) + fi + fi fi dnl from if !MSW -- 2.45.2