sync changelog with gcc, plus commit the following patch:

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.
This commit is contained in:
Paolo Bonzini 2010-06-10 16:01:32 +00:00
parent 3baae9d67e
commit 8b4e6b9f21
2 changed files with 28 additions and 13 deletions

View File

@ -1,25 +1,35 @@
2010-06-03 Joern Rennecke <joern.rennecke@embecosm.com>
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
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>
Sync from GCC:
PR bootstrap/42798
* override.m4 (_AC_CHECK_DECL_BODY, _AC_CHECK_DECLS): Import
definitions from git Autoconf.
2010-06-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2010-04-13 Steve Ellcey <sje@cup.hp.com>
Sync from GCC:
2010-04-13 Steve Ellcey <sje@cup.hp.com>
* elf.m4: Add hppa[12]*-*-hpux* to list of non-elf platforms.
2010-01-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2010-03-23 Kai Tietz <kai.tietz@onevision.com>
* mh-mingw: Revert accidentally checking r156315.
2010-01-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
* stdint.m4 (GCC_HEADER_STDINT): Don't typedef uint8_t etc. if
corresponding macros already exist.
2010-02-15 Nick Clifton <nickc@redhat.com>
2010-01-02 Richard Guenther <rguenther@suse.de>
* elf.m4: Import from gcc mainline.
PR lto/41529
* elf.m4: New file.
2009-11-30 Joseph Myers <joseph@codesourcery.com>

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);])],