diff options
Diffstat (limited to 'meta/packages/util-linux/util-linux-2.17.2/tls.patch')
| -rw-r--r-- | meta/packages/util-linux/util-linux-2.17.2/tls.patch | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/meta/packages/util-linux/util-linux-2.17.2/tls.patch b/meta/packages/util-linux/util-linux-2.17.2/tls.patch new file mode 100644 index 0000000000..bdb29cae1f --- /dev/null +++ b/meta/packages/util-linux/util-linux-2.17.2/tls.patch | |||
| @@ -0,0 +1,70 @@ | |||
| 1 | Index: util-linux-ng-2.16/m4/tls.m4 | ||
| 2 | =================================================================== | ||
| 3 | --- util-linux-ng-2.16.orig/m4/tls.m4 2009-07-04 01:20:03.000000000 +0200 | ||
| 4 | +++ util-linux-ng-2.16/m4/tls.m4 2009-07-30 01:57:30.151697033 +0200 | ||
| 5 | @@ -18,31 +18,26 @@ | ||
| 6 | # version as well. | ||
| 7 | # | ||
| 8 | AC_DEFUN([AX_TLS], [ | ||
| 9 | - AC_MSG_CHECKING(for thread local storage (TLS) class) | ||
| 10 | - AC_CACHE_VAL(ac_cv_tls, [ | ||
| 11 | - ax_tls_keywords="__thread __declspec(thread) none" | ||
| 12 | - for ax_tls_keyword in $ax_tls_keywords; do | ||
| 13 | - case $ax_tls_keyword in | ||
| 14 | - none) ac_cv_tls=none ; break ;; | ||
| 15 | - *) | ||
| 16 | - AC_TRY_COMPILE( | ||
| 17 | - [#include <stdlib.h> | ||
| 18 | - static void | ||
| 19 | - foo(void) { | ||
| 20 | - static ] $ax_tls_keyword [ int bar; | ||
| 21 | - exit(1); | ||
| 22 | - }], | ||
| 23 | - [], | ||
| 24 | - [ac_cv_tls=$ax_tls_keyword ; break], | ||
| 25 | - ac_cv_tls=none | ||
| 26 | - ) | ||
| 27 | - esac | ||
| 28 | - done | ||
| 29 | -]) | ||
| 30 | + AC_CACHE_CHECK([for thread local storage (TLS) class], | ||
| 31 | + ac_cv_tls, | ||
| 32 | + [AC_LINK_IFELSE([__thread int a; int b; int main() { return a = b; }], | ||
| 33 | + [chktls_save_LDFLAGS="$LDFLAGS" | ||
| 34 | + LDFLAGS="-shared -Wl,--no-undefined $LDFLAGS" | ||
| 35 | + chktls_save_CFLAGS="$CFLAGS" | ||
| 36 | + CFLAGS="-fPIC $CFLAGS" | ||
| 37 | + dnl If -shared works, test if TLS works in a shared library. | ||
| 38 | + AC_LINK_IFELSE([int f() { return 0; }], | ||
| 39 | + AC_LINK_IFELSE([__thread int a; int b; int f() { return a = b; }], | ||
| 40 | + [ac_cv_tls=yes], | ||
| 41 | + [ac_cv_tls=no]), | ||
| 42 | + [ac_cv_tls=yes]) | ||
| 43 | + CFLAGS="$chktls_save_CFLAGS" | ||
| 44 | + LDFLAGS="$chktls_save_LDFLAGS"], [ac_cv_tls=no]) | ||
| 45 | + ]) | ||
| 46 | |||
| 47 | - if test "$ac_cv_tls" != "none"; then | ||
| 48 | - dnl AC_DEFINE([TLS], [], [If the compiler supports a TLS storage class define it to that here]) | ||
| 49 | - AC_DEFINE_UNQUOTED([TLS], $ac_cv_tls, [If the compiler supports a TLS storage class define it to that here]) | ||
| 50 | - fi | ||
| 51 | - AC_MSG_RESULT($ac_cv_tls) | ||
| 52 | + AS_IF([test "x$ac_cv_tls" = "xyes"], | ||
| 53 | + [AC_DEFINE([TLS], 1, | ||
| 54 | + [Define this if the compiler supports __thread for Thread-Local Storage]) | ||
| 55 | + $1], | ||
| 56 | + [$2]) | ||
| 57 | ]) | ||
| 58 | Index: util-linux-ng-2.16/shlibs/uuid/src/gen_uuid.c | ||
| 59 | =================================================================== | ||
| 60 | --- util-linux-ng-2.16.orig/shlibs/uuid/src/gen_uuid.c 2009-07-30 02:31:48.518159459 +0200 | ||
| 61 | +++ util-linux-ng-2.16/shlibs/uuid/src/gen_uuid.c 2009-07-30 02:32:04.867871183 +0200 | ||
| 62 | @@ -99,7 +99,7 @@ | ||
| 63 | #endif | ||
| 64 | |||
| 65 | #ifdef TLS | ||
| 66 | -#define THREAD_LOCAL static TLS | ||
| 67 | +#define THREAD_LOCAL static __thread | ||
| 68 | #else | ||
| 69 | #define THREAD_LOCAL static | ||
| 70 | #endif | ||
