diff -Nurp glibc-ports-2.6/ChangeLog.arm glibc-ports-2.6.1/ChangeLog.arm --- glibc-ports-2.6/ChangeLog.arm 2007-05-23 17:33:14.000000000 +0000 +++ glibc-ports-2.6.1/ChangeLog.arm 2007-08-06 17:55:35.000000000 +0000 @@ -1,3 +1,12 @@ +2007-08-06 Aurelien Jarno + + Backport: + 2007-07-10 Daniel Jacobowitz + * sysdeps/arm/nptl/tls.h (THREAD_GSCOPE_FLAG_UNUSED, + THREAD_GSCOPE_FLAG_USED, THREAD_GSCOPE_FLAG_WAIT): Define. + (THREAD_GSCOPE_RESET_FLAG, THREAD_GSCOPE_SET_FLAG, + THREAD_GSCOPE_WAIT): Define. + 2007-05-23 Joseph Myers * sysdeps/unix/sysv/linux/arm/kernel-features.h diff -Nurp glibc-ports-2.6/ChangeLog.hppa glibc-ports-2.6.1/ChangeLog.hppa --- glibc-ports-2.6/ChangeLog.hppa 2007-05-18 02:02:50.000000000 +0000 +++ glibc-ports-2.6.1/ChangeLog.hppa 2007-08-06 17:55:35.000000000 +0000 @@ -1,3 +1,12 @@ +2007-08-06 Aurelien Jarno + + Backport: + 2007-07-28 Carlos O'Donell + * sysdeps/hppa/nptl/tls.h: Define THREAD_GSCOPE_FLAG_UNUSED, + THREAD_GSCOPE_FLAG_USED, THREAD_GSOPE_FLAG_WAIT, + THREAD_GSCOPE_RSEET_FLAG, THREAD_GSCOPE_SET_FLAG, THREAD_GSCOPE_WAIT. + Update copyright. + 2007-05-17 Carlos O'Donell * sysdeps/unix/sysv/linux/hppa/nptl/bits/semaphore.h diff -Nurp glibc-ports-2.6/ChangeLog.mips glibc-ports-2.6.1/ChangeLog.mips --- glibc-ports-2.6/ChangeLog.mips 2007-05-23 17:26:13.000000000 +0000 +++ glibc-ports-2.6.1/ChangeLog.mips 2007-08-06 17:55:35.000000000 +0000 @@ -1,3 +1,17 @@ +2007-08-06 Aurelien Jarno + + Backport: + 2007-06-06 Daniel Jacobowitz + * sysdeps/mips/nptl/tls.h (THREAD_GSCOPE_FLAG_UNUSED, + THREAD_GSCOPE_FLAG_USED, THREAD_GSCOPE_FLAG_WAIT): Define. + (THREAD_GSCOPE_RESET_FLAG, THREAD_GSCOPE_SET_FLAG, + THREAD_GSCOPE_WAIT): Define. + +2007-05-24 Atsushi Nemoto + + * sysdeps/unix/sysv/linux/mips/mips32/posix_fadvise.c + (posix_fadvise): Fix high word of len argument. + 2007-05-23 Atsushi Nemoto * sysdeps/unix/sysv/linux/mips/mips32/posix_fadvise.c: New file. diff -Nurp glibc-ports-2.6/sysdeps/arm/nptl/tls.h glibc-ports-2.6.1/sysdeps/arm/nptl/tls.h --- glibc-ports-2.6/sysdeps/arm/nptl/tls.h 2005-11-16 19:03:42.000000000 +0000 +++ glibc-ports-2.6.1/sysdeps/arm/nptl/tls.h 2007-08-06 17:55:36.000000000 +0000 @@ -1,5 +1,5 @@ /* Definition for thread-local data handling. NPTL/ARM version. - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2007 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 @@ -132,6 +132,29 @@ typedef struct is not available. */ #define TLS_INIT_TP_EXPENSIVE 1 +/* Get and set the global scope generation counter in struct pthread. */ +#define THREAD_GSCOPE_FLAG_UNUSED 0 +#define THREAD_GSCOPE_FLAG_USED 1 +#define THREAD_GSCOPE_FLAG_WAIT 2 +#define THREAD_GSCOPE_RESET_FLAG() \ + do \ + { int __res \ + = atomic_exchange_rel (&THREAD_SELF->header.gscope_flag, \ + THREAD_GSCOPE_FLAG_UNUSED); \ + if (__res == THREAD_GSCOPE_FLAG_WAIT) \ + lll_futex_wake (&THREAD_SELF->header.gscope_flag, 1); \ + } \ + while (0) +#define THREAD_GSCOPE_SET_FLAG() \ + do \ + { \ + THREAD_SELF->header.gscope_flag = THREAD_GSCOPE_FLAG_USED; \ + atomic_write_barrier (); \ + } \ + while (0) +#define THREAD_GSCOPE_WAIT() \ + GL(dl_wait_lookup_done) () + #endif /* __ASSEMBLER__ */ #endif /* tls.h */ diff -Nurp glibc-ports-2.6/sysdeps/hppa/nptl/tls.h glibc-ports-2.6.1/sysdeps/hppa/nptl/tls.h --- glibc-ports-2.6/sysdeps/hppa/nptl/tls.h 2006-07-16 18:25:24.000000000 +0000 +++ glibc-ports-2.6.1/sysdeps/hppa/nptl/tls.h 2007-08-06 17:55:36.000000000 +0000 @@ -1,5 +1,5 @@ /* Definition for thread-local data handling. NPTL/hppa version. - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2007 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 @@ -146,6 +146,29 @@ static inline void __set_cr27(struct pth : : "r" (cr27) : "r26" ); } +/* Get and set the global scope generation counter in struct pthread. */ +#define THREAD_GSCOPE_FLAG_UNUSED 0 +#define THREAD_GSCOPE_FLAG_USED 1 +#define THREAD_GSCOPE_FLAG_WAIT 2 +#define THREAD_GSCOPE_RESET_FLAG() \ + do \ + { int __res \ + = atomic_exchange_rel (&THREAD_SELF->header.gscope_flag, \ + THREAD_GSCOPE_FLAG_UNUSED); \ + if (__res == THREAD_GSCOPE_FLAG_WAIT) \ + lll_private_futex_wake (&THREAD_SELF->header.gscope_flag, 1); \ + } \ + while (0) +#define THREAD_GSCOPE_SET_FLAG() \ + do \ + { \ + THREAD_SELF->header.gscope_flag = THREAD_GSCOPE_FLAG_USED; \ + atomic_write_barrier (); \ + } \ + while (0) +#define THREAD_GSCOPE_WAIT() \ + GL(dl_wait_lookup_done) () + #endif /* __ASSEMBLER__ */ #endif /* tls.h */ diff -Nurp glibc-ports-2.6/sysdeps/mips/nptl/tls.h glibc-ports-2.6.1/sysdeps/mips/nptl/tls.h --- glibc-ports-2.6/sysdeps/mips/nptl/tls.h 2005-03-28 09:19:38.000000000 +0000 +++ glibc-ports-2.6.1/sysdeps/mips/nptl/tls.h 2007-08-06 17:55:36.000000000 +0000 @@ -1,5 +1,5 @@ /* Definition for thread-local data handling. NPTL/MIPS version. - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2007 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 @@ -156,6 +156,29 @@ typedef struct different value to mean unset l_tls_offset. */ # define NO_TLS_OFFSET -1 +/* Get and set the global scope generation counter in struct pthread. */ +#define THREAD_GSCOPE_FLAG_UNUSED 0 +#define THREAD_GSCOPE_FLAG_USED 1 +#define THREAD_GSCOPE_FLAG_WAIT 2 +#define THREAD_GSCOPE_RESET_FLAG() \ + do \ + { int __res \ + = atomic_exchange_rel (&THREAD_SELF->header.gscope_flag, \ + THREAD_GSCOPE_FLAG_UNUSED); \ + if (__res == THREAD_GSCOPE_FLAG_WAIT) \ + lll_futex_wake (&THREAD_SELF->header.gscope_flag, 1); \ + } \ + while (0) +#define THREAD_GSCOPE_SET_FLAG() \ + do \ + { \ + THREAD_SELF->header.gscope_flag = THREAD_GSCOPE_FLAG_USED; \ + atomic_write_barrier (); \ + } \ + while (0) +#define THREAD_GSCOPE_WAIT() \ + GL(dl_wait_lookup_done) () + #endif /* __ASSEMBLER__ */ #endif /* tls.h */ diff -Nurp glibc-ports-2.6/sysdeps/unix/sysv/linux/mips/mips32/posix_fadvise.c glibc-ports-2.6.1/sysdeps/unix/sysv/linux/mips/mips32/posix_fadvise.c --- glibc-ports-2.6/sysdeps/unix/sysv/linux/mips/mips32/posix_fadvise.c 2007-05-23 17:26:13.000000000 +0000 +++ glibc-ports-2.6.1/sysdeps/unix/sysv/linux/mips/mips32/posix_fadvise.c 2007-05-24 16:23:18.000000000 +0000 @@ -31,7 +31,7 @@ posix_fadvise (int fd, off_t offset, off INTERNAL_SYSCALL_DECL (err); int ret = INTERNAL_SYSCALL (fadvise64, err, 7, fd, 0, __LONG_LONG_PAIR (offset >> 31, offset), - __LONG_LONG_PAIR (offset >> 31, len), + __LONG_LONG_PAIR (len >> 31, len), advise); if (INTERNAL_SYSCALL_ERROR_P (ret, err)) return INTERNAL_SYSCALL_ERRNO (ret, err);