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>
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>

View File

@ -38,11 +38,16 @@ AC_DEFUN([GCC_CHECK_TLS], [
CFLAGS="$chktls_save_CFLAGS"
if test "X$thread_CFLAGS" != Xfailed; then
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_LANG_PROGRAM(
[#include <pthread.h>
__thread int a;
static int *a_in_other_thread;
static int *volatile a_in_other_thread;
static void *
thread_func (void *arg)
{
@ -51,11 +56,11 @@ AC_DEFUN([GCC_CHECK_TLS], [
}],
[pthread_t thread;
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,
thread_func, (void *)0))
return 0;
a_in_main_thread = &a;
if (pthread_join (thread, &thread_retval))
return 0;
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>
PR other/43620

6
libgomp/configure vendored
View File

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

6
libjava/configure vendored
View File

@ -24390,7 +24390,7 @@ else
/* end confdefs.h. */
#include <pthread.h>
__thread int a;
static int *a_in_other_thread;
static int *volatile a_in_other_thread;
static void *
thread_func (void *arg)
{
@ -24402,11 +24402,11 @@ main ()
{
pthread_t thread;
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,
thread_func, (void *)0))
return 0;
a_in_main_thread = &a;
if (pthread_join (thread, &thread_retval))
return 0;
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>
* testsuite/libmudflap.c/pass46-frag.c (dg-options): Remove -Wall.

View File

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

View File

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