aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog18
-rw-r--r--Versions.def1
-rw-r--r--abilist/libpthread.abilist7
-rw-r--r--bits/typesizes.h4
-rw-r--r--csu/tst-atomic.c10
-rw-r--r--include/atomic.h6
-rw-r--r--linuxthreads/ChangeLog4
-rw-r--r--linuxthreads/sysdeps/pthread/bits/typesizes.h65
-rw-r--r--nptl/ChangeLog60
-rw-r--r--nptl/cleanup.c3
-rw-r--r--nptl/cleanup_defer.c3
-rw-r--r--nptl/init.c10
-rw-r--r--nptl/sysdeps/i386/pthreaddef.h5
-rw-r--r--nptl/sysdeps/ia64/pthreaddef.h3
-rw-r--r--nptl/sysdeps/powerpc/pthreaddef.h3
-rw-r--r--nptl/sysdeps/pthread/posix-timer.h7
-rw-r--r--nptl/sysdeps/pthread/pthread_sigmask.c35
-rw-r--r--nptl/sysdeps/pthread/sigaction.c7
-rw-r--r--nptl/sysdeps/s390/pthreaddef.h3
-rw-r--r--nptl/sysdeps/sh/pthreaddef.h3
-rw-r--r--nptl/sysdeps/unix/sysv/linux/allocrtsig.c4
-rw-r--r--nptl/sysdeps/unix/sysv/linux/bits/local_lim.h3
-rw-r--r--nptl/sysdeps/unix/sysv/linux/ia64/Versions7
-rw-r--r--nptl/sysdeps/unix/sysv/linux/ia64/timer_create.c1
-rw-r--r--nptl/sysdeps/unix/sysv/linux/ia64/timer_delete.c1
-rw-r--r--nptl/sysdeps/unix/sysv/linux/ia64/timer_getoverr.c1
-rw-r--r--nptl/sysdeps/unix/sysv/linux/ia64/timer_gettime.c1
-rw-r--r--nptl/sysdeps/unix/sysv/linux/ia64/timer_settime.c1
-rw-r--r--nptl/sysdeps/unix/sysv/linux/kernel-posix-timers.h62
-rw-r--r--nptl/sysdeps/unix/sysv/linux/powerpc/powerpc64/Versions7
-rw-r--r--nptl/sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_create.c1
-rw-r--r--nptl/sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_delete.c1
-rw-r--r--nptl/sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_getoverr.c1
-rw-r--r--nptl/sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_gettime.c1
-rw-r--r--nptl/sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_settime.c1
-rw-r--r--nptl/sysdeps/unix/sysv/linux/pthread_kill.c2
-rw-r--r--nptl/sysdeps/unix/sysv/linux/s390/s390-64/Versions7
-rw-r--r--nptl/sysdeps/unix/sysv/linux/s390/s390-64/timer_create.c1
-rw-r--r--nptl/sysdeps/unix/sysv/linux/s390/s390-64/timer_delete.c1
-rw-r--r--nptl/sysdeps/unix/sysv/linux/s390/s390-64/timer_getoverr.c1
-rw-r--r--nptl/sysdeps/unix/sysv/linux/s390/s390-64/timer_gettime.c1
-rw-r--r--nptl/sysdeps/unix/sysv/linux/s390/s390-64/timer_settime.c1
-rw-r--r--nptl/sysdeps/unix/sysv/linux/timer_create.c235
-rw-r--r--nptl/sysdeps/unix/sysv/linux/timer_delete.c94
-rw-r--r--nptl/sysdeps/unix/sysv/linux/timer_getoverr.c80
-rw-r--r--nptl/sysdeps/unix/sysv/linux/timer_gettime.c82
-rw-r--r--nptl/sysdeps/unix/sysv/linux/timer_routines.c81
-rw-r--r--nptl/sysdeps/unix/sysv/linux/timer_settime.c85
-rw-r--r--nptl/sysdeps/unix/sysv/linux/x86_64/Versions7
-rw-r--r--nptl/sysdeps/unix/sysv/linux/x86_64/compat-timer.h46
-rw-r--r--nptl/sysdeps/unix/sysv/linux/x86_64/timer_create.c66
-rw-r--r--nptl/sysdeps/unix/sysv/linux/x86_64/timer_delete.c45
-rw-r--r--nptl/sysdeps/unix/sysv/linux/x86_64/timer_getoverr.c39
-rw-r--r--nptl/sysdeps/unix/sysv/linux/x86_64/timer_gettime.c38
-rw-r--r--nptl/sysdeps/unix/sysv/linux/x86_64/timer_settime.c40
-rw-r--r--nptl/sysdeps/x86_64/pthreaddef.h3
-rw-r--r--sysdeps/generic/bits/typesizes.h4
-rw-r--r--sysdeps/unix/sysv/linux/bits/siginfo.h21
58 files changed, 1272 insertions, 58 deletions
diff --git a/ChangeLog b/ChangeLog
index 3064149b09..b1d69cf1b3 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,21 @@
+2003-03-25 Ulrich Drepper <drepper@redhat.com>
+
+ * csu/tst-atomic.c: Adjust tests to what atomic_add_negative and
+ atomic_add_zero were supposed to do.
+ * include/atomic.h: Adjust atomic_add_negative and atomic_add_zero
+ to x86 behavior.
+
+ * sysdeps/generic/bits/typesizes.h (__TIMER_T_TYPE): Define as void*.
+ This matches the new timer implementation.
+ * sysdeps/unix/sysv/linux/bits/siginfo.h (struct siginfo): Adjust
+ timer info for what the kernel provides these days.
+ (struct sigevent): Add _tid field.
+ Define SIGEV_THREAD_ID.
+
+ * Versions.def (librt): Add GLIBC_2.3.3.
+
+ * abilist/libpthread.abilist: Update for nptl.
+
2003-03-24 Jon Grimm <jgrimm@us.ibm.com>
* inet/netinet/in.h: Add IPPROTO_SCTP.
diff --git a/Versions.def b/Versions.def
index e8728b1986..50bb28d20e 100644
--- a/Versions.def
+++ b/Versions.def
@@ -85,6 +85,7 @@ librt {
GLIBC_2.1
GLIBC_2.2
GLIBC_2.3
+ GLIBC_2.3.3
}
libutil {
GLIBC_2.0
diff --git a/abilist/libpthread.abilist b/abilist/libpthread.abilist
index b60ad56c6d..8074988adc 100644
--- a/abilist/libpthread.abilist
+++ b/abilist/libpthread.abilist
@@ -232,3 +232,10 @@ GLIBC_2.2 i.86-.*-linux.* ia64-.*-linux.* powerpc-.*-linux.* s390-.*-linux.* sh[
GLIBC_2.2 A
GLIBC_2.3.2 i.86-.*-linux.* ia64-.*-linux.* powerpc-.*-linux.* s390-.*-linux.* sh[34].*-.*-linux.* x86_64-.*-linux.*
GLIBC_2.3.2 A
+GLIBC_2.3.3 i.86-.*-linux.* ia64-.*-linux.* powerpc-.*-linux.* s390-.*-linux.* sh[34].*-.*-linux.* x86_64-.*-linux.*
+ GLIBC_2.3.3 A
+ pthread_barrierattr_getpshared F
+ pthread_condattr_getclock F
+ pthread_condattr_setclock F
+ pthread_timedjoin_np F
+ pthread_tryjoin_np F
diff --git a/bits/typesizes.h b/bits/typesizes.h
index 6d6de21fab..2b9bd38760 100644
--- a/bits/typesizes.h
+++ b/bits/typesizes.h
@@ -1,5 +1,5 @@
/* bits/typesizes.h -- underlying types for *_t. Generic version.
- Copyright (C) 2002 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2003 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
@@ -54,7 +54,7 @@
#define __SWBLK_T_TYPE __SLONGWORD_TYPE
#define __KEY_T_TYPE __S32_TYPE
#define __CLOCKID_T_TYPE __S32_TYPE
-#define __TIMER_T_TYPE __S32_TYPE
+#define __TIMER_T_TYPE void *
#define __BLKSIZE_T_TYPE __SLONGWORD_TYPE
#define __FSID_T_TYPE struct { int __val[2]; }
diff --git a/csu/tst-atomic.c b/csu/tst-atomic.c
index 292f6e7334..e5686e377d 100644
--- a/csu/tst-atomic.c
+++ b/csu/tst-atomic.c
@@ -178,9 +178,9 @@ do_test (void)
ret = 1;
}
- mem = -10;
- if (! atomic_add_negative (&mem, 12)
- || mem != 2)
+ mem = -12;
+ if (! atomic_add_negative (&mem, 10)
+ || mem != -2)
{
puts ("atomic_add_negative test 1 failed");
ret = 1;
@@ -210,9 +210,9 @@ do_test (void)
ret = 1;
}
- mem = 0;
+ mem = -36;
if (! atomic_add_zero (&mem, 36)
- || mem != 36)
+ || mem != 0)
{
puts ("atomic_add_zero test 2 failed");
ret = 1;
diff --git a/include/atomic.h b/include/atomic.h
index afebb789a3..3a0ec3a4be 100644
--- a/include/atomic.h
+++ b/include/atomic.h
@@ -189,13 +189,15 @@
#ifndef atomic_add_negative
# define atomic_add_negative(mem, value) \
- (atomic_exchange_and_add ((mem), (value)) < 0)
+ ({ __typeof (value) __value = (value); \
+ atomic_exchange_and_add ((mem), __value) < -__value); })
#endif
#ifndef atomic_add_zero
# define atomic_add_zero(mem, value) \
- (atomic_exchange_and_add ((mem), (value)) == 0)
+ ({ __typeof (value) __value = (value); \
+ atomic_exchange_and_add ((mem), __value) == -__value; })
#endif
diff --git a/linuxthreads/ChangeLog b/linuxthreads/ChangeLog
index d741a1e4ad..f7467ab570 100644
--- a/linuxthreads/ChangeLog
+++ b/linuxthreads/ChangeLog
@@ -1,3 +1,7 @@
+2003-03-25 Ulrich Drepper <drepper@redhat.com>
+
+ * sysdeps/pthread/bits/typesizes.h: New file.
+
2003-03-24 Daniel Jacobowitz <drow@mvista.com>
* sysdeps/unix/sysv/linux/arm/sysdep-cancel.h
diff --git a/linuxthreads/sysdeps/pthread/bits/typesizes.h b/linuxthreads/sysdeps/pthread/bits/typesizes.h
new file mode 100644
index 0000000000..a95c41d33e
--- /dev/null
+++ b/linuxthreads/sysdeps/pthread/bits/typesizes.h
@@ -0,0 +1,65 @@
+/* bits/typesizes.h -- underlying types for *_t. Generic version.
+ Copyright (C) 2002, 2003 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
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, write to the Free
+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ 02111-1307 USA. */
+
+#ifndef _BITS_TYPES_H
+# error "Never include <bits/typesizes.h> directly; use <sys/types.h> instead."
+#endif
+
+#ifndef _BITS_TYPESIZES_H
+#define _BITS_TYPESIZES_H 1
+
+/* See <bits/types.h> for the meaning of these macros. This file exists so
+ that <bits/types.h> need not vary across different GNU platforms. */
+
+#define __DEV_T_TYPE __UQUAD_TYPE
+#define __UID_T_TYPE __U32_TYPE
+#define __GID_T_TYPE __U32_TYPE
+#define __INO_T_TYPE __ULONGWORD_TYPE
+#define __INO64_T_TYPE __UQUAD_TYPE
+#define __MODE_T_TYPE __U32_TYPE
+#define __NLINK_T_TYPE __UWORD_TYPE
+#define __OFF_T_TYPE __SLONGWORD_TYPE
+#define __OFF64_T_TYPE __SQUAD_TYPE
+#define __PID_T_TYPE __S32_TYPE
+#define __RLIM_T_TYPE __ULONGWORD_TYPE
+#define __RLIM64_T_TYPE __UQUAD_TYPE
+#define __BLKCNT_T_TYPE __SLONGWORD_TYPE
+#define __BLKCNT64_T_TYPE __SQUAD_TYPE
+#define __FSBLKCNT_T_TYPE __ULONGWORD_TYPE
+#define __FSBLKCNT64_T_TYPE __UQUAD_TYPE
+#define __FSFILCNT_T_TYPE __ULONGWORD_TYPE
+#define __FSFILCNT64_T_TYPE __UQUAD_TYPE
+#define __ID_T_TYPE __U32_TYPE
+#define __CLOCK_T_TYPE __SLONGWORD_TYPE
+#define __TIME_T_TYPE __SLONGWORD_TYPE
+#define __USECONDS_T_TYPE __U32_TYPE
+#define __SUSECONDS_T_TYPE __SLONGWORD_TYPE
+#define __DADDR_T_TYPE __S32_TYPE
+#define __SWBLK_T_TYPE __SLONGWORD_TYPE
+#define __KEY_T_TYPE __S32_TYPE
+#define __CLOCKID_T_TYPE __S32_TYPE
+#define __TIMER_T_TYPE __S32_TYPE
+#define __BLKSIZE_T_TYPE __SLONGWORD_TYPE
+#define __FSID_T_TYPE struct { int __val[2]; }
+
+/* Number of descriptors that can fit in an `fd_set'. */
+#define __FD_SETSIZE 1024
+
+
+#endif /* bits/typesizes.h */
diff --git a/nptl/ChangeLog b/nptl/ChangeLog
index fe24582b91..31380477e4 100644
--- a/nptl/ChangeLog
+++ b/nptl/ChangeLog
@@ -1,3 +1,63 @@
+2003-03-25 Ulrich Drepper <drepper@redhat.com>
+
+ * pthreadP.h: Define SIGCANCEL and SIGTIMER.
+ * sysdeps/i386/pthreaddef.h: Remove SIGCANCEL definition.
+ * sysdeps/ia64/pthreaddef.h: Likewise.
+ * sysdeps/powerpc/pthreaddef.h: Likewise.
+ * sysdeps/s390/pthreaddef.h: Likewise.
+ * sysdeps/sh/pthreaddef.h: Likewise.
+ * sysdeps/x86_64/pthreaddef.h: Likewise.
+ * init.c (__pthread_initialize_minimal): Block SIGTIMER.
+ * sysdeps/pthread/sigaction.c: Also prevent SIGTIMER handler from
+ being changed.
+ * sysdeps/pthread/pthread_sigmask.c (pthread_sigmask): Make sure
+ SIGTIMER is not unblocked.
+ * sysdeps/unix/sysv/linux/allocrtsig.c (current_rtmin): One more
+ RT signal taken.
+ * sysdeps/unix/sysv/linux/pthread_kill.c: Do not allow SIGTIMER to
+ be send.
+ * sysdeps/pthread/posix-timer.h (timer_id2ptr, timer_ptr2id): Just
+ pass pointer through as ID.
+ * sysdeps/unix/sysv/linux/bits/local_lim.h (TIMER_MAX): Removed.
+ * sysdeps/unix/sysv/linux/kernel-posix-timers.h: New file.
+ * sysdeps/unix/sysv/linux/timer_create.c: New file.
+ * sysdeps/unix/sysv/linux/timer_delete.c: New file.
+ * sysdeps/unix/sysv/linux/timer_getoverr.c: New file.
+ * sysdeps/unix/sysv/linux/timer_gettime.c: New file.
+ * sysdeps/unix/sysv/linux/timer_routines.c: New file.
+ * sysdeps/unix/sysv/linux/timer_settime.c: New file.
+ * sysdeps/unix/sysv/linux/ia64/Versions: New file.
+ * sysdeps/unix/sysv/linux/ia64/timer_create.c: New file.
+ * sysdeps/unix/sysv/linux/ia64/timer_delete.c: New file.
+ * sysdeps/unix/sysv/linux/ia64/timer_getoverr.c: New file.
+ * sysdeps/unix/sysv/linux/ia64/timer_gettime.c: New file.
+ * sysdeps/unix/sysv/linux/ia64/timer_settime.c: New file.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc64/Versions: New file.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_create.c: New file.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_delete.c: New file.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_getoverr.c: New file