* elf/dl-tsd.c (__libc_dl_error_tsd): Use attribute_tls_model_ie for
authorRoland McGrath <roland@gnu.org>
Thu, 22 Sep 2005 07:29:50 +0000 (07:29 +0000)
committerRoland McGrath <roland@gnu.org>
Thu, 22 Sep 2005 07:29:50 +0000 (07:29 +0000)
static __thread variable.
From Alexandre Oliva <aoliva@redhat.com>

ChangeLog
elf/dl-tsd.c
nptl/ChangeLog
nptl/perf.c

index 3b02a19..9f4e285 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
 2005-09-22  Roland McGrath  <roland@redhat.com>
 
+       * elf/dl-tsd.c (__libc_dl_error_tsd): Use attribute_tls_model_ie for
+       static __thread variable.
+       From Alexandre Oliva <aoliva@redhat.com>
+
        * Makefile ($(objpfx)c++-types-check.out): Use $<, not $^, in command.
        Reported by Alexandre Oliva <aoliva@redhat.com>.
 
index f44fa7d..f01f8d6 100644 (file)
@@ -1,5 +1,5 @@
 /* Thread-local data used by error handling for runtime dynamic linker.
-   Copyright (C) 2002 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -49,7 +49,7 @@ void **(*_dl_error_catch_tsd) (void) __attribute__ ((const))
 void ** __attribute__ ((const))
 __libc_dl_error_tsd (void)
 {
-  static __thread void *data;
+  static __thread void *data attribute_tls_model_ie;
   return &data;
 }
 
index c1da34a..4884cc2 100644 (file)
@@ -1,3 +1,8 @@
+2005-09-22  Roland McGrath  <roland@redhat.com>
+
+       * perf.c [__x86_64__] (HP_TIMING_NOW): New macro (copied from
+       ../sysdeps/x86_64/hp-timing.h).
+
 2005-08-29  Jakub Jelinek  <jakub@redhat.com>
 
        * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h (FUTEX_WAKE_OP,
index 5b920d7..f0dbc29 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002 Free Software Foundation, Inc.
+/* Copyright (C) 2002, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
 
@@ -705,6 +705,11 @@ clock_getcpuclockid (pid_t pid, clockid_t *clock_id)
 
 #ifdef i386
 #define HP_TIMING_NOW(Var)     __asm__ __volatile__ ("rdtsc" : "=A" (Var))
+#elif defined __x86_64__
+# define HP_TIMING_NOW(Var) \
+  ({ unsigned int _hi, _lo; \
+     asm volatile ("rdtsc" : "=a" (_lo), "=d" (_hi)); \
+     (Var) = ((unsigned long long int) _hi << 32) | _lo; })
 #elif defined __ia64__
 #define HP_TIMING_NOW(Var)     __asm__ __volatile__ ("mov %0=ar.itc" : "=r" (Var) : : "memory")
 #else