re PR bootstrap/43170 (gcc 4.5 20100218 bootstrap compare fails on os x 10.6)

config:
	PR bootstrap/43170
	* tls.m4 (GCC_CHECK_TLS): Add volatile qualifier to the test 
	references.  Move the main () test reference ahead of 
	pthread_create().  Add a comment to explain the requirements
	of the test.
libgomp:
	PR bootstrap/43170
	* configure: Regenerate.
libjava:
	PR bootstrap/43170
	* configure: Regenerate.
libmudflap:
	PR bootstrap/43170
	* configure: Regenerate.
libstdc++-v3:
	PR bootstrap/43170
	* configure: Regenerate.

From-SVN: r160457
This commit is contained in:
Iain Sandoe 2010-06-09 09:27:04 +00:00
parent fa9d7d3b70
commit dbd34b899f
10 changed files with 54 additions and 21 deletions

View File

@ -1,3 +1,11 @@
2010-06-09 Iain Sandoe <iains@gcc.gnu.org>
PR bootstrap/43170
* tls.m4 (GCC_CHECK_TLS): Add volatile qualifier to the test
references. Move the main () test reference ahead of
pthread_create(). Add a comment to explain the requirements
of the test.
2010-06-03 Joern Rennecke <joern.rennecke@embecosm.com> 2010-06-03 Joern Rennecke <joern.rennecke@embecosm.com>
Ralf Wildenhues <Ralf.Wildenhues@gmx.de> Ralf Wildenhues <Ralf.Wildenhues@gmx.de>

View File

@ -38,11 +38,16 @@ AC_DEFUN([GCC_CHECK_TLS], [
CFLAGS="$chktls_save_CFLAGS" CFLAGS="$chktls_save_CFLAGS"
if test "X$thread_CFLAGS" != Xfailed; then if test "X$thread_CFLAGS" != Xfailed; then
CFLAGS="$thread_CFLAGS $chktls_save_CFLAGS" CFLAGS="$thread_CFLAGS $chktls_save_CFLAGS"
dnl Test for an old glibc bug that violated the __thread property.
dnl Use volatile to ensure the compiler won't optimize away pointer
dnl accesses it might otherwise assume to be redundant, or reorder
dnl them and reuse storage, which might lead to them pointing to
dnl the same location.
AC_RUN_IFELSE( AC_RUN_IFELSE(
[AC_LANG_PROGRAM( [AC_LANG_PROGRAM(
[#include <pthread.h> [#include <pthread.h>
__thread int a; __thread int a;
static int *a_in_other_thread; static int *volatile a_in_other_thread;
static void * static void *
thread_func (void *arg) thread_func (void *arg)
{ {
@ -51,11 +56,11 @@ AC_DEFUN([GCC_CHECK_TLS], [
}], }],
[pthread_t thread; [pthread_t thread;
void *thread_retval; void *thread_retval;
int *a_in_main_thread; int *volatile a_in_main_thread;
a_in_main_thread = &a;
if (pthread_create (&thread, (pthread_attr_t *)0, if (pthread_create (&thread, (pthread_attr_t *)0,
thread_func, (void *)0)) thread_func, (void *)0))
return 0; return 0;
a_in_main_thread = &a;
if (pthread_join (thread, &thread_retval)) if (pthread_join (thread, &thread_retval))
return 0; return 0;
return (a_in_other_thread == a_in_main_thread);])], return (a_in_other_thread == a_in_main_thread);])],

View File

@ -1,3 +1,8 @@
2010-06-09 Iain Sandoe <iains@gcc.gnu.org>
PR bootstrap/43170
* configure: Regenerate.
2010-05-04 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 2010-05-04 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
PR other/43620 PR other/43620

6
libgomp/configure vendored
View File

@ -15380,7 +15380,7 @@ else
/* end confdefs.h. */ /* end confdefs.h. */
#include <pthread.h> #include <pthread.h>
__thread int a; __thread int a;
static int *a_in_other_thread; static int *volatile a_in_other_thread;
static void * static void *
thread_func (void *arg) thread_func (void *arg)
{ {
@ -15392,11 +15392,11 @@ main ()
{ {
pthread_t thread; pthread_t thread;
void *thread_retval; void *thread_retval;
int *a_in_main_thread; int *volatile a_in_main_thread;
a_in_main_thread = &a;
if (pthread_create (&thread, (pthread_attr_t *)0, if (pthread_create (&thread, (pthread_attr_t *)0,
thread_func, (void *)0)) thread_func, (void *)0))
return 0; return 0;
a_in_main_thread = &a;
if (pthread_join (thread, &thread_retval)) if (pthread_join (thread, &thread_retval))
return 0; return 0;
return (a_in_other_thread == a_in_main_thread); return (a_in_other_thread == a_in_main_thread);

View File

@ -1,3 +1,8 @@
2010-06-09 Iain Sandoe <iains@gcc.gnu.org>
PR bootstrap/43170
* configure: Regenerate.
2010-06-03 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 2010-06-03 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
* configure: Regenerate. * configure: Regenerate.

6
libjava/configure vendored
View File

@ -24390,7 +24390,7 @@ else
/* end confdefs.h. */ /* end confdefs.h. */
#include <pthread.h> #include <pthread.h>
__thread int a; __thread int a;
static int *a_in_other_thread; static int *volatile a_in_other_thread;
static void * static void *
thread_func (void *arg) thread_func (void *arg)
{ {
@ -24402,11 +24402,11 @@ main ()
{ {
pthread_t thread; pthread_t thread;
void *thread_retval; void *thread_retval;
int *a_in_main_thread; int *volatile a_in_main_thread;
a_in_main_thread = &a;
if (pthread_create (&thread, (pthread_attr_t *)0, if (pthread_create (&thread, (pthread_attr_t *)0,
thread_func, (void *)0)) thread_func, (void *)0))
return 0; return 0;
a_in_main_thread = &a;
if (pthread_join (thread, &thread_retval)) if (pthread_join (thread, &thread_retval))
return 0; return 0;
return (a_in_other_thread == a_in_main_thread); return (a_in_other_thread == a_in_main_thread);

View File

@ -1,3 +1,8 @@
2010-06-09 Iain Sandoe <iains@gcc.gnu.org>
PR bootstrap/43170
* configure: Regenerate.
2010-05-16 Uros Bizjak <ubizjak@gmail.com> 2010-05-16 Uros Bizjak <ubizjak@gmail.com>
* testsuite/libmudflap.c/pass46-frag.c (dg-options): Remove -Wall. * testsuite/libmudflap.c/pass46-frag.c (dg-options): Remove -Wall.

View File

@ -11479,7 +11479,7 @@ else
/* end confdefs.h. */ /* end confdefs.h. */
#include <pthread.h> #include <pthread.h>
__thread int a; __thread int a;
static int *a_in_other_thread; static int *volatile a_in_other_thread;
static void * static void *
thread_func (void *arg) thread_func (void *arg)
{ {
@ -11491,11 +11491,11 @@ main ()
{ {
pthread_t thread; pthread_t thread;
void *thread_retval; void *thread_retval;
int *a_in_main_thread; int *volatile a_in_main_thread;
a_in_main_thread = &a;
if (pthread_create (&thread, (pthread_attr_t *)0, if (pthread_create (&thread, (pthread_attr_t *)0,
thread_func, (void *)0)) thread_func, (void *)0))
return 0; return 0;
a_in_main_thread = &a;
if (pthread_join (thread, &thread_retval)) if (pthread_join (thread, &thread_retval))
return 0; return 0;
return (a_in_other_thread == a_in_main_thread); return (a_in_other_thread == a_in_main_thread);

View File

@ -1,3 +1,8 @@
2010-06-09 Iain Sandoe <iains@gcc.gnu.org>
PR bootstrap/43170
* configure: Regenerate.
2010-06-09 Paolo Carlini <paolo.carlini@oracle.com> 2010-06-09 Paolo Carlini <paolo.carlini@oracle.com>
PR libstdc++/44413 PR libstdc++/44413

View File

@ -25548,7 +25548,7 @@ else
/* end confdefs.h. */ /* end confdefs.h. */
#include <pthread.h> #include <pthread.h>
__thread int a; __thread int a;
static int *a_in_other_thread; static int *volatile a_in_other_thread;
static void * static void *
thread_func (void *arg) thread_func (void *arg)
{ {
@ -25560,11 +25560,11 @@ main ()
{ {
pthread_t thread; pthread_t thread;
void *thread_retval; void *thread_retval;
int *a_in_main_thread; int *volatile a_in_main_thread;
a_in_main_thread = &a;
if (pthread_create (&thread, (pthread_attr_t *)0, if (pthread_create (&thread, (pthread_attr_t *)0,
thread_func, (void *)0)) thread_func, (void *)0))
return 0; return 0;
a_in_main_thread = &a;
if (pthread_join (thread, &thread_retval)) if (pthread_join (thread, &thread_retval))
return 0; return 0;
return (a_in_other_thread == a_in_main_thread); return (a_in_other_thread == a_in_main_thread);
@ -44486,7 +44486,7 @@ else
/* end confdefs.h. */ /* end confdefs.h. */
#include <pthread.h> #include <pthread.h>
__thread int a; __thread int a;
static int *a_in_other_thread; static int *volatile a_in_other_thread;
static void * static void *
thread_func (void *arg) thread_func (void *arg)
{ {
@ -44498,11 +44498,11 @@ main ()
{ {
pthread_t thread; pthread_t thread;
void *thread_retval; void *thread_retval;
int *a_in_main_thread; int *volatile a_in_main_thread;
a_in_main_thread = &a;
if (pthread_create (&thread, (pthread_attr_t *)0, if (pthread_create (&thread, (pthread_attr_t *)0,
thread_func, (void *)0)) thread_func, (void *)0))
return 0; return 0;
a_in_main_thread = &a;
if (pthread_join (thread, &thread_retval)) if (pthread_join (thread, &thread_retval))
return 0; return 0;
return (a_in_other_thread == a_in_main_thread); return (a_in_other_thread == a_in_main_thread);
@ -50571,7 +50571,7 @@ else
/* end confdefs.h. */ /* end confdefs.h. */
#include <pthread.h> #include <pthread.h>
__thread int a; __thread int a;
static int *a_in_other_thread; static int *volatile a_in_other_thread;
static void * static void *
thread_func (void *arg) thread_func (void *arg)
{ {
@ -50583,11 +50583,11 @@ main ()
{ {
pthread_t thread; pthread_t thread;
void *thread_retval; void *thread_retval;
int *a_in_main_thread; int *volatile a_in_main_thread;
a_in_main_thread = &a;
if (pthread_create (&thread, (pthread_attr_t *)0, if (pthread_create (&thread, (pthread_attr_t *)0,
thread_func, (void *)0)) thread_func, (void *)0))
return 0; return 0;
a_in_main_thread = &a;
if (pthread_join (thread, &thread_retval)) if (pthread_join (thread, &thread_retval))
return 0; return 0;
return (a_in_other_thread == a_in_main_thread); return (a_in_other_thread == a_in_main_thread);