]> git.ipfire.org Git - thirdparty/glibc.git/blame - nptl/ChangeLog
* elf/rtld.c (process_envvars): Fix handling of LD_POINTER_GUARD.
[thirdparty/glibc.git] / nptl / ChangeLog
CommitLineData
2035d91c
UD
12006-04-07 Jakub Jelinek <jakub@redhat.com>
2
3 * pthreadP.h (FUTEX_TID_MASK): Sync with kernel.
4
0292b0dd
UD
52006-04-06 Ulrich Drepper <drepper@redhat.com>
6
7 * pthread_getattr_np.c (pthread_getattr_np): Close fp if getrlimit
8 fails [Coverity CID 105].
9
6738b3c0
UD
102006-04-05 Ulrich Drepper <drepper@redhat.com>
11
12 * sysdeps/pthread/pthread.h: Add nonnull attributes.
13
359157a5
RM
142006-04-03 Steven Munroe <sjmunroe@us.ibm.com>
15
16 [BZ #2505]
17 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h [_ARCH_PWR4]:
18 Define __lll_rel_instr using lwsync.
19
cd277b2d
UD
202006-03-27 Ulrich Drepper <drepper@redhat.com>
21
22 * allocatestack.c (allocate_stack): Always initialize robust_head.
23 * descr.h: Define struct robust_list_head.
24 (struct pthread): Use robust_list_head in robust mutex list definition.
25 Adjust ENQUEUE_MUTEX and DEQUEUE_MUTEX.
26 * init.c [!__ASSUME_SET_ROBUST_LIST] (__set_robust_list_avail): Define.
27 (__pthread_initialize_minimal_internal): Register robust_list with
28 the kernel.
29 * pthreadP.h: Remove PRIVATE_ from PTHREAD_MUTEX_ROBUST_* names.
30 Declare __set_robust_list_avail.
31 * pthread_create.c (start_thread): Register robust_list of new thread.
32 [!__ASSUME_SET_ROBUST_LIST]: If robust_list is not empty wake up
33 waiters.
34 * pthread_mutex_destroy.c: For robust mutexes don't look at the
35 number of users, it's unreliable.
36 * pthread_mutex_init.c: Allow use of pshared robust mutexes if
37 set_robust_list syscall is available.
38 * pthread_mutex_consistent.c: Adjust for PTHREAD_MUTEX_ROBUST_* rename.
39 * pthread_mutex_lock.c: Simplify robust mutex code a bit.
40 Set robust_head.list_op_pending before trying to lock a robust mutex.
41 * pthread_mutex_timedlock.c: Likewise.
42 * pthread_mutex_trylock.c: Likewise.
43 * pthread_mutex_unlock.c: Likewise for unlocking.
44 * Makefile (tests): Add tst-robust8.
45 * tst-robust8.c: New file.
46
facac085
UD
472006-03-08 Andreas Schwab <schwab@suse.de>
48
49 * sysdeps/unix/sysv/linux/ia64/dl-sysdep.h
50 (DL_SYSINFO_IMPLEMENTATION): Add missing newline.
51
7ccbe1a1
RM
522006-03-05 Roland McGrath <roland@redhat.com>
53
54 * configure (libc_add_on): Disable add-on when $add_ons_automatic = yes
55 and $config_os doesn't match *linux*.
56
043cee37
RM
572006-03-05 David S. Miller <davem@sunset.davemloft.net>
58
59 * sysdeps/unix/sysv/linux/sparc/sparc32/pt-vfork.S:
60 Use __syscall_error.
61 * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h: Likewise.
62 * sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S: Likewise.
63 * sysdeps/unix/sysv/linux/sparc/sparc64/pt-vfork.S: Likewise.
64 * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h: Likewise.
65 * sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S: Likewise.
66 * sysdeps/unix/sysv/linux/sparc/Makefile: New file.
67
88bce79e
UD
682006-03-02 Ulrich Drepper <drepper@redhat.com>
69
70 * sysdeps/unix/sysv/linux/aio_misc.h: Various cleanups.
71
672ec465
UD
722006-03-01 Ulrich Drepper <drepper@redhat.com>
73
74 * sysdeps/unix/sysv/linux/x86_64/lowlevelrobustlock.S
75 (__lll_robust_lock_wait): Also set FUTEX_WAITERS bit if we got the
76 mutex.
77 (__lll_robust_timedlock_wait): Likewise.
78 * sysdeps/unix/sysv/linux/i386/i486/lowlevelrobustlock.S
79 (__lll_robust_lock_wait): Likewise.
80 (__lll_robust_timedlock_wait): Likewise.
81 * sysdeps/unix/sysv/linux/lowlevelrobustlock.c
82 (__lll_robust_lock_wait): Likewise.
83 (__lll_robust_timedlock_wait): Likewise.
84
c4a4875d
RM
852006-03-01 Jakub Jelinek <jakub@redhat.com>
86
87 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h (lll_robust_mutex_dead,
88 lll_robust_mutex_trylock, lll_robust_mutex_lock,
89 lll_robust_mutex_cond_lock, lll_robust_mutex_timedlock,
90 lll_robust_mutex_unlock): Define.
91 (__lll_robust_lock_wait, __lll_robust_timedlock_wait): New prototypes.
92
3192fd8e
RM
932006-02-28 H.J. Lu <hongjiu.lu@intel.com>
94
95 * sysdeps/unix/sysv/linux/ia64/clone2.S: Include <clone2.S>
96 instead of <clone.S>.
97
14d44b19
RM
982006-02-27 Jakub Jelinek <jakub@redhat.com>
99
100 * Makefile (libpthread-routines): Add
101 pthread_mutexattr_[sg]etprotocol, pthread_mutexattr_[sg]etprioceiling
102 and pthread_mutex_[sg]etprioceiling.
103 * Versions (GLIBC_2.4): Export pthread_mutexattr_getprotocol,
104 pthread_mutexattr_setprotocol, pthread_mutexattr_getprioceiling,
105 pthread_mutexattr_setprioceiling, pthread_mutex_getprioceiling and
106 pthread_mutex_setprioceiling.
107 * sysdeps/pthread/pthread.h (PTHREAD_PRIO_NONE, PTHREAD_PRIO_INHERIT,
108 PTHREAD_PRIO_PROTECT): New enum values.
109 (pthread_mutexattr_getprotocol, pthread_mutexattr_setprotocol,
110 pthread_mutexattr_getprioceiling, pthread_mutexattr_setprioceiling,
111 pthread_mutex_getprioceiling, pthread_mutex_setprioceiling): New
112 prototypes.
113 * pthreadP.h (PTHREAD_MUTEX_PRIO_INHERIT_PRIVATE_NP,
114 PTHREAD_MUTEX_PRIO_PROTECT_PRIVATE_NP): New enum values.
115 (PTHREAD_MUTEX_PRIO_CEILING_SHIFT, PTHREAD_MUTEX_PRIO_CEILING_MASK):
116 Define.
117 (PTHREAD_MUTEXATTR_PROTOCOL_SHIFT, PTHREAD_MUTEXATTR_PROTOCOL_MASK,
118 PTHREAD_MUTEXATTR_PRIO_CEILING_SHIFT,
119 PTHREAD_MUTEXATTR_PRIO_CEILING_MASK): Define.
120 (PTHREAD_MUTEXATTR_FLAG_BITS): Or in PTHREAD_MUTEXATTR_PROTOCOL_MASK
121 and PTHREAD_MUTEXATTR_PRIO_CEILING_MASK.
122 * pthread_mutex_init.c (__pthread_mutex_init): For the time being
123 return ENOTSUP for PTHREAD_PRIO_INHERIT or PTHREAD_PRIO_PROTECT
124 protocol mutexes.
125 * pthread_mutex_getprioceiling.c: New file.
126 * pthread_mutex_setprioceiling.c: New file.
127 * pthread_mutexattr_getprioceiling.c: New file.
128 * pthread_mutexattr_setprioceiling.c: New file.
129 * pthread_mutexattr_getprotocol.c: New file.
130 * pthread_mutexattr_setprotocol.c: New file.
131
62f6b9b2
RM
1322006-02-27 Daniel Jacobowitz <dan@codesourcery.com>
133
134 * sysdeps/unix/sysv/linux/aio_misc.h: Include <limits.h>.
135
e0a3ed4f
RM
1362006-02-27 Roland McGrath <roland@redhat.com>
137
138 * sysdeps/pthread/Subdirs: List nptl here too.
139 * configure (libc_add_on_canonical): New variable.
140
141 * sysdeps/unix/sysv/linux/sh/sh4/lowlevellock.h: Use #include_next.
142
143 * sysdeps/unix/sysv/linux/sleep.c: Use #include_next after #include of
144 self to get main source tree's file.
145 * sysdeps/unix/sysv/linux/alpha/clone.S: Likewise.
146 * sysdeps/unix/sysv/linux/i386/clone.S: Likewise.
147 * sysdeps/unix/sysv/linux/i386/vfork.S: Likewise.
148 * sysdeps/unix/sysv/linux/ia64/clone2.S: Likewise.
149 * sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S: Likewise.
150 * sysdeps/unix/sysv/linux/powerpc/powerpc64/clone.S: Likewise.
151 * sysdeps/unix/sysv/linux/s390/s390-32/clone.S: Likewise.
152 * sysdeps/unix/sysv/linux/s390/s390-64/clone.S: Likewise.
153 * sysdeps/unix/sysv/linux/sh/clone.S: Likewise.
154 * sysdeps/unix/sysv/linux/sparc/sparc32/clone.S: Likewise.
155 * sysdeps/unix/sysv/linux/sparc/sparc64/clone.S: Likewise.
156 * sysdeps/unix/sysv/linux/x86_64/clone.S: Likewise.
157 * sysdeps/unix/sysv/linux/x86_64/vfork.S: Likewise.
158
159 * Makefile: Use $(sysdirs) in vpath directive.
160
161 * sysdeps/pthread/Makefile (CFLAGS-libc-start.c): Variable removed.
162 (CPPFLAGS-timer_routines.c): Likewise.
163
164 * Makeconfig (includes): Variable removed.
165
84cfa284
RM
1662006-02-26 Roland McGrath <roland@redhat.com>
167
168 * sysdeps/generic/pt-raise.c: Moved to ...
169 * pt-raise.c: ... here.
170 * sysdeps/generic/lowlevellock.h: Moved to ...
171 * lowlevellock.h: ... here.
172
c5132ca1
RM
1732006-02-23 Roland McGrath <roland@redhat.com>
174
175 * descr.h (struct pthread): Add final member `end_padding'.
176 (PTHREAD_STRUCT_END_PADDING): Use it.
177
1782006-02-20 Roland McGrath <roland@redhat.com>
179
180 * sysdeps/mips: Directory removed, saved in ports repository.
181 * sysdeps/unix/sysv/linux/mips: Likewise.
182
a93317a1
UD
1832006-02-18 Ulrich Drepper <drepper@redhat.com>
184
185 * tst-robust1.c: Add second mutex to check that the mutex list is
186 handled correctly.
187
f1740bc4
UD
1882006-02-17 Jakub Jelinek <jakub@redhat.com>
189
190 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h (lll_robust_mutex_dead,
191 lll_robust_mutex_trylock, lll_robust_mutex_lock,
192 lll_robust_mutex_cond_lock, lll_robust_mutex_timedlock,
193 lll_robust_mutex_unlock): New macros.
194 (__lll_robust_lock_wait, __lll_robust_timedlock_wait): New prototypes.
195 * sysdeps/unix/sysv/linux/s390/lowlevellock.h: Likewise.
196 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Likewise.
197 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h: Likewise.
198 * sysdeps/unix/sysv/linux/lowlevelrobustlock.c: New file.
199
a7245bf5
UD
2002006-02-17 Kaz Kojima <kkojima@rr.iij4u.or.jp>
201
202 * sysdeps/unix/sysv/linux/sh/lowlevellock.h: Add lll_robust_mutex_*
203 definitions.
204 * sysdeps/unix/sysv/linux/sh/lowlevelrobustlock.S: New file.
205
49bfc1fe
UD
2062006-02-17 Ulrich Drepper <drepper@redhat.com>
207
208 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h
209 (lll_robust_mutex_unlock): Avoid unnecessary wakeups.
210 * sysdeps/unix/sysv/linux/i386/lowlevellock.h
211 (lll_robust_mutex_unlock): Likewise.
212
56e987ac
UD
2132006-02-13 Jakub Jelinek <jakub@redhat.com>
214
215 * descr.h [!__PTHREAD_MUTEX_HAVE_PREV] (DEQUEUE_MUTEX):
216 Set robust_list.__next rather than robust_list.
217 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h
218 (__pthread_list_t): New typedef.
219 (pthread_mutex_t): Replace __next and __prev fields with __list.
220 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h
221 (__pthread_list_t): New typedef.
222 (pthread_mutex_t): Replace __next and __prev fields with __list.
223 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h
224 (__pthread_list_t, __pthread_slist_t): New typedefs.
225 (pthread_mutex_t): Replace __next and __prev fields with __list.
226 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h
227 (__pthread_list_t, __pthread_slist_t): New typedefs.
228 (pthread_mutex_t): Replace __next and __prev fields with __list.
229 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h
230 (__pthread_list_t, __pthread_slist_t): New typedefs.
231 (pthread_mutex_t): Replace __next and __prev fields with __list.
232 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h
233 (__pthread_slist_t): New typedef.
234 (pthread_mutex_t): Replace __next field with __list.
235
683040c3
UD
2362006-02-15 Ulrich Drepper <drepper@redhat.com>
237
25bc77e6 238 * pthreadP.h: Define PTHREAD_MUTEX_INCONSISTENT instead of
683040c3
UD
239 PTHREAD_MUTEX_OWNERDEAD.
240 (PTHREAD_MUTEX_ROBUST_PRIVATE_NP): Define as 16, not 256.
241 Define FUTEX_WAITERS, FUTEX_OWNER_DIED, FUTEX_TID_MASK.
242 * Makefile (libpthread-routines): Add lowlevelrobustlock.
243 * pthread_create.c (start_thread): Very much simplify robust_list loop.
244 * pthread_mutex_consistent.c: Inconsistent mutex have __owner now set
245 to PTHREAD_MUTEX_INCONSISTENT.
246 * pthread_mutex_destroy.c: Allow destroying of inconsistent mutexes.
247 * pthread_mutex_lock.c: Reimplement robust mutex handling.
248 * pthread_mutex_trylock.c: Likewise.
249 * pthread_mutex_timedlock.c: Likewise.
250 * pthread_mutex_unlock.c: Likewise.
251 * sysdeps/unix/sysv/linux/pthread_mutex_cond_lock.c: Likewise.
252 * sysdeps/unix/sysv/linux/Makefile (gen-as-const-headers): Add
253 lowlevelrobustlock.sym.
254 * sysdeps/unix/sysv/linux/lowlevelrobustlock.sym: New file.
255 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Add lll_robust_mutex_*
256 definitions.
257 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
258 * sysdeps/unix/sysv/linux/i386/i486/lowlevelrobustlock.S: New file.
259 * sysdeps/unix/sysv/linux/i386/i586/lowlevelrobustlock.S: New file.
260 * sysdeps/unix/sysv/linux/i386/i686/lowlevelrobustlock.S: New file.
261 * sysdeps/unix/sysv/linux/x86_64/lowlevelrobustlock.S: New file.
262
bbf209a4
UD
2632006-02-12 Ulrich Drepper <drepper@redhat.com>
264
b007ce7c
UD
265 * allocatestack.c (allocate_stack): Initialize robust_list.
266 * init.c (__pthread_initialize_minimal_internal): Likewise.
267 * descr.h (struct xid_command): Pretty printing.
268 (struct pthread): Use __pthread_list_t or __pthread_slist_t for
269 robust_list. Adjust macros.
270 * pthread_create.c (start_thread): Adjust robust_list handling.
271 * phtread_mutex_unlock.c: Don't allow unlocking from any thread
272 but the owner for all robust mutex types.
273 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Define
274 __pthread_list_t and __pthread_slist_t. Use them in pthread_mutex_t.
0ca3379d 275 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
b007ce7c
UD
276 * sysdeps/pthread/pthread.h: Adjust mutex initializers.
277
bbf209a4
UD
278 * sysdeps/unix/sysv/linux/i386/not-cancel.h: Define openat_not_cancel,
279 openat_not_cancel_3, openat64_not_cancel, and openat64_not_cancel_3.
280
b576fca1
UD
2812006-02-08 Jakub Jelinek <jakub@redhat.com>
282
283 * sysdeps/unix/sysv/linux/i386/lowlevellock.h (lll_futex_wait,
284 lll_futex_timedwait, lll_wait_tid): Add "memory" clobber.
285
a6df7387
UD
2862006-01-20 Kaz Kojima <kkojima@rr.iij4u.or.jp>
287
288 * sysdeps/unix/sysv/linux/sh/lowlevellock.h (lll_futex_wait):
289 Return status.
290 (lll_futex_timed_wait): Define.
291
7c65e900
UD
2922006-01-19 Ulrich Drepper <drepper@redhat.com>
293
294 * tst-cancel4.c: Test ppoll.
295
5f9f21e8
AJ
2962006-01-18 Andreas Jaeger <aj@suse.de>
297
cf407dfb 298 [BZ #2167]
5f9f21e8
AJ
299 * sysdeps/unix/sysv/linux/mips/bits/pthreadtypes.h
300 (pthread_mutex_t): Follow changes for other archs. Based on patch
301 by Jim Gifford <patches@jg555.com>.
302
251278c6
UD
3032006-01-13 Richard Henderson <rth@redhat.com>
304
305 * sysdeps/alpha/tls.h (tcbhead_t): Rename member to __private.
306
de59a291
RM
3072006-01-10 Roland McGrath <roland@redhat.com>
308
309 * sysdeps/alpha/jmpbuf-unwind.h: File moved to main source tree.
310 * sysdeps/i386/jmpbuf-unwind.h: Likewise.
311 * sysdeps/mips/jmpbuf-unwind.h: Likewise.
312 * sysdeps/powerpc/jmpbuf-unwind.h: Likewise.
313 * sysdeps/s390/jmpbuf-unwind.h: Likewise.
314 * sysdeps/sh/jmpbuf-unwind.h: Likewise.
315 * sysdeps/sparc/sparc32/jmpbuf-unwind.h: Likewise.
316 * sysdeps/sparc/sparc64/jmpbuf-unwind.h: Likewise.
317 * sysdeps/x86_64/jmpbuf-unwind.h: Likewise.
0ca13e14 318 * sysdeps/unix/sysv/linux/ia64/jmpbuf-unwind.h: Likewise.
de59a291 319
931786ee
RM
3202006-01-09 Roland McGrath <roland@redhat.com>
321
5d42c8c3
RM
322 * tst-initializers1-c89.c: New file.
323 * tst-initializers1-c99.c: New file.
324 * tst-initializers1-gnu89.c: New file.
325 * tst-initializers1-gnu99.c: New file.
326 * Makefile (tests): Add them.
327 (CFLAGS-tst-initializers1-c89.c): New variable.
328 (CFLAGS-tst-initializers1-c99.c): New variable.
329 (CFLAGS-tst-initializers1-gnu89.c): New variable.
330 (CFLAGS-tst-initializers1-gnu99.c): New variable.
331
931786ee
RM
332 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_mutex_t):
333 Use __extension__ on anonymous union definition.
334 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
335 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Likewise.
336 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
337 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
3c238452 338 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: Likewise.
931786ee 339
8dd18431
RM
3402006-01-08 Jakub Jelinek <jakub@redhat.com>
341
342 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h (pthread_mutex_t):
343 Don't give the union a name because it changes the mangled name.
344 Instead name the struct for __data.
345 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h (pthread_mutex_t):
346 Likewise.
347 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h (pthread_mutex_t):
348 Likewise.
349
ae11e412
UD
3502006-01-09 Jakub Jelinek <jakub@redhat.com>
351
352 * sysdeps/sparc/sparc64/jmpbuf-unwind.h (_JMPBUF_UNWINDS_ADJ): Add
353 stack bias to mc_ftp field.
354
c6885aa1
UD
3552006-01-07 Ulrich Drepper <drepper@redhat.com>
356
357 * sysdeps/pthread/aio_misc.h (AIO_MISC_WAIT): Work around gcc
6e741bc3 358 being too clever and reloading the futex value where it shouldn't.
c6885aa1 359
ae4ad00a
UD
3602006-01-06 Ulrich Drepper <drepper@redhat.com>
361
362 * descr.h [!__PTHREAD_MUTEX_HAVE_PREV] (DEQUEUE_MUTEX): Use
363 correct type.
364
ced368f7
UD
3652006-01-06 Jakub Jelinek <jakub@redhat.com>
366
367 * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h (PSEUDO):
368 Add cfi directives.
369
d804f5df
UD
3702006-01-06 Ulrich Drepper <drepper@redhat.com>
371
cbbbb188 372 * sysdeps/ia64/tls.h (tcbhead_t): Rename private member to __private.
719046c1
UD
373 * sysdeps/ia64/tcb-offsets.sym: Adjust for private->__private
374 rename in tcbhead_t.
375
d804f5df
UD
376 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_mutex_t):
377 Don't give the union a name because it changes the mangled name.
378 Instead name the struct for __data.
379 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
380 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
381 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
382 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
383 * pthread_create.c (start_thread): Adjust robust mutex free loop.
384 * descr.h (ENQUEUE_MUTEX, DEQUEUE_MUTEX): Adjust.
385
679d83ba
UD
3862006-01-05 Ulrich Drepper <drepper@redhat.com>
387
388 * sysdeps/unix/sysv/linux/i386/lowlevellock.h (lll_futex_wait):
389 Return status.
390 (lll_futex_timed_wait): Define.
391 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
392 * sysdeps/pthread/aio_misc.h: New file.
393
06dc5bf3
RM
3942006-01-03 Joseph S. Myers <joseph@codesourcery.com>
395
396 * Makefile ($(objpfx)$(multidir)): Use mkdir -p.
397
9759bbf1
UD
3982006-01-03 Steven Munroe <sjmunroe@us.ibm.com>
399
400 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h
401 (PSEUDO): Remove redundant cfi_startproc and cfi_endproc directives.
402 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h: Likewise.
403
db59b28b
UD
4042006-01-04 Ulrich Drepper <drepper@redhat.com>
405
406 * tst-cancel24.cc: Use C headers instead of C++ headers.
407
b01fe5f7
UD
4082006-01-03 Jakub Jelinek <jakub@redhat.com>
409
410 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h: Remove #error for
411 sparc-linux configured glibc.
412 (lll_futex_wake_unlock): Define to 1 for sparc-linux configured glibc.
413 (__lll_mutex_trylock, __lll_mutex_cond_trylock, __lll_mutex_lock,
414 __lll_mutex_cond_lock, __lll_mutex_timedlock): Use
415 atomic_compare_and_exchange_val_24_acq instead of
416 atomic_compare_and_exchange_val_acq.
417 (lll_mutex_unlock, lll_mutex_unlock_force): Use atomic_exchange_24_rel
418 instead of atomic_exchange_rel.
419 * sysdeps/unix/sysv/linux/sparc/sparc32/lowlevellock.c: New file.
420 * sysdeps/unix/sysv/linux/sparc/sparc32/pthread_barrier_init.c: New
421 file.
422 * sysdeps/unix/sysv/linux/sparc/sparc32/pthread_barrier_wait.c: New
423 file.
424 * sysdeps/unix/sysv/linux/sparc/sparc32/sem_init.c: New file.
425 * sysdeps/unix/sysv/linux/sparc/sparc32/sem_post.c: New file.
426 * sysdeps/unix/sysv/linux/sparc/sparc32/sem_timedwait.c: New file.
427 * sysdeps/unix/sysv/linux/sparc/sparc32/sem_trywait.c: New file.
428 * sysdeps/unix/sysv/linux/sparc/sparc32/sem_wait.c: New file.
429 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/pthread_barrier_init.c:
430 New file.
431 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/pthread_barrier_wait.c:
432 New file.
433 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_init.c: New file.
434 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_post.c: New file.
435 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_timedwait.c: New
436 file.
437 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_trywait.c: New
438 file.
439 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_wait.c: New file.
440
35c2fd59
UD
4412006-01-03 Ulrich Drepper <drepper@redhat.com>
442
443 * sysdeps/pthread/pthread.h [__WORDSIZE==64]: Don't use cast in
444 mutex initializers.
445
305bb37e
UD
4462006-01-02 Jakub Jelinek <jakub@redhat.com>
447
448 * sysdeps/sparc/tls.h (tcbhead_t): Add pointer_guard field.
449 (THREAD_GET_POINTER_GUARD, THREAD_SET_POINTER_GUARD,
450 THREAD_COPY_POINTER_GUARD): Define.
451 * sysdeps/sparc/tcb-offsets.sym (POINTER_GUARD): Define.
452 * sysdeps/sparc/sparc64/jmpbuf-unwind.h: Revert 2005-12-27 changes.
453
cc792128
UD
4542006-01-01 Ulrich Drepper <drepper@redhat.com>
455
456 * version.c: Update copyright year.
457
db0a00d3
UD
4582005-12-29 Kaz Kojima <kkojima@rr.iij4u.or.jp>
459
460 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h: Remove explicit
461 .eh_frame section, use cfi_* directives.
462 * sysdeps/unix/sysv/linux/sh/lowlevellock.S: Add cfi instrumentation.
463
b36205c4
UD
4642005-12-30 Ulrich Drepper <drepper@redhat.com>
465
466 * sysdeps/unix/sysv/linux/ia64/jmpbuf-unwind.h: Undo last change for
467 now.
468
8b4f1598
UD
4692005-12-29 Ulrich Drepper <drepper@redhat.com>
470
471 * sysdeps/pthread/sigaction.c: Removed.
472 * sigaction.c: New file.
473 * sysdeps/unix/sysv/linux/Makefile: Define CFLAGS-sigaction.c.
474
fec5592d
UD
4752005-12-28 Ulrich Drepper <drepper@redhat.com>
476
477 * Makefile (tests): Add tst-signal7.
478 * tst-signal7.c: New file.
479
db169ed5
RM
4802005-12-27 Roland McGrath <roland@redhat.com>
481
482 * sysdeps/x86_64/jmpbuf-unwind.h (_jmpbuf_sp): New inline function.
483 (_JMPBUF_UNWINDS_ADJ): Use it, to PTR_DEMANGLE before comparison.
484 * sysdeps/alpha/jmpbuf-unwind.h: Likewise.
485 * sysdeps/i386/jmpbuf-unwind.h: Likewise.
486 * sysdeps/mips/jmpbuf-unwind.h: Likewise.
487 * sysdeps/powerpc/jmpbuf-unwind.h: Likewise.
488 * sysdeps/s390/jmpbuf-unwind.h: Likewise.
489 * sysdeps/sh/jmpbuf-unwind.h: Likewise.
490 * sysdeps/sparc/sparc32/jmpbuf-unwind.h: Likewise.
491 * sysdeps/sparc/sparc64/jmpbuf-unwind.h: Likewise.
492 * sysdeps/unix/sysv/linux/ia64/jmpbuf-unwind.h: Likewise.
493
bfffffae
UD
4942005-12-27 Jakub Jelinek <jakub@redhat.com>
495
496 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h: Add __next
497 and __prev field to pthread_mutex_t.
498 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
499 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
500 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
501 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: Likewise.
502 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Add __next field
503 to pthread_mutex_t.
504
1bcfb5a5
UD
5052005-12-26 Ulrich Drepper <drepper@redhat.com>
506
507 * pthreadP.h: Define PTHREAD_MUTEX_ROBUST_PRIVATE_NP,
508 PTHREAD_MUTEX_ROBUST_PRIVATE_RECURSIVE_NP,
509 PTHREAD_MUTEX_ROBUST_PRIVATE_ERRORCHECK_NP,
510 PTHREAD_MUTEX_ROBUST_PRIVATE_ADAPTIVE_NP,
511 PTHREAD_MUTEXATTR_FLAG_ROBUST, PTHREAD_MUTEXATTR_FLAG_PSHARED,
512 and PTHREAD_MUTEXATTR_FLAG_BITS.
513 * descr.h (struct pthread): Add robust_list field and define
514 ENQUEUE_MUTEX and DEQUEUE_MUTEX macros.
515 * pthread_mutexattr_getrobust.c: New file.
516 * pthread_mutexattr_setrobust.c: New file.
517 * pthread_mutex_consistent.c: New file.
518 * sysdeps/pthread/pthread.h: Declare pthread_mutexattr_getrobust,
519 pthread_mutexattr_setrobust, and pthread_mutex_consistent.
520 Define PTHREAD_MUTEX_STALLED_NP and PTHREAD_MUTEX_ROBUST_NP.
521 Adjust pthread_mutex_t initializers.
522 * nptl/sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Add __next
523 field to pthread_mutex_t.
524 * nptl/sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Add __next
525 and __prev field to pthread_mutex_t.
526 * Versions [GLIBC_2.4]: Export pthread_mutexattr_getrobust_np,
527 pthread_mutexattr_setrobust_np, and pthread_mutex_consistent_np.
528 * pthread_mutexattr_getpshared.c: Use PTHREAD_MUTEXATTR_FLAG_PSHARED
529 and PTHREAD_MUTEXATTR_FLAG_BITS macros instead of magic numbers.
530 * pthread_mutexattr_gettype.c: Likewise.
531 * pthread_mutexattr_setpshared.c: Likewise.
532 * pthread_mutexattr_settype.c: Likewise.
533 * pthread_mutex_init.c: Reject robust+pshared attribute for now.
534 Initialize mutex kind according to robust flag.
535 * pthread_mutex_lock.c: Implement local robust mutex.
536 * pthread_mutex_timedlock.c: Likewise.
537 * pthread_mutex_trylock.c: Likewise.
538 * pthread_mutex_unlock.c: Likewise.
539 * pthread_create.c (start_thread): Mark robust mutexes which remained
540 locked as dead.
541 * tst-robust1.c: New file.
542 * tst-robust2.c: New file.
543 * tst-robust3.c: New file.
544 * tst-robust4.c: New file.
545 * tst-robust5.c: New file.
546 * tst-robust6.c: New file.
547 * tst-robust7.c: New file.
548 * Makefile (libpthread-routines): Add pthread_mutexattr_getrobust,
549 pthread_mutexattr_setrobust, and pthread_mutex_consistent.
550 (tests): Add tst-robust1, tst-robust2, tst-robust3, tst-robust4,
551 tst-robust5, tst-robust6, and tst-robust7.
552
553 * tst-typesizes.c: New file.
554 * Makefile (tests): Add tst-typesizes.
555
556 * tst-once3.c: More debug output.
557
9333ed0d
UD
5582005-12-24 Ulrich Drepper <drepper@redhat.com>
559
d4d138a4
UD
560 * pthread_mutex_trylock.c (__pthread_mutex_trylock): Add break
561 missing after last change.
562
bfffffae 563 * version.c: Update copyright year.
9333ed0d 564
dcc73a8d
UD
5652005-12-23 Ulrich Drepper <drepper@redhat.com>
566
567 * pthread_mutex_destroy.c: Set mutex type to an invalid value.
568 * pthread_mutex_lock.c: Return EINVAL for invalid mutex type.
569 * pthread_mutex_trylock.c: Likewise.
570 * pthread_mutex_timedlock.c: Likewise.
571 * pthread_mutex_unlock.c: Likewise.
572
879f3ca6
RM
5732005-12-22 Roland McGrath <roland@redhat.com>
574
575 * sysdeps/pthread/sigaction.c: Use "" instead of <> to include self,
576 so that #include_next's search location is not reset to the -I..
577 directory where <nptl/...> can be found.
578
077a0da7
UD
5792005-12-22 Ulrich Drepper <drepper@redhat.com>
580
581 [BZ #1913]
582 * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S (__new_sem_wait):
583 Fix unwind info. Remove useless branch prediction prefix.
7735afa2
UD
584 * tst-cancel24.cc: New file.
585 * Makefile: Add rules to build and run tst-cancel24.
077a0da7 586
8dea90aa
RM
5872005-12-21 Roland McGrath <roland@redhat.com>
588
589 * libc-cancellation.c: Use <> rather than "" #includes.
590 * pt-cleanup.c: Likewise.
591 * pthread_create.c: Likewise.
592 * pthread_join.c: Likewise.
593 * pthread_timedjoin.c: Likewise.
594 * pthread_tryjoin.c: Likewise.
595 * sysdeps/unix/sysv/linux/libc_pthread_init.c: Likewise.
596 * sysdeps/unix/sysv/linux/register-atfork.c: Likewise.
597 * sysdeps/unix/sysv/linux/unregister-atfork.c: Likewise.
598 * unwind.c: Likewise.
599
8da21f96
UD
6002005-12-19 Kaz Kojima <kkojima@rr.iij4u.or.jp>
601
602 * sysdeps/sh/tcb-offsets.sym: Add POINTER_GUARD.
603 * sysdeps/sh/tls.h (tcbhead_t): Remove private and add pointer_guard.
604 (THREAD_GET_POINTER_GUARD, THREAD_SET_POINTER_GUARD,
605 THREAD_COPY_POINTER_GUARD): Define.
606
00c2b3b9
UD
6072005-12-19 Jakub Jelinek <jakub@redhat.com>
608
609 * sysdeps/ia64/tls.h (TLS_PRE_TCB_SIZE): Make room for 2 uintptr_t's
610 rather than one.
611 (THREAD_GET_POINTER_GUARD, THREAD_SET_POINTER_GUARD,
612 THREAD_COPY_POINTER_GUARD): Define.
613 * sysdeps/powerpc/tcb-offsets.sym (POINTER_GUARD): Add.
614 * sysdeps/powerpc/tls.h (tcbhead_t): Add pointer_guard field.
615 (THREAD_GET_POINTER_GUARD, THREAD_SET_POINTER_GUARD,
616 THREAD_COPY_POINTER_GUARD): Define.
617 * sysdeps/s390/tcb-offsets.sym (STACK_GUARD): Add.
618 * sysdeps/s390/tls.h (THREAD_GET_POINTER_GUARD,
619 THREAD_SET_POINTER_GUARD, THREAD_COPY_POINTER_GUARD): Define.
620 * sysdeps/unix/sysv/linux/ia64/__ia64_longjmp.S (__ia64_longjmp):
621 Use PTR_DEMANGLE for B0 if defined.
622
827b7087
UD
6232005-12-17 Ulrich Drepper <drepper@redhat.com>
624
625 * pthread_create.c (__pthread_create_2_1): Use
626 THREAD_COPY_POINTER_GUARD if available.
627 * sysdeps/i386/tcb-offsets.sym: Add POINTER_GUARD.
628 * sysdeps/x86_64/tcb-offsets.sym: Likewise.
629 * sysdeps/i386/tls.h (tcbhead_t): Add pointer_guard.
630 Define THREAD_SET_POINTER_GUARD and THREAD_COPY_POINTER_GUARD.
631 * sysdeps/x86_64/tls.h: Likewise.
632
2826ac7e
RM
6332005-12-15 Roland McGrath <roland@redhat.com>
634
635 * sysdeps/unix/sysv/linux/mq_notify.c: Don't use sysdeps/generic.
636
b6ab06ce
UD
6372005-12-13 Ulrich Drepper <drepper@redhat.com>
638
639 * sysdeps/pthread/sigfillset.c: Adjust for files moved out of
640 sysdeps/generic.
641 * errno-loc.c: New file.
642
f0d1a3b5
RM
6432005-12-12 Roland McGrath <roland@redhat.com>
644
645 * init.c (__pthread_initialize_minimal_internal): Do __static_tls_size
646 adjustments before choosing stack size. Update minimum stack size
647 calculation to match allocate_stack change.
648
db13ddbc
UD
6492005-12-12 Ulrich Drepper <drepper@redhat.com>
650
651 * allocatestack.c (allocate_stack): Don't demand that there is an
652 additional full page available on the stack beside guard, TLS, the
653 minimum stack.
654
088f460f
UD
6552005-11-24 Ulrich Drepper <drepper@redhat.com>
656
657 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h
658 (__cleanup_fct_attribute): Use __regparm__ not regparm.
659
660 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: When
661 compiling 32-bit code we must define __cleanup_fct_attribute.
662
16feadf2
UD
663005-11-24 Jakub Jelinek <jakub@redhat.com>
664
665 [BZ #1920]
666 * sysdeps/pthread/pthread.h (__pthread_unwind_next): Use
667 __attribute__ instead of __attribute.
668 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h
669 (__cleanup_fct_attribute): Likewise.
670
e6e493bb
UD
6712005-11-17 Jakub Jelinek <jakub@redhat.com>
672
673 * sysdeps/pthread/unwind-forcedunwind.c (pthread_cancel_init): Put
674 a write barrier before writing libgcc_s_getcfa.
675
8e635611
UD
6762005-11-06 Ulrich Drepper <drepper@redhat.com>
677
678 * sysdeps/unix/sysv/linux/configure: Removed.
679
ce33ee7c
UD
6802005-11-05 Ulrich Drepper <drepper@redhat.com>
681
682 * sysdeps/unix/sysv/linux/ia64/pt-initfini.c: Remove trace of
683 optional init_array/fini_array support.
684
20d511e0
RM
6852005-10-24 Roland McGrath <roland@redhat.com>
686
687 * sysdeps/unix/sysv/linux/x86_64/sem_trywait.S: Remove unnecessary
688 versioned_symbol use.
689
fe60d146
RM
6902005-10-16 Roland McGrath <roland@redhat.com>
691
692 * init.c (__pthread_initialize_minimal_internal): Even when using a
693 compile-time default stack size, apply the minimum that allocate_stack
694 will require, and round up to page size.
695
0faa1cf5
RM
6962005-10-10 Daniel Jacobowitz <dan@codesourcery.com>
697
698 * Makefile ($(test-modules)): Remove static pattern rule.
699
f9126cc2
UD
7002005-10-14 Jakub Jelinek <jakub@redhat.com>
701 Ulrich Drepper <drepper@redhat.com>
702
703 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Fix stack
704 alignment in callback function.
705 * Makefile: Add rules to build and run tst-align3.
706 * tst-align3.c: New file.
707
015a5d22
RM
7082005-10-03 Jakub Jelinek <jakub@redhat.com>
709
710 * allocatestack.c (setxid_signal_thread): Add
711 INTERNAL_SYSCALL_DECL (err).
712
b71ce910
UD
7132005-10-02 Jakub Jelinek <jakub@redhat.com>
714
715 * allocatestack.c (setxid_signal_thread): Need to use
716 atomic_compare_and_exchange_bool_acq.
717
dff9a7a1
UD
7182005-10-01 Ulrich Drepper <drepper@redhat.com>
719 Jakub Jelinek <jakub@redhat.com>
720
721 * descr.h: Define SETXID_BIT and SETXID_BITMASK. Adjust
722 CANCEL_RESTMASK.
723 (struct pthread): Move specific_used field to avoid padding.
724 Add setxid_futex field.
725 * init.c (sighandler_setxid): Reset setxid flag and release the
726 setxid futex.
727 * allocatestack.c (setxid_signal_thread): New function. Broken
728 out of the bodies of the two loops in __nptl_setxid. For undetached
729 threads check whether they are exiting and if yes, don't send a signal.
730 (__nptl_setxid): Simplify loops by using setxid_signal_thread.
731 * pthread_create.c (start_thread): For undetached threads, check
732 whether setxid bit is set. If yes, wait until signal has been
733 processed.
734
735 * allocatestack.c (STACK_VARIABLES): Initialize them.
736 * pthread_create.c (__pthread_create_2_1): Initialize pd.
737
560b4709
UD
7382004-09-02 Jakub Jelinek <jakub@redhat.com>
739
740 * pthread_cond_destroy.c (__pthread_cond_destroy): If there are
741 waiters, awake all waiters on the associated mutex.
742
5eac4760
RM
7432005-09-22 Roland McGrath <roland@redhat.com>
744
745 * perf.c [__x86_64__] (HP_TIMING_NOW): New macro (copied from
746 ../sysdeps/x86_64/hp-timing.h).
747
a3615024
UD
7482005-08-29 Jakub Jelinek <jakub@redhat.com>
749
750 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h (FUTEX_WAKE_OP,
751 FUTEX_OP_CLEAR_WAKE_IF_GT_ONE): Define.
752 (lll_futex_wake_unlock): Define.
753 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h (FUTEX_WAKE_OP,
754 FUTEX_OP_CLEAR_WAKE_IF_GT_ONE): Define.
755 (lll_futex_wake_unlock): Define.
756 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (FUTEX_WAKE_OP,
757 FUTEX_OP_CLEAR_WAKE_IF_GT_ONE): Define.
758 (lll_futex_wake_unlock): Define.
759 * sysdeps/unix/sysv/linux/s390/lowlevellock.h (FUTEX_WAKE_OP,
760 FUTEX_OP_CLEAR_WAKE_IF_GT_ONE): Define.
761 (lll_futex_wake_unlock): Define.
762 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h (FUTEX_WAKE_OP,
763 FUTEX_OP_CLEAR_WAKE_IF_GT_ONE): Define.
764 (lll_futex_wake_unlock): Define.
765 * sysdeps/pthread/pthread_cond_signal.c (__pthread_cond_signal): Use
766 lll_futex_wake_unlock.
767 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
768 (FUTEX_WAKE_OP, FUTEX_OP_CLEAR_WAKE_IF_GT_ONE): Define.
769 (__pthread_cond_signal): Use FUTEX_WAKE_OP.
770 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S
771 (FUTEX_WAKE_OP, FUTEX_OP_CLEAR_WAKE_IF_GT_ONE): Define.
772 (__pthread_cond_signal): Use FUTEX_WAKE_OP.
773
bf017034
UD
7742005-09-05 Kaz Kojima <kkojima@rr.iij4u.or.jp>
775
776 * sysdeps/unix/sysv/linux/sh/lowlevellock.S (__lll_mutex_lock_wait):
777 Fix typo in register name.
778
fd4af664
UD
7792005-08-23 Ulrich Drepper <drepper@redhat.com>
780
8558d715
UD
781 * sysdeps/unix/sysv/linux/timer_routines.c (timer_helper_thread):
782 Use __sigfillset. Document that sigfillset does the right thing wrt
783 to SIGSETXID.
fd4af664 784
3fd1bc67
UD
7852005-07-11 Jakub Jelinek <jakub@redhat.com>
786
44d75caf 787 [BZ #1102]
3fd1bc67
UD
788 * sysdeps/pthread/pthread.h (PTHREAD_MUTEX_INITIALIZER,
789 PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP,
790 PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP,
791 PTHREAD_MUTEX_ADAPTIVE_NP, PTHREAD_RWLOCK_INITIALIZER,
792 PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP,
793 PTHREAD_COND_INITIALIZER): Supply zeros for all fields
794 in the structure.
795 * Makefile (tests): Add tst-initializers1.
796 (CFLAGS-tst-initializers1.c): Set.
797 * tst-initializers1.c: New test.
798
553185e2
UD
7992005-07-11 Jakub Jelinek <jakub@redhat.com>
800
801 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h (pthread_rwlock_t):
802 Make sure __flags are located at offset 48 from the start of the
803 structure.
804
8df08cb2
RM
8052005-07-02 Roland McGrath <roland@redhat.com>
806
807 * Makeconfig: Comment fix.
808
253eb3a0
UD
8092005-07-05 Jakub Jelinek <jakub@redhat.com>
810
811 * descr.h (PTHREAD_STRUCT_END_PADDING): Define.
812 * sysdeps/ia64/tls.h (TLS_PRE_TCB_SIZE): If PTHREAD_STRUCT_END_PADDING
813 is smaller than 8 bytes, increase TLS_PRE_TCB_SIZE by 16 bytes.
814 (THREAD_SYSINFO, THREAD_SELF, DB_THREAD_SELF): Don't assume
815 TLS_PRE_TCB_SIZE is sizeof (struct pthread).
816 (THREAD_SET_STACK_GUARD, THREAD_COPY_STACK_GUARD): Define.
817 * sysdeps/ia64/tcb-offsets.sym (PID, TID, MULTIPLE_THREADS_OFFSET):
818 Use TLS_PRE_TCB_SIZE instead of sizeof (struct pthread).
819 * sysdeps/unix/sysv/linux/ia64/createthread.c (TLS_VALUE): Don't
820 assume TLS_PRE_TCB_SIZE is sizeof (struct pthread).
821
bb6e8ca3
UD
8222005-06-25 Jakub Jelinek <jakub@redhat.com>
823
824 * sysdeps/i386/tls.h (tcbhead_t): Add stack_guard field.
825 (THREAD_SET_STACK_GUARD, THREAD_COPY_STACK_GUARD): Define.
826 * sysdeps/x86_64/tls.h (tcbhead_t): Add sysinfo and stack_guard
827 fields.
828 (THREAD_SET_STACK_GUARD, THREAD_COPY_STACK_GUARD): Define.
829 * sysdeps/s390/tls.h (tcbhead_t): Add stack_guard
830 field. Put in sysinfo field unconditionally.
831 (THREAD_SET_STACK_GUARD, THREAD_COPY_STACK_GUARD): Define.
832 * sysdeps/powerpc/tls.h (tcbhead_t): Add stack_guard field.
833 (THREAD_SET_STACK_GUARD, THREAD_COPY_STACK_GUARD): Define.
834 * sysdeps/sparc/tls.h (tcbhead_t): Add sysinfo and stack_guard
835 fields.
836 (THREAD_SET_STACK_GUARD, THREAD_COPY_STACK_GUARD): Define.
837 * pthread_create.c (__pthread_create_2_1): Use
838 THREAD_COPY_STACK_GUARD macro.
839 * Makefile: Add rules to build and run tst-stackguard1{,-static}
840 tests.
841 * tst-stackguard1.c: New file.
842 * tst-stackguard1-static.c: New file.
843
99c7f870
UD
8442005-06-14 Alan Modra <amodra@bigpond.net.au>
845
846 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h (PSEUDO):
847 Invoke CGOTSETUP and CGOTRESTORE.
848 (CGOTSETUP, CGOTRESTORE): Define.
849
8074c5c5
RM
8502005-05-29 Richard Henderson <rth@redhat.com>
851
852 * tst-cancel4.c (WRITE_BUFFER_SIZE): New.
853 (tf_write, tf_writev): Use it.
854 (do_test): Use socketpair instead of pipe. Set SO_SNDBUF to
855 the system minimum.
856
c179df4e
UD
8572005-05-23 Jakub Jelinek <jakub@redhat.com>
858
859 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h
860 [IS_IN_librt] (CENABLE, CDISABLE): Use JUMPTARGET instead of
861 __librt_*_asynccancel@local.
862
b0e196a4
UD
8632005-05-17 Alan Modra <amodra@bigpond.net.au>
864
865 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h: Delete
866 all occurrences of JUMPTARGET. Instead append @local to labels.
867
f7d78e18
UD
8682005-05-20 Jakub Jelinek <jakub@redhat.com>
869
870 * sysdeps/i386/tls.h (TLS_INIT_TCB_SIZE, TLS_INIT_TCB_ALIGN): Define to
871 size/alignment of struct pthread rather than tcbhead_t.
872 * sysdeps/x86_64/tls.h (TLS_INIT_TCB_SIZE, TLS_INIT_TCB_ALIGN):
873 Likewise.
874 * sysdeps/s390/tls.h (TLS_INIT_TCB_SIZE, TLS_INIT_TCB_ALIGN):
875 Likewise.
876 * sysdeps/sparc/tls.h (TLS_INIT_TCB_SIZE, TLS_INIT_TCB_ALIGN):
877 Likewise.
878
363dd976
UD
8792005-05-19 Richard Henderson <rth@redhat.com>
880
881 * sysdeps/ia64/pthread_spin_lock.c (pthread_spin_lock): Use
882 __sync_val_compare_and_swap, not explicit _si variant.
883 * sysdeps/ia64/pthread_spin_trylock.c (pthread_spin_trylock): Likewise.
884
1ad9da69
UD
8852005-05-03 Ulrich Drepper <drepper@redhat.com>
886
887 [BZ #915]
888 * sysdeps/pthread/pthread.h: Avoid empty initializers.
889
5085cd1f
UD
8902005-05-03 Jakub Jelinek <jakub@redhat.com>
891
892 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Remove explicit
893 .eh_frame section, use cfi_* directives.
894
ad529081
UD
8952005-04-27 Jakub Jelinek <jakub@redhat.com>
896
897 * sysdeps/unix/sysv/linux/pthread_getcpuclockid.c: Use <> instead
898 of "" includes.
899
dea99685
UD
9002005-04-27 Ulrich Drepper <drepper@redhat.com>
901
c06aad09 902 [BZ #1075]
dea99685
UD
903 * tst-cancel17.c (do_test): Add arbitrary factor to make sure
904 aio_write blocks.
905
84060bad
RM
9062005-04-27 Roland McGrath <roland@redhat.com>
907
5e2d8ac8
RM
908 * Makefile (tests): Remove tst-clock2.
909
84060bad
RM
910 * sysdeps/unix/sysv/linux/timer_create.c (timer_create): Handle
911 CLOCK_PROCESS_CPUTIME_ID and CLOCK_PROCESS_THREAD_ID specially,
912 translating to the kernel clockid_t for our own process/thread clock.
913
914 * sysdeps/unix/sysv/linux/pthread_getcpuclockid.c: New file.
915
4a035b9d
RM
9162005-04-15 Jakub Jelinek <jakub@redhat.com>
917
918 * old_pthread_cond_init.c: Include <errno.h>.
919 (__pthread_cond_init_2_0): Fail with EINVAL if COND_ATTR is
920 process shared or uses clock other than CLOCK_REALTIME.
921 * pthread_cond_init.c (__pthread_cond_init): Remove bogus comment.
922
edac0e8f
UD
9232005-04-13 David S. Miller <davem@davemloft.net>
924
925 * sysdeps/sparc/sparc64/jmpbuf-unwind.h: New file.
926 * sysdeps/sparc/sparc64/clone.S: New file.
927
613d8d52
RM
9282005-04-05 Jakub Jelinek <jakub@redhat.com>
929
44d75caf 930 [BZ #1102]
613d8d52
RM
931 * sysdeps/pthread/pthread.h (__pthread_cleanup_routine): Use
932 __inline instead of inline.
933 * sysdeps/pthread/bits/libc-lock.h (__libc_cleanup_routine): Likewise.
934
ee618985
UD
9352005-03-31 Jakub Jelinek <jakub@redhat.com>
936
937 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_unlock.S: Use
938 functionally equivalent, but shorter instructions.
939 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S: Likewise.
940 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h: Likewise.
941 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S:
942 Likewise.
943 * sysdeps/unix/sysv/linux/x86_64/pthread_barrier_wait.S: Likewise.
944 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S: Likewise.
945 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Likewise.
946 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S: Likewise.
947 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
948 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Likewise.
949 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S:
950 Likewise.
951 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S: Likewise.
952 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Likewise.
953 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
954 * sysdeps/unix/sysv/linux/x86_64/sem_post.S: Likewise.
955 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Likewise.
956
f850220b
AJ
9572005-03-28 Daniel Jacobowitz <dan@codesourcery.com>
958
959 * sysdeps/mips/Makefile: New file.
960 * sysdeps/mips/nptl-sysdep.S: New file.
961 * sysdeps/mips/tcb-offsets.sym: New file.
962 * sysdeps/mips/pthread_spin_lock.S: New file.
963 * sysdeps/mips/pthread_spin_trylock.S: New file.
964 * sysdeps/mips/pthreaddef.h: New file.
965 * sysdeps/mips/tls.h: New file.
966 * sysdeps/mips/jmpbuf-unwind.h: New file.
967 * sysdeps/unix/sysv/linux/mips/lowlevellock.h: New file.
968 * sysdeps/unix/sysv/linux/mips/bits/pthreadtypes.h: New file.
969 * sysdeps/unix/sysv/linux/mips/bits/semaphore.h: New file.
970 * sysdeps/unix/sysv/linux/mips/pthread_once.c: New file.
971 * sysdeps/unix/sysv/linux/mips/fork.c: New file.
972 * sysdeps/unix/sysv/linux/mips/pt-vfork.S: New file.
973 * sysdeps/unix/sysv/linux/mips/vfork.S: New file.
974 * sysdeps/unix/sysv/linux/mips/clone.S: New file.
975 * sysdeps/unix/sysv/linux/mips/createthread.c: New file.
976 * sysdeps/unix/sysv/linux/mips/sysdep-cancel.h: New file.
977
1e6da2b0
UD
9782005-03-23 Ulrich Drepper <drepper@redhat.com>
979
c06aad09 980 [BZ #1112]
1e6da2b0
UD
981 * pthread_create.c (__pthread_create_2_1): Rename syscall error
982 variable to scerr.
983
5233d576
RM
9842005-03-10 Jakub Jelinek <jakub@redhat.com>
985
986 * tst-getpid1.c (do_test): Align stack passed to clone{2,}.
987
3053ff11
RM
9882005-02-25 Roland McGrath <roland@redhat.com>
989
990 * alloca_cutoff.c: Correct license text.
991 * tst-unload.c: Likewise.
992 * sysdeps/pthread/allocalim.h: Likewise.
993 * sysdeps/pthread/pt-initfini.c: Likewise.
994 * sysdeps/pthread/bits/libc-lock.h: Likewise.
995 * sysdeps/pthread/bits/sigthread.h: Likewise.
996 * sysdeps/unix/sysv/linux/bits/local_lim.h: Likewise.
997 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Likewise.
998
9cfe5381
RM
9992005-02-16 Roland McGrath <roland@redhat.com>
1000
1001 * sysdeps/pthread/pthread-functions.h (struct pthread_functions):
1002 Use unsigned int * for ptr_nthreads.
1003
7de00121
RM
10042005-02-14 Alan Modra <amodra@bigpond.net.au>
1005
20d511e0 1006 [BZ #721]
7de00121
RM
1007 * sysdeps/powerpc/tcb-offsets.sym (thread_offsetof): Redefine to suit
1008 gcc4.
1009
4bae262d
UD
10102005-02-07 Richard Henderson <rth@redhat.com>
1011
613d8d52 1012 [BZ #787]
4bae262d
UD
1013 * sysdeps/pthread/pthread.h (__sigsetjmp): Use pointer as first
1014 argument.
1015
75df54b7
RM
10162004-11-03 Marcus Brinkmann <marcus@gnu.org>
1017
1018 * sysdeps/generic/lowlevellock.h (__generic_mutex_unlock): Fix
1019 order of arguments in invocation of atomic_add_zero.
1020
ea9c93cc
UD
10212005-01-26 Jakub Jelinek <jakub@redhat.com>
1022
9cfe5381 1023 [BZ #737]
ea9c93cc
UD
1024 * sysdeps/unix/sysv/linux/i386/i486/sem_trywait.S (__new_sem_trywait):
1025 Use direct %gs segment access or, if NO_TLS_DIRECT_SEG_REFS,
1026 at least gotntpoff relocation and addition.
1027 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S (sem_timedwait):
1028 Likewise.
1029 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S (__new_sem_post):
1030 Likewise.
1031 * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S (__new_sem_wait):
1032 Likewise.
1033
9dcafc55
UD
10342005-01-06 Ulrich Drepper <drepper@redhat.com>
1035
1036 * allocatestack.c (init_one_static_tls): Adjust initialization of DTV
1037 entry for static tls deallocation fix.
1038 * sysdeps/alpha/tls.h (dtv_t): Change pointer type to be struct which
1039 also contains information whether the memory pointed to is static
1040 TLS or not.
1041 * sysdeps/i386/tls.h: Likewise.
1042 * sysdeps/ia64/tls.h: Likewise.
1043 * sysdeps/powerpc/tls.h: Likewise.
1044 * sysdeps/s390/tls.h: Likewise.
1045 * sysdeps/sh/tls.h: Likewise.
1046 * sysdeps/sparc/tls.h: Likewise.
1047 * sysdeps/x86_64/tls.h: Likewise.
1048
a71c152c
UD
10492004-12-27 Ulrich Drepper <drepper@redhat.com>
1050
1051 * init.c (__pthread_initialize_minimal_internal): Use __sigemptyset.
1052
d143c49e
UD
10532004-12-21 Jakub Jelinek <jakub@redhat.com>
1054
1055 * sysdeps/i386/tls.h (CALL_THREAD_FCT): Maintain 16 byte alignment of
1056 %esp.
1057 * Makefile (tests): Add tst-align2.
1058 * tst-align2.c: New test.
1059 * sysdeps/i386/Makefile (CFLAGS-tst-align{,2}.c): Add
1060 -mpreferred-stack-boundary=4.
1061
50130ded
RM
10622004-12-18 Roland McGrath <roland@redhat.com>
1063
1064 * sysdeps/unix/sysv/linux/powerpc/powerpc64/bits/local_lim.h:
1065 New file removed withdrawn for the moment.
1066
cbc53df0
RH
10672004-12-17 Richard Henderson <rth@redhat.com>
1068
1069 * sysdeps/unix/sysv/linux/alpha/clone.S: New file.
1070 * sysdeps/alpha/tcb-offsets.sym (TID_OFFSET): New.
50130ded 1071
fb9d5c73
UD
10722004-12-16 Ulrich Drepper <drepper@redhat.com>
1073
03332aa6
UD
1074 * sysdeps/unix/sysv/linux/powerpc/powerpc64/bits/local_lim.h: New file.
1075 Increased PTHREAD_STACK_MIN.
1076
fb9d5c73
UD
1077 * tst-context1.c (stacks): Use bigger stack size.
1078
e853ea00
UD
10792004-12-16 Jakub Jelinek <jakub@redhat.com>
1080
1081 * sysdeps/unix/sysv/linux/sparc/sparc32/clone.S: New file.
1082 * sysdeps/sparc/tcb-offsets.sym: Add TID.
1083
f23673fc
UD
10842004-12-15 Jakub Jelinek <jakub@redhat.com>
1085
1086 * sysdeps/unix/sysv/linux/s390/s390-32/clone.S: New file.
1087 * sysdeps/unix/sysv/linux/s390/s390-64/clone.S: New file.
1088 * sysdeps/s390/tcb-offsets.sym (TID): Add.
1089
917fbe70
UD
10902004-12-15 Ulrich Drepper <drepper@redhat.com>
1091
1092 * sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S: New file.
1093
1f9d7c27
UD
10942004-12-14 Ulrich Drepper <drepper@redhat.com>
1095
1096 * sysdeps/powerpc/tcb-offsets.sym: Add TID.
1097 * sysdeps/unix/sysv/linux/powerpc/powerpc64/clone.S: New file.
1098
1099 * tst-getpid1.c: If child crashes, report this first. Print which
1100 signal.
1101
bf7c04cd
UD
11022004-12-09 Ulrich Drepper <drepper@redhat.com>
1103
1104 * init.c (__pthread_initialize_minimal_internal): Also unblock
1105 SIGSETXID.
1106
11072004-12-01 Jakub Jelinek <jakub@redhat.com>
1108
1109 * sysdeps/unix/sysv/linux/bits/posix_opt.h (_POSIX_CPUTIME,
1110 _POSIX_THREAD_CPUTIME): Define to 0.
1111 * sysdeps/pthread/timer_create.c (timer_create): Remove unused code
1112 handling CLOCK_PROCESS_CPUTIME_ID and CLOCK_THREAD_CPUTIME_ID.
1113 * sysdeps/pthread/timer_routines.c (__timer_signal_thread_pclk,
1114 __timer_signal_thread_tclk): Remove.
1115 (init_module): Remove their initialization.
1116 (thread_cleanup): Remove their cleanup assertions.
1117 * sysdeps/pthread/posix-timer.h (__timer_signal_thread_pclk,
1118 __timer_signal_thread_tclk): Remove.
1119 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Removed.
75df54b7 1120 * sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h: Removed.
bf7c04cd
UD
1121 * sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h: Removed.
1122
484cc801
UD
11232004-12-07 Jakub Jelinek <jakub@redhat.com>
1124
1125 * sysdeps/ia64/tcb-offsets.sym (TID): Add.
1126 * sysdeps/unix/sysv/linux/ia64/clone2.S: New file.
1127
1128 * Makefile (tests): Add tst-getpid2.
1129 * tst-getpid1.c (TEST_CLONE_FLAGS): Define.
1130 (do_test): Use it. Use __clone2 instead of clone on ia64.
1131 * tst-getpid2.c: New test.
1132
2da9a6a1
UD
11332004-12-07 Kaz Kojima <kkojima@rr.iij4u.or.jp>
1134
1135 * sysdeps/unix/sysv/linux/sh/clone.S: New file.
1136
1ff241b8
UD
11372004-12-04 Ulrich Drepper <drepper@redhat.com>
1138
1139 * Makefile (tests): Add tst-getpid1.
1140 * tst-getpid1.c: New file.
1141 * sysdeps/unix/sysv/linux/i386/clone.S: New file.
1142 * sysdeps/unix/sysv/linux/x86_64/clone.S: New file.
1143
3f488b9c
RM
11442004-12-02 Roland McGrath <roland@redhat.com>
1145
1146 * Makefile (libpthread-nonshared): Variable removed.
1147 ($(objpfx)libpthread_nonshared.a): Target removed.
1148 ($(inst_libdir)/libpthread_nonshared.a): Likewise.
1149 These are now handled by generic magic from
1150 libpthread-static-only-routines being set.
1151
597ce09c
UD
11522004-11-27 Ulrich Drepper <drepper@redhat.com>
1153
1154 * sysdeps/unix/sysv/linux/bits/posix_opt.h (_POSIX_PRIORITIZED_IO,
1155 _POSIX2_CHAR_TERM, _POSIX_THREAD_PRIO_INHERIT,
1156 _POSIX_THREAD_PRIO_PROTECT): Define.
1157 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
1158 * sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h: Likewise.
1159 * sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h: Likewise.
1160
60e4523a
UD
11612004-11-26 Jakub Jelinek <jakub@redhat.com>
1162
1163 * sysdeps/unix/sysv/linux/bits/posix_opt.h (_POSIX_ADVISORY_INFO,
1164 _POSIX_SPORADIC_SERVER, _POSIX_THREAD_SPORADIC_SERVER, _POSIX_TRACE,
1165 _POSIX_TRACE_EVENT_FILTER, _POSIX_TRACE_INHERIT, _POSIX_TRACE_LOG,
1166 _POSIX_TYPED_MEMORY_OBJECTS, _POSIX_IPV6, _POSIX_RAW_SOCKETS): Define.
1167 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
1168 * sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h: Likewise.
1169 * sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h: Likewise.
1170
f1f2cafc
UD
11712004-11-24 Ulrich Drepper <drepper@redhat.com>
1172
bca2d208
UD
1173 * sysdeps/x86_64/Makefile [nptl]: Define CFLAGS-pthread_create.c.
1174
f1f2cafc
UD
1175 * Makefile (libpthread-routines): Add pthread_setschedprio.
1176 * Versions [libpthread, GLIBC_2.3.4]: Add pthread_setschedprio.
1177 * sysdeps/pthread/pthread.h: Declare pthread_setschedprio.
1178 * pthread_setschedprio.c: New file.
1179
b639d0c9
UD
11802004-11-20 Jakub Jelinek <jakub@redhat.com>
1181
ef2bb413
UD
1182 * pthread_create.c (pthread_cancel): Add PTHREAD_STATIC_FN_REQUIRE.
1183 * pthread_cancel.c (pthread_create): Likewise.
1184
b639d0c9
UD
1185 * Makefile (libpthread-routines): Add vars.
1186 * sysdeps/pthread/createthread.c (__pthread_multiple_threads): Remove.
1187 * init.c (__default_stacksize, __is_smp): Remove.
1188 * vars.c: New file.
1189 * pthreadP.h (__find_thread_by_id): If !SHARED, add weak_function
1190 and define a wrapper macro.
1191 (PTHREAD_STATIC_FN_REQUIRE): Define.
1192 * allocatestack.c (__find_thread_by_id): Undefine.
1193 * pthread_create (__pthread_keys): Remove.
1194 (pthread_mutex_lock, pthread_mutex_unlock, pthread_once,
1195 pthread_key_create, pthread_setspecific, pthread_getspecific): Add
1196 PTHREAD_STATIC_FN_REQUIRE.
1197
3defcff3
UD
11982004-11-18 Kaz Kojima <kkojima@rr.iij4u.or.jp>
1199
1200 * sysdeps/sh/tls.h (DB_THREAD_SELF): Set the correct bias
1201 parameter to REGISTER macro.
1202
ec188f92
RM
12032004-11-17 Roland McGrath <roland@redhat.com>
1204
1205 * sysdeps/unix/sysv/linux/timer_routines.c (__start_helper_thread):
1206 Make sure SIGCANCEL is blocked as well.
1207
ccd8de9a
UD
12082004-11-10 Jakub Jelinek <jakub@redhat.com>
1209
1210 * sysdeps/pthread/setxid.h: New file.
1211 * sysdeps/pthread/pthread-functions.h (HAVE_PTR__NPTL_SETXID): Remove.
1212 (struct xid_command): Add forward decl.
1213 (struct pthread_functions): Change return type of __nptl_setxid hook
1214 to int.
1215 * pthreadP.h (__nptl_setxid): Change return type to int.
1216 * allocatestack.c (__nptl_setxid): Call INTERNAL_SYSCALL_NCS in the
1217 calling thread, return its return value and set errno on failure.
1218 * descr.h (struct xid_command): Change id type to long array.
1219
1220 * Makefile: Add rules to build and test tst-setuid1 and
1221 tst-setuid1-static.
1222 * tst-setuid1.c: New test.
1223 * tst-setuid1-static.c: New test.
1224
ed2ced8a
UD
12252004-11-10 Jakub Jelinek <jakub@redhat.com>
1226
1227 * Makefile (tests): Add tst-exit3.
1228 * tst-exit3.c: New test.
1229
948603ee
UD
12302004-11-09 Ulrich Drepper <drepper@redhat.com>
1231
1232 * Makefile (tests): Add tst-exit2.
1233 * tst-exit2.c: New file.
1234
ba5ffd2a
RM
12352004-11-09 Roland McGrath <roland@redhat.com>
1236
1237 [BZ #530]
1238 * sysdeps/pthread/createthread.c (do_clone): Increment __nptl_nthreads
1239 here, before calling clone.
1240 * pthread_create.c (start_thread): Don't do it here.
1241
c4d7bd39
RM
12422004-11-02 Jakub Jelinek <jakub@redhat.com>
1243
1244 * sysdeps/unix/sysv/linux/smp.h: Include <errno.h>.
1245
543fb0c8
UD
12462004-10-29 Kaz Kojima <kkojima@rr.iij4u.or.jp>
1247
1248 * sysdeps/unix/sysv/linux/sh/sem_timedwait.S (sem_timedwait):
1249 Set ETIMEDOUT to errno when time is up. Tweak to avoid
1250 assembler warning.
1251
a1fbd858
UD
12522004-10-28 Jakub Jelinek <jakub@redhat.com>
1253
1254 * pthread_create.c (__pthread_create_2_1): Avoid leaking stacks
1255 if sched_priority is not between minprio and maxprio.
1256
c2a4357a
UD
12572004-10-25 Kaz Kojima <kkojima@rr.iij4u.or.jp>
1258
1259 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S
1260 (__pthread_cond_timedwait): Use clock_gettime syscall if exists.
1261
1262 * sysdeps/unix/sysv/linux/sh/lowlevellock.S
1263 (__lll_mutex_timedlock_wait): Fix a bad branch condition.
1264
78d8d211
UD
12652004-10-24 Ulrich Drepper <drepper@redhat.com>
1266
1267 * sysdeps/unix/sysv/linux/smp.h (is_smp_system): Use
1268 not-cancelable I/O functions.
1269
dd28590f
UD
12702004-10-21 Kaz Kojima <kkojima@rr.iij4u.or.jp>
1271
1272 * sysdeps/unix/sysv/linux/sh/lowlevellock.S
1273 (__lll_mutex_timedlock_wait): If woken but cannot get the lock,
1274 make sure 2 is stored in the futex and we looked at the old value.
1275 Fix a few other problems to return the correct value.
1276
f8c97af7
RH
12772004-10-14 Richard Henderson <rth@redhat.com>
1278
1279 * sysdeps/alpha/tcb-offsets.sym (thread_offsetof): Redefine to
1280 make gcc4 happy.
1281
3feb8efa
UD
12822004-10-06 Jakub Jelinek <jakub@redhat.com>
1283
1284 * sysdeps/unix/sysv/linux/jmp-unwind.c: Include pthreadP.h instead
1285 of pthread-functions.h and pthreaddef.h.
1286 * sysdeps/unix/sysv/linux/s390/jmp-unwind.c: Likewise.
1287
1288 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h (pthread_cond_t):
1289 Change __data.__nwaiters from int to unsigned int.
1290
1291 * tst-clock2.c (do_test): Don't fail if _POSIX_THREAD_CPUTIME == 0 and
1292 sysconf (_SC_THREAD_CPUTIME) returns negative value.
1293
1294 * allocatestack.c (__find_thread_by_id): Move attribute_hidden
1295 before return type.
1296
1297 * sysdeps/s390/jmpbuf-unwind.h: Include bits/wordsize.h.
1298 (JMPBUF_CFA_UNWINDS_ADJ): Subtract 96 resp. 160 bytes from CFA.
1299
67060ef5
UD
13002004-10-06 Ulrich Drepper <drepper@redhat.com>
1301
1302 * tst-cancel4.c (tf_msgrcv): Check for failure in msgget. If the
1303 test fails, remove message queue.
1304 (tf_msgsnd): Likewise.
1305
f38a3086
UD
13062004-10-05 Jakub Jelinek <jakub@redhat.com>
1307
1308 * tst-clock1.c: Change #ifdef to #if defined.
1309 * tst-clock2.c: Likewise.
1310 * tst-cond11.c: Likewise.
1311
2c03b6db
UD
1312 * sysdeps/pthread/timer_create.c (timer_create): Use
1313 defined _POSIX_CPUTIME && _POSIX_CPUTIME >= 0 instead of
1314 defined CLOCK_PROCESS_CPUTIME_ID #ifs and similarly for
1315 THREAD_CPUTIME.
1316
6ab5f50d
UD
13172004-10-05 Jakub Jelinek <jakub@redhat.com>
1318
1319 * sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h (_POSIX_CPUTIME,
1320 _POSIX_THREAD_CPUTIME): Define to 0.
1321
e4bb4853
UD
13222004-10-04 Ulrich Drepper <drepper@redhat.com>
1323
1324 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Define _POSIX_CPUTIME
1325 and _POSIX_THREAD_CPUTIME to zero.
1326 * sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h: Likewise.
1327 * tst-barrier2.c: Fix testing for POSIX feature.
1328 * tst-clock1.c: Likewise.
1329 * tst-clock2.c: Likewise.
1330 * tst-cond11.c: Likewise.
1331 * tst-cond4.c: Likewise.
1332 * tst-cond6.c: Likewise.
1333 * tst-flock2.c: Likewise.
1334 * tst-mutex4.c: Likewise.
1335 * tst-mutex9.c: Likewise.
1336 * tst-rwlock12.c: Likewise.
1337 * tst-rwlock4.c: Likewise.
1338 * tst-signal1.c: Likewise.
1339 * tst-spin2.c: Likewise.
1340 * sysdeps/pthread/posix-timer.h: Likewise.
1341 * sysdeps/pthread/timer_create.c: Likewise.
1342 * sysdeps/pthread/timer_routines.c: Likewise.
1343
c1b48791
UD
13442004-10-01 Ulrich Drepper <drepper@redhat.com>
1345
927f0673
UD
1346 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
1347 (__lll_mutex_timedlock_wait): Address futex correctly.
1348
c1b48791 1349 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
b610fa2d 1350 (__lll_mutex_timedlock_wait): If woken but cannot get the lock,
c1b48791
UD
1351 make sure 2 is stored in the futex and we looked at the old value.
1352 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
1353 (__lll_mutex_timedlock_wait): Likewise. Fix a few other problems
1354 which might very well made the code not working at all before.
7b87aca6 1355 [BZ #417]
c1b48791 1356
e9f4e844
UD
13572004-09-28 Ulrich Drepper <drepper@redhat.com>
1358
4f21c95d
UD
1359 * sysdeps/unix/sysv/linux/pthread_kill.c (__pthread_kill): Don't
1360 allow SIGSETXID to be sent.
1361 * sysdeps/pthread/sigaction.c (__sigaction): Don't allow action
1362 for SIGSETXID to be defined.
1363 * sysdeps/pthread/pthread_sigmask.c (pthread_sigmask): Make sure
1364 SIGSETXID cannot be blocked.
1365
e9f4e844
UD
1366 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h (pthread_cond_t):
1367 Add __extension__ to long long types.
1368 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: Likewise.
1369 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
1370 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
1371 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
1372 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h: Likewise.
1373 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Likewise.
1374 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
1375
5f66b766
UD
13762004-09-25 Ulrich Drepper <drepper@redhat.com>
1377
1378 * descr.h (struct pthread): Add stopped_start field.
1379 * sysdeps/pthread/createthread.c (create_thread): Set
1380 start_stopped flag in descriptor for new thread appropriately.
1381 * pthread_create.c (start_thread): Only take lock to be stopped on
1382 startup if stopped_start flag says so.
1383
362038b0
UD
13842004-09-24 Ulrich Drepper <drepper@redhat.com>
1385
3f80a99b
UD
1386 * pthread_create.c (__pthread_create_2_1): Remember whether thread
1387 is created detached and if yes, do not try to free the stack in case
1388 the thread creation failed.
1389 * sysdeps/pthread/createthread.c (do_clone): Free stack here if clone
1390 call fails. Don't depend on INTERNAL_SYSCALL_ERRNO return zero in
1391 case there has been no error. [BZ #405]
1392
362038b0
UD
1393 * pthread_create.c (start_thread): Don't wait for scheduler data
1394 etc to be set at the beginning of the function. The cancellation
1395 infrastructure must have been set up. And enable async
1396 cancellation before potentially going to sleep. [BZ #401]
1397
65f0beb9
UD
13982004-09-20 Ulrich Drepper <drepper@redhat.com>
1399
3c12b91a 1400 * Versions: Remove exports for pthread_set*id_np functions.
65f0beb9
UD
1401 * sysdeps/pthread/pthread.h: Remove pthread_set*id_np prototypes
1402 for now.
1403 * Makefile: Don't build pthread_set*id code for now.
1404
2edb61e3
UD
14052004-09-19 Ulrich Drepper <drepper@redhat.com>
1406
1407 * sysdeps/unix/sysv/linux/allocrtsig.c: Allocate second signal for
1408 internal use.
1409 * allocatestack.c (__nptl_setxid): New function.
1410 * descr.h (struct xid_command): Define type.
1411 * init.c (pthread_functions): Add ptr__nptl_setxid initialization.
1412 (sighandler_setxid): New function.
1413 (__pthread_initialize_minimal): Register sighandler_setxid for
1414 SIGCANCEL.
1415 * pt-allocrtsig.c: Update comment.
1416 * pthreadP.h: Define SIGSETXID. Declare __xidcmd variable.
1417 Declare __nptl_setxid.
1418 * sysdeps/pthread/pthread-functions.h: Add ptr__nptl_setxid.
1419 * sysdeps/pthread/pthread.h: Declare pthread_setgid_np,
1420 pthread_setuid_np, pthread_setegid_np, pthread_seteuid_np,
1421 pthread_setregid_np, pthread_setreuid_np, pthread_setresgid_np,
1422 and pthread_setresuid_np.
1423 * pthread_setgid_np.c: New file.
1424 * pthread_setuid_np.c: New file.
1425 * pthread_setegid_np.c: New file.
1426 * pthread_seteuid_np.c: New file.
1427 * pthread_setregid_np.c: New file.
1428 * pthread_setreuid_np.c: New file.
1429 * pthread_setresgid_np.c: New file.
1430 * pthread_setresuid_np.c: New file.
1431 * Versions [libpthread, GLIBC_2.3.4]: Add pthread_setgid_np,
1432 pthread_setuid_np, pthread_setegid_np, pthread_seteuid_np,
1433 pthread_setregid_np, pthread_setreuid_np, pthread_setresgid_np,
1434 and pthread_setresuid_np.
1435 * Makefile (libpthread-routines): Add pthread_setuid, pthread_seteuid,
1436 pthread_setreuid, pthread_setresuid, pthread_setgid, pthread_setegid,
1437 pthread_setregid, and pthread_setresgid.
1438
1ab1fa6f
UD
14392004-09-18 Ulrich Drepper <drepper@redhat.com>
1440
1441 * allocatestack.c (allocate_stack): Return EAGAIN instead of
1442 ENOMEM when out of memory.
1443
ae9e6b36
RM
14442004-09-10 Roland McGrath <roland@redhat.com>
1445
1446 [BZ #379]
1447 * allocatestack.c (allocate_stack): Remove [__ASSUME_CLONE_STOPPED]
1448 code, since we don't try to use the broken CLONE_STOPPED any more.
1449 * pthread_create.c (start_thread): Likewise.
1450
424bd2f8
RH
14512004-09-15 Richard Henderson <rth@redhat.com>
1452
1453 * sysdeps/unix/sysv/linux/alpha/vfork.S: Use libc_hidden_def.
1454
17b8a52d
UD
14552004-09-01 David Mosberger <davidm@hpl.hp.com>
1456
1457 * sysdeps/unix/sysv/linux/ia64/jmpbuf-unwind.h
1458 (__libc_unwind_longjmp): Delete macro and declare as function.
1459 * sysdeps/unix/sysv/linux/ia64/Makefile (sysdep_routines): Mention
1460 __ia64_longjmp, sigstack_longjmp, and __sigstack_longjmp for
1461 nptl directory.
1462 * sysdeps/unix/sysv/linux/ia64/__ia64_longjmp.S: New file.
1463 * sysdeps/unix/sysv/linux/ia64/__sigstack_longjmp.c: New file.
1464 * sysdeps/unix/sysv/linux/ia64/unwind_longjmp.c: New file.
1465
ccc63b07
UD
14662004-09-12 Ulrich Drepper <drepper@redhat.com>
1467
1468 * sysdeps/pthread/pthread.h: Make rwlock prototypes available also
1469 for __USE_XOPEN2K.
1470 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h: Define rwlock
1471 types also for __USE_XOPEN2K.
1472 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Likewise.
1473 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
1474 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
1475 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
1476 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Likewise.
1477 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: Likewise.
1478 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
1479 [BZ #320]
1480
31f93b3b
UD
14812004-09-08 Ulrich Drepper <drepper@redhat.com>
1482
1483 * sysdeps/pthread/pthread.h
1484 (PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP): Make safe for C++.
1485 (PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP): Likewise.
1486 (PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP): Likewise.
1487 (PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP): Likewise.
1488 [BZ #375]
1489
e0329987
UD
14902004-09-07 Ulrich Drepper <drepper@redhat.com>
1491
590b40f7
UD
1492 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h: Allow
1493 PSEUDO to be used with . prefix.
1494
67254a97
UD
1495 * sysdeps/unix/sysv/linux/alpha/pthread_once.c (__pthread_once):
1496 Use atomic_increment instead of atomic_exchange_and_add.
1497 * sysdeps/unix/sysv/linux/sparc/pthread_once.c (__pthread_once):
1498 Likewise.
1499 * sysdeps/unix/sysv/linux/ia64/pthread_once.c (__pthread_once):
1500 Likewise.
1501 * sysdeps/unix/sysv/linux/powerpc/pthread_once.c (__pthread_once):
1502 Likewise.
1503
1504 * allocatestack.c (allocate_stack): Use atomic_increment_val
1505 instead of atomic_exchange_and_add.
1506 * sysdeps/unix/sysv/linux/sem_post.c (__new_sem_post): Likewise.
1507 * sysdeps/unix/sysv/linux/powerpc/sem_post.c (__new_sem_post):
1508 Likewise.
1509 * sysdeps/pthread/pthread_barrier_wait.c (pthread_barrier_wait):
1510 Likewise.
1511
e0329987
UD
1512 * sysdeps/pthread/pthread.h (pthread_once): Remove __THROW since
1513 the initialization function might throw.
1514
42d86dd6 15152005-09-05 Richard Henderson <rth@redhat.com>
e0329987 1516
42d86dd6
RH
1517 * sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h (SINGLE_THREAD_P):
1518 Move definition inside libpthread, libc, librt check. Provide
1519 definition for rtld.
1520
73f7c32c
UD
15212004-09-02 Ulrich Drepper <drepper@redhat.com>
1522
f76c8499
UD
1523 * sysdeps/alpha/jmpbuf-unwind.h: Define __libc_unwind_longjmp.
1524 * sysdeps/i386/jmpbuf-unwind.h: Likewise
1525 * sysdeps/powerpc/jmpbuf-unwind.h: Likewise.
1526 * sysdeps/s390/jmpbuf-unwind.h: Likewise.
1527 * sysdeps/sh/jmpbuf-unwind.h: Likewise.
1528 * sysdeps/sparc/sparc32/jmpbuf-unwind.h: Likewise.
1529 * sysdeps/unix/sysv/linux/ia64/jmpbuf-unwind.h: Likewise.
1530 * sysdeps/x86_64/jmpbuf-unwind.h: Likewise.
1531 * unwind.c: Use it.
1532
73f7c32c
UD
1533 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_cond_t):
1534 Rename __data.__clock to __data.__nwaiters, make it unsigned int.
1535 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h (pthread_cond_t):
1536 Likewise.
1537 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S:
1538 Decrement __nwaiters. If pthread_cond_destroy has been called and
1539 this is the last waiter, signal pthread_cond_destroy caller and
1540 avoid using the pthread_cond_t structure after unlock.
1541 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
1542 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
1543 Read clock type from the least significant bits of __nwaiters instead
1544 of __clock.
1545 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
1546 * sysdeps/unix/sysv/linux/internaltypes.h: Define COND_CLOCK_BITS.
1547
15482004-08-31 Jakub Jelinek <jakub@redhat.com>
1549
1550 [BZ #342]
1551 * Makefile (tests): Add tst-cond20 and tst-cond21.
1552 * tst-cond20.c: New test.
1553 * tst-cond21.c: New test.
1554 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h
1555 (pthread_cond_t): Rename __data.__clock to __data.__nwaiters, make
1556 it unsigned int.
1557 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h (pthread_cond_t):
1558 Likewise.
1559 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h
1560 (pthread_cond_t): Likewise.
1561 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h (pthread_cond_t):
1562 Likewise.
1563 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h (pthread_cond_t):
1564 Likewise.
1565 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h (pthread_cond_t):
1566 Likewise.
1567 * sysdeps/unix/sysv/linux/lowlevelcond.sym (cond_clock): Remove.
1568 (cond_nwaiters): New.
1569 (clock_bits): New.
1570 * pthread_cond_destroy.c (__pthread_cond_destroy): Return EBUSY
1571 if there are waiters not signalled yet.
1572 Wait until all already signalled waiters wake up.
1573 * sysdeps/pthread/pthread_cond_wait.c (__condvar_cleanup): Decrement
1574 __nwaiters. If pthread_cond_destroy has been called and this is the
1575 last waiter, signal pthread_cond_destroy caller and avoid using
1576 the pthread_cond_t structure after unlock.
1577 (__pthread_cond_wait): Increment __nwaiters in the beginning,
1578 decrement it when leaving. If pthread_cond_destroy has been called
1579 and this is the last waiter, signal pthread_cond_destroy caller.
1580 * sysdeps/pthread/pthread_cond_timedwait.c (__pthread_cond_timedwait):
1581 Likewise. Read clock type from the least significant bits of
1582 __nwaiters instead of __clock.
1583 * pthread_condattr_setclock.c (pthread_condattr_setclock): Check
1584 whether clock ID can be encoded in COND_CLOCK_BITS bits.
1585 * pthread_condattr_getclock.c (pthread_condattr_getclock): Decode
1586 clock type just from the last COND_CLOCK_BITS bits of value.
1587 * pthread_cond_init.c (__pthread_cond_init): Initialize __nwaiters
1588 instead of __clock, just from second bit of condattr's value.
1589
409f7493
UD
15902004-08-30 Jakub Jelinek <jakub@redhat.com>
1591
1592 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Include
1593 bits/wordsize.h. Make the header match i386 header when __WORDSIZE
1594 != 64.
1595 * sysdeps/unix/sysv/linux/x86_64/bits/semaphore.h: Likewise.
1596
92c6ccd1
RM
15972004-08-15 Roland McGrath <roland@frob.com>
1598
1599 * pthread_atfork.c: Update copyright terms including special exception
1600 for these trivial files, which are statically linked into executables
1601 that use dynamic linking for the significant library code.
1602
4d004cfb
UD
16032004-08-09 Jakub Jelinek <jakub@redhat.com>
1604
1605 * DESIGN-rwlock.txt: Add decreasing of nr_readers_queued to
1606 pthread_rwlock_rdlock.
1607 * sysdeps/pthread/pthread_rwlock_rdlock (__pthread_rwlock_rdlock):
1608 Decrease __nr_readers_queued after reacquiring lock.
1609 * sysdeps/pthread/pthread_rwlock_timedrdlock
1610 (pthread_rwlock_timedrdlock): Likewise.
1611 Reported by Bob Cook <bobcook47@hotmail.com>.
1612
90595fb6
RM
16132004-08-11 Jakub Jelinek <jakub@redhat.com>
1614
1615 * tst-rwlock14.c (tf): Read main thread handle from *ARG
1616 before pthread_barrier_wait.
1617
fa46f7ab
UD
16182004-08-07 Ulrich Drepper <drepper@redhat.com>
1619
1620 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S:
1621 Remove unnecessary exception handling data.
1622
15ef4b55
UD
16232004-07-23 Jakub Jelinek <jakub@redhat.com>
1624
1625 [BZ #284]
1626 * sysdeps/pthread/pthread.h (pthread_getcpuclockid): Use __clockid_t
1627 instead of clockid_t.
1628
4fb907b7
RM
16292004-07-21 Roland McGrath <roland@redhat.com>
1630
1631 * Makefile ($(objpfx)multidir.mk): Use $(make-target-directory).
1632
16332004-07-19 Roland McGrath <roland@redhat.com>
1634
1635 * tst-cancel4.c (tf_waitid): Use WEXITED flag bit if available.
1636
8f73811b
RM
16372004-07-02 Roland McGrath <roland@redhat.com>
1638
1639 * configure: Don't exit.
1640
290639c3
UD
16412004-07-14 Kaz Kojima <kkojima@rr.iij4u.or.jp>
1642
1643 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S
1644 (__pthread_cond_timedwait): Check for invalid nanosecond in
1645 timeout value.
1646
8e5aaad9
UD
16472004-07-07 Ulrich Drepper <drepper@redhat.com>
1648
1649 * Makefile: Add rules to build and run tst-fini1.
1650 * tst-fini1.c: New file.
1651 * tst-fini1mod.c: New file.
1652
ce6e047f
UD
16532004-07-05 Ulrich Drepper <drepper@redhat.com>
1654
1655 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Define NO_CANCELLATION
1656 if no cancellation support is needed.
1657 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h: Likewise.
1658 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h: Likewise.
1659 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h: Likewise.
1660 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h: Likewise.
1661 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h: Likewise.
1662 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h: Likewise.
1663 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h: Likewise.
1664 * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h: Likewise.
1665 * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h: Likewise.
1666
1667 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Define __NR_futex
1668 only if not already defined.
1669
9b9ef823
UD
16702004-07-05 Jakub Jelinek <jakub@redhat.com>
1671
2dd18ce2
UD
1672 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (lll_unlock): Use
1673 constraint "m" instead of "0" for futex.
1674
9b9ef823
UD
1675 * shlib-versions: Add powerpc64-.*-linux.*.
1676
38205402
UD
16772004-07-04 Jakub Jelinek <jakub@redhat.com>
1678
1679 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S
1680 (pthread_rwlock_timedrdlock): Use cmpq instead of cmpl to check
1681 for valid tv_nsec.
1682 * tst-rwlock14.c (do_test): Test for invalid tv_nsec equal to
1683 1 billion and 64-bit tv_nsec which is valid when truncated to 32
1684 bits.
1685
78a9c837
RM
16862004-06-29 Roland McGrath <roland@redhat.com>
1687
1688 * Banner: NPTL no longer has its own version number.
1689 * Makefile (nptl-version): Variable removed.
1690 * sysdeps/pthread/Makefile (CFLAGS-confstr.c): Set LIBPTHREAD_VERSION
1691 using $(version), the glibc version number.
1692
d3d35527
UD
16932004-06-29 Kaz Kojima <kkojima@rr.iij4u.or.jp>
1694
1695 * sysdeps/unix/sysv/linux/sh/pthread_once.S (__pthread_once):
1696 Fix branch offset for a PLT entry.
1697 * sysdeps/unix/sysv/linux/sh/sem_post.S (__new_sem_post):
1698 Likewise.
1699 * sysdeps/unix/sysv/linux/sh/sem_timedwait.S (sem_timedwait):
1700 Likewise.
1701 * sysdeps/unix/sysv/linux/sh/sem_trywait.S (__new_sem_trywait):
1702 Likewise.
1703 * sysdeps/unix/sysv/linux/sh/sem_wait.S (__new_sem_wait):
1704 Likewise.
1705
346f18ae
UD
17062004-06-28 Jakub Jelinek <jakub@redhat.com>
1707
1708 * sysdeps/alpha/tcb-offsets.sym (MULTIPLE_THREADS_OFFSET): Define
1709 unconditionally.
1710
f3a19754
UD
17112004-06-28 Jakub Jelinek <jakub@redhat.com>
1712
1713 * sysdeps/pthread/pthread_rwlock_timedwrlock.c
1714 (pthread_rwlock_timedwrlock): Return EINVAL if tv_nsec is negative,
1715 instead of tv_sec.
1716 * sysdeps/pthread/pthread_rwlock_timedrdlock.c
1717 (pthread_rwlock_timedrdlock): Likewise.
1718
539842a4
UD
17192004-06-22 Jakub Jelinek <jakub@redhat.com>
1720
1721 * sysdeps/unix/sysv/linux/s390/lowlevellock.h (lll_futex_requeue):
1722 Set __r7 to val, not mutex.
1723
46f4c578
UD
17242004-06-27 Ulrich Drepper <drepper@redhat.com>
1725
1726 * Makefile: Add rules to build tst-rwlock14.
1727 * tst-rwlock14.c: New file.
1728
17292004-06-24 Boris Hu <boris.hu@intel.com>
1730
1731 * sysdeps/pthread/pthread_rwlock_timedrdlock.c: Add timeout validation
1732 check.
1733 * sysdeps/pthread/pthread_rwlock_timedwrlock.c: Likewise.
1734
9898e99c
AJ
17352004-06-19 Andreas Jaeger <aj@suse.de>
1736
1737 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Fix
1738 assembler in last patch.
1739
7c3164bc
UD
17402004-06-17 Ulrich Drepper <drepper@redhat.com>
1741
1742 * sysdeps/pthread/pthread_cond_timedwait.c
1743 (__pthread_cond_timedwait): Also check for negativ nanoseconds.
1744 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
1745 (__pthread_cond_timedwait): Check for invalid nanosecond in
1746 timeout value.
1747 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
1748 * tst-cond19.c: New file.
1749 * Makefile: Add rules to build and run tst-cond19.
1750
72e61500
UD
17512004-06-15 Steven Munroe <sjmunroe@us.ibm.com>
1752
1753 * tst-context1.c (GUARD_PATTERN): Defined.
1754 (tst_context_t): Define struct containing ucontext_t & guard words.
1755 (ctx): Declare as an array of tst_context_t.
1756 (fct): Verify uc_link & guard words are still valid.
1757 (tf): Initialize guard words in ctx. Adjust ctx refs for new struct.
1758
7c370086
UD
17592004-06-13 Kaz Kojima <kkojima@rr.iij4u.or.jp>
1760
1761 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h (pthread_cond_t):
1762 Add __data.__futex field, reshuffle __data.__clock.
1763 * sysdeps/unix/sysv/linux/sh/pthread_cond_signal.S
1764 (__pthread_cond_signal): Increment __futex at the same time as
1765 __wakeup_seq or __total_seq. Pass address of __futex instead of
1766 address of low 32-bits of __wakeup_seq to futex syscall.
1767 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S
1768 (__pthread_cond_wait): Likewise. Pass __futex value from before
1769 releasing internal lock to FUTEX_WAIT.
1770 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S
1771 (__pthread_cond_timedwait): Likewise.
1772 * sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S
1773 (FUTEX_CMP_REQUEUE): Define.
1774 (__pthread_cond_broadcast): Set __futex to 2 * __total_seq.
1775 Use FUTEX_CMP_REQUEUE operation instead of FUTEX_REQUEUE.
1776 Pass __futex value from before the unlock and __futex address instead
1777 of address of low 32-bits of __wakeup_seq to futex syscall.
1778 Fallback to FUTEX_WAKE all on any errors.
1779
a9e526e7
RM
17802004-06-08 Jakub Jelinek <jakub@redhat.com>
1781
1782 * pthread_mutexattr_getpshared.c (pthread_mutex_getpshared): Fix
1783 comment typo.
1784 * pthread_mutexattr_gettype.c (pthread_mutexattr_gettype): Likewise.
1785 * pthread_mutexattr_init.c (__pthread_mutexattr_init): Likewise.
1786 * pthread_mutexattr_settype.c (__pthread_mutexattr_settype): Likewise.
1787 * pthread_mutexattr_setpshared.c (pthread_mutexattr_setpshared):
1788 Likewise. Reported by Bob Cook <bobcook47@hotmail.com>.
1789
f1847a84
RM
17902004-06-11 Martin Schwidefsky <schwidefsky@de.ibm.com>
1791
1792 * sysdeps/unix/sysv/linux/s390/lowlevellock.h (lll_compare_and_swap):
1793 Add memory clobber to inline assembly.
1794 (__lll_mutex_trylock): Likewise.
1795 (__lll_mutex_cond_trylock): Likewise.
1796
f7c81e1a
UD
17972004-06-07 Martin Schwidefsky <schwidefsky@de.ibm.com>
1798
1799 * sysdeps/unix/sysv/linux/s390/lowlevellock.h (lll_futex_requeue):
1800 Pass val argument as 6th system call argument in %r7.
1801
75fccede
UD
18022004-05-21 Jakub Jelinek <jakub@redhat.com>
1803
1804 * Makefile (tests): Add tst-cond16.
1805 * sysdeps/unix/sysv/linux/lowlevelcond.sym (cond_futex): Add.
1806 * pthread_cond_init.c (__pthread_cond_init): Clear __data.__futex.
1807 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_cond_t):
1808 Add __data.__futex field, reshuffle __data.__clock.
1809 * sysdeps/unix/sysv/linux/i386/pthread_cond_signal.S
1810 (__pthread_cond_signal): Increment __futex at the same time as
1811 __wakeup_seq or __total_seq. Pass address of __futex instead of
1812 address of low 32-bits of __wakeup_seq to futex syscall.
1813 * sysdeps/unix/sysv/linux/i386/pthread_cond_wait.S
1814 (__pthread_cond_wait): Likewise. Pass __futex value from before
1815 releasing internal lock to FUTEX_WAIT.
1816 * sysdeps/unix/sysv/linux/i386/pthread_cond_timedwait.S
1817 (__pthread_cond_timedwait): Likewise.
1818 * sysdeps/unix/sysv/linux/i386/pthread_cond_broadcast.S
1819 (FUTEX_CMP_REQUEUE): Define.
1820 (__pthread_cond_broadcast): Set __futex to 2 * __total_seq.
1821 Use FUTEX_CMP_REQUEUE operation instead of FUTEX_REQUEUE.
1822 Pass __futex value from before the unlock and __futex address instead
1823 of address of low 32-bits of __wakeup_seq to futex syscall.
1824 Fallback to FUTEX_WAKE all on any errors.
1825 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h (FUTEX_CMP_REQUEUE):
1826 Define.
1827 (lll_futex_requeue): Add val argument, use FUTEX_CMP_REQUEUE
1828 internally. Return non-zero if error, zero if success.
1829 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h (pthread_cond_t):
1830 Add __data.__futex field, reshuffle __data.__clock.
1831 * sysdeps/unix/sysv/linux/s390/lowlevellock.h (FUTEX_CMP_REQUEUE):
1832 Define.
1833 (lll_futex_requeue): Add val argument, return 1 unconditionally
1834 for the time being.
1835 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h (pthread_cond_t):
1836 Add __data.__futex field, reshuffle __data.__clock.
1837 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h (FUTEX_CMP_REQUEUE):
1838 Define.
1839 (lll_futex_requeue): Add val argument, use FUTEX_CMP_REQUEUE
1840 internally. Return non-zero if error, zero if success.
1841 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h
1842 (pthread_cond_t): Add __data.__futex field, reshuffle __data.__clock.
1843 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h (FUTEX_CMP_REQUEUE):
1844 Define.
1845 (lll_futex_requeue): Add val argument, use FUTEX_CMP_REQUEUE
1846 internally. Return non-zero if error, zero if success.
1847 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h (pthread_cond_t):
1848 Add __data.__futex field, reshuffle __data.__clock.
1849 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (FUTEX_CMP_REQUEUE):
1850 Define.
1851 (lll_futex_requeue): Add val argument, use FUTEX_CMP_REQUEUE
1852 internally. Return non-zero if error, zero if success.
1853 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h (pthread_cond_t):
1854 Add __data.__futex field, reshuffle __data.__clock.
1855 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h (pthread_cond_t):
1856 Add __data.__futex field, reshuffle __data.__clock.
1857 * sysdeps/pthread/pthread_cond_signal.c (__pthread_cond_signal):
1858 Increment __futex at the same time as __wakeup_seq or __total_seq.
1859 Pass address of __futex instead of address of low 32-bits of
1860 __wakeup_seq to futex syscall.
1861 * sysdeps/pthread/pthread_cond_wait.c (__pthread_cond_wait): Likewise.
1862 Pass __futex value from before releasing internal lock
1863 to FUTEX_WAIT.
1864 * sysdeps/pthread/pthread_cond_timedwait.c (__pthread_cond_timedwait):
1865 Likewise. Avoid unnecessary shadowing of variables.
1866 * sysdeps/pthread/pthread_cond_broadcast.c (__pthread_cond_broadcast):
1867 Set __futex to 2 * __total_seq. Pass __futex value from before the
1868 unlock and __futex address instead of address of low 32-bits of
1869 __wakeup_seq to futex_requeue macro, adjust for new return value
1870 meaning.
1871 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S
1872 (__pthread_cond_signal): Increment __futex at the same time as
1873 __wakeup_seq or __total_seq. Pass address of __futex instead of
1874 address of low 32-bits of __wakeup_seq to futex syscall.
1875 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
1876 (__pthread_cond_wait): Likewise. Pass __futex value from before
1877 releasing internal lock to FUTEX_WAIT.
1878 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
1879 (__pthread_cond_timedwait): Likewise.
1880 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S
1881 (FUTEX_CMP_REQUEUE): Define.
1882 (__pthread_cond_broadcast): Set __futex to 2 * __total_seq.
1883 Use FUTEX_CMP_REQUEUE operation instead of FUTEX_REQUEUE.
1884 Pass __futex value from before the unlock and __futex address instead
1885 of address of low 32-bits of __wakeup_seq to futex syscall.
1886 Fallback to FUTEX_WAKE all on any errors.
1887
18882004-06-03 Kaz Kojima <kkojima@rr.iij4u.or.jp>
1889
1890 * sysdeps/unix/sysv/linux/sh/lowlevellock.h (lll_mutex_lock):
1891 Add nop to align the end of critical section.
1892 (lll_mutex_cond_lock, lll_mutex_timedlock): Likewise.
1893
fbf86dda
UD
18942004-06-01 Kaz Kojima <kkojima@rr.iij4u.or.jp>
1895
1896 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h (pthread_cond_t):
1897 Add __broadcast_seq field.
1898 * sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S: Mark
1899 all waiters as woken with woken_seq and bump broadcast counter.
1900 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Use new
1901 __broadcast_seq. Increment __woken_seq correctly when cleanuped.
1902 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise.
1903 Comment typo fixes. Avoid returning -ETIMEDOUT.
1904
19052004-06-01 Ulrich Drepper <drepper@redhat.com>
1906
1907 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
1908 (__condvar_tw_cleanup): Fix access to saved broadcast_seq value.
1909 Reported by Kaz Kojima.
1910
ffdd5e50
UD
19112004-05-25 Jakub Jelinek <jakub@redhat.com>
1912
1913 * sysdeps/unix/sysv/linux/aio_misc.h: New file.
1914
3abc82c8
UD
19152004-05-21 Jakub Jelinek <jakub@redhat.com>
1916
1917 * sysdeps/pthread/pthread_cond_wait.c (__pthread_cond_wait): Compare
1918 __broadcast_seq with bc_seq after acquiring internal lock instead of
1919 before it.
1920
893a3511
UD
19212004-05-18 Jakub Jelinek <jakub@redhat.com>
1922
1923 * Makefile (.NOTPARALLEL): Only serialize make check/xcheck, not
1924 compilation.
1925 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
1926 (__pthread_cond_timedwait): Avoid returning -ETIMEDOUT.
1927 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h
1928 (pthread_cond_t): Add __data.__broadcast_seq field.
1929 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
1930 (FRAME_SIZE): Define.
1931 (__pthread_cond_timedwait): Use it. Store/check broadcast_seq.
1932 Comment typo fixes.
1933 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S (FRAME_SIZE):
1934 Define.
1935 (__pthread_cond_wait): Use it. Store/check broadcast_seq. Comment
1936 typo fixes.
1937 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S
1938 (__pthread_cond_broadcast): Increment broadcast_seq. Comment typo
1939 fixes.
1940
19412004-05-18 Ulrich Drepper <drepper@redhat.com>
1942
1943 * sysdeps/unix/sysv/linux/lowlevelcond.sym: Add broadcast_seq entry.
1944 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h (pthread_cond_t):
1945 Add __broadcast_seq field.
1946 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
1947 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
1948 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: Likewise.
1949 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Likewise.
1950 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
1951 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S: Mark
1952 all waiters as woken with woken_seq and bump broadcast counter.
1953 * sysdeps/pthread/pthread_cond_broadcast.c: Likewise.
1954 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Use new
1955 __broadcast_seq field.
1956 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
1957 * sysdeps/pthread/pthread_cond_wait.c: Likewise.
1958 * sysdeps/pthread/pthread_cond_timedwait.c: Likewise.
1959 * pthread_cond_init.c: Initialize __broadcast_seq field.
1960 * Makefile (tests): Add tst-cond17 and tst-cond18.
1961 Add .NOTPARALLEL goal.
1962 * tst-cond16.c: New file. From Jakub.
1963 * tst-cond17.c: New file. From Jakub.
1964 * tst-cond18.c: New file. From Jakub.
1965
4123718e
UD
19662004-05-16 Ulrich Drepper <drepper@redhat.com>
1967
1968 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: Correct some
1969 unwind info.
1970
1971 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S:
1972 Parametrize frame size. Correct some unwind info.
1973 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
1974
2d7ae210
UD
19752004-05-04 Jakub Jelinek <jakub@redhat.com>
1976
1977 * tst-stack3.c: Note testing functionality beyond POSIX.
1978
50c2b6d7
UD
19792004-05-04 Jakub Jelinek <jakub@redhat.com>
1980
1981 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h (USE___THREAD):
1982 Change conditional from ifdef to if.
1983
27b02589
UD
19842004-04-23 Jakub Jelinek <jakub@redhat.com>
1985
1986 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h (SYSDEP_CANCEL_ERRNO,
1987 SYSDEP_CANCEL_ERROR): Define.
1988 (PSEUDO): Use it.
1989
4bb8fc33
UD
19902004-05-01 Jakub Jelinek <jakub@redhat.com>
1991
1992 * Versions (libpthread): Remove __pthread_cleanup_upto@@GLIBC_PRIVATE.
1993
f9a06dc1
UD
19942004-04-20 Jakub Jelinek <jakub@redhat.com>
1995
1996 * sem_unlink.c (sem_unlink): Change EPERM into EACCES.
1997
d3b52028
UD
19982004-04-19 Kaz Kojima <kkojima@rr.iij4u.or.jp>
1999
2000 * sysdeps/unix/sysv/linux/sh/sem_timedwait.S: Add frame info.
2001 Use HIDDEN_JUMPTARGET to jump to __pthread_unwind.
2002 * sysdeps/unix/sysv/linux/sh/sem_wait.S: Remove unneeded frame
2003 info. Use HIDDEN_JUMPTARGET to jump to __pthread_unwind.
2004
a5dd0a6c
UD
20052004-04-19 Ulrich Drepper <drepper@redhat.com>
2006
2007 * sysdeps/unix/sysv/linux/timer_routines.c: Make sure helper
2008 thread has all signals blocked.
2009
620c3354
AJ
20102004-04-18 Andreas Jaeger <aj@suse.de>
2011
2012 * sysdeps/unix/sysv/linux/x86_64/bits/semaphore.h
2013 (SEM_VALUE_MAX): Add missing brace.
2014
1683daeb
UD
20152004-04-17 Jakub Jelinek <jakub@redhat.com>
2016
2017 * sysdeps/pthread/Makefile (tests): Add tst-mqueue8x
2018 in rt subdir.
2019 (CFLAGS-tst-mqueue8x.c): Add -fexceptions.
2020 * sysdeps/pthread/tst-mqueue8x.c: New test.
2021 * tst-cancel4.c: Update comment about message queues.
2022
2023 * sysdeps/pthread/timer_gettime.c (timer_gettime): For expired timer
2024 return it_value { 0, 0 }.
2025 * sysdeps/pthread/timer_create.c (timer_create): Handle SIGEV_NONE
2026 like SIGEV_SIGNAL.
2027 * sysdeps/pthread/timer_routines.c (thread_expire_timer): Remove
2028 assertion for SIGEV_NONE.
2029 (thread_attr_compare): Compare all attributes, not just a partial
2030 subset.
2031
20322004-04-17 Jakub Jelinek <jakub@redhat.com>
2033
2034 * sysdeps/unix/sysv/linux/mq_notify.c: Include stdlib.h.
2035
f532641d
UD
20362004-04-17 Ulrich Drepper <drepper@redhat.com>
2037
2038 * sysdeps/unix/sysv/linux/alpha/bits/semaphore.h (SEM_VALUE_MAX):
2039 Just use a plain number.
2040 * sysdeps/unix/sysv/linux/i386/bits/semaphore.h: Likewise.
2041 * sysdeps/unix/sysv/linux/ia64/bits/semaphore.h: Likewise.
2042 * sysdeps/unix/sysv/linux/powerpc/bits/semaphore.h: Likewise.
2043 * sysdeps/unix/sysv/linux/s390/bits/semaphore.h: Likewise.
2044 * sysdeps/unix/sysv/linux/sh/bits/semaphore.h: Likewise.
2045 * sysdeps/unix/sysv/linux/sparc/bits/semaphore.h: Likewise.
2046 * sysdeps/unix/sysv/linux/x86_64/bits/semaphore.h: Likewise.
2047
7eb7fdda
UD
20482004-04-16 Kaz Kojima <kkojima@rr.iij4u.or.jp>
2049
53392906
UD
2050 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Remove unneeded
2051 frame info.
2052 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise.
7eb7fdda 2053
d7ba1313
UD
20542004-04-15 Jakub Jelinek <jakub@redhat.com>
2055
2056 * sysdeps/unix/sysv/linux/timer_routines.c: Include errno.h.
2057 (timer_helper_thread): Use inline rt_sigtimedwait syscall instead
2058 of calling sigwaitinfo.
2059
5adac0e4
UD
20602004-04-16 Ulrich Drepper <drepper@redhat.com>
2061
2062 * allocatestack.c (allocate_stack): Set reported_guardsize
2063 unconditionally.
2064 * pthread_getattr_np.c (pthread_getattr_np): Use
2065 reported_guardsize instead of guardsize.
2066 * descr.h (struct pthread): Add reported_guardsize field.
2067
f93fa7d4
UD
20682004-04-13 Jakub Jelinek <jakub@redhat.com>
2069
2070 * sysdeps/unix/sysv/linux/mq_notify.c: Shut up GCC warning.
2071
1b82c6c7
UD
20722004-04-12 Ulrich Drepper <drepper@redhat.com>
2073
2074 * sysdeps/unix/sysv/linux/mq-notify.c: New file.
2075
20762004-04-08 Jakub Jelinek <jakub@redhat.com>
2077
2078 * sysdeps/unix/sysv/linux/bits/local_lim.h (MQ_PRIO_MAX): Define.
2079 * sysdeps/unix/sysv/linux/alpha/bits/local_lim.h (MQ_PRIO_MAX): Define.
2080 * sysdeps/unix/sysv/linux/ia64/bits/local_lim.h (MQ_PRIO_MAX): Define.
2081 * sysdeps/unix/sysv/linux/sparc/bits/local_lim.h (MQ_PRIO_MAX): Define.
2082 * sysdeps/unix/sysv/linux/bits/posix_opt.h (_POSIX_MESSAGE_PASSING):
2083 Define.
2084 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h
2085 (_POSIX_MESSAGE_PASSING): Define.
2086 * sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h
2087 (_POSIX_MESSAGE_PASSING): Define.
2088 * sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h
2089 (_POSIX_MESSAGE_PASSING): Define.
2090
e6eb894e
UD
20912004-04-04 Ulrich Drepper <drepper@redhat.com>
2092
2093 * tst-context1.c (fct): Check whether correct stack is used.
2094
1e084487
UD
20952004-04-03 Ulrich Drepper <drepper@redhat.com>
2096
4e73e115
UD
2097 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Never use
2098 matching constraints for asm mem parameters.
2099
1e084487
UD
2100 * tst-clock2.c (tf): Don't define unless needed.
2101
feca5e0b
UD
21022004-03-30 H.J. Lu <hongjiu.lu@intel.com>
2103
2104 * Makefile (link-libc-static): Use $(static-gnulib) instead of
2105 $(gnulib).
2106
3fa21fd8
UD
21072004-03-30 Ulrich Drepper <drepper@redhat.com>
2108
2109 * sysdeps/pthread/pthread-functions.h: Add ptr__nptl_deallocate_tsd.
2110 * init.c (pthread_functions): Add ptr__nptl_deallocate_tsd.
2111 * pthreadP.h: Declare __nptl_deallocate_tsd.
2112 * pthread_create.c (deallocate_tsd): Remove to __nptl_deallocate_tsd.
2113 Adjust caller.
2114
2115 * Makefile (tests): Add tst-tsd5.
2116 * tst-tsd5.c: New file.
2117
8e32efa6
UD
21182004-03-29 Ulrich Drepper <drepper@redhat.com>
2119
2120 * sysdeps/unix/sysv/linux/pthread_attr_setaffinity.c
2121 (__pthread_attr_setaffinity_old): Prepend GLIBC_ to version names
2122 is SHLIB_COMPAT check.
2123 * sysdeps/unix/sysv/linux/pthread_attr_getaffinity.c
2124 (__pthread_attr_getaffinity_old): Likewise.
2125 * sysdeps/unix/sysv/linux/pthread_getaffinity.c
2126 (__pthread_getaffinity_old): Likewise.
2127 * sysdeps/unix/sysv/linux/pthread_setaffinity.c
2128 (__pthread_setaffinity_old): Likewise.
2129
eec8b6ca
UD
21302004-03-26 Ulrich Drepper <drepper@redhat.com>
2131
2132 * allocatestack.c (_make_stacks_executable): Call
2133 _dl_make_stack_executable first.
2134
db2f05ba
RM
21352004-03-24 Roland McGrath <roland@redhat.com>
2136
2137 * sysdeps/i386/pthread_spin_lock.c (pthread_spin_lock): Use "m"
2138 constraint instead of "0".
2139
6abbc501
UD
21402004-03-24 Ulrich Drepper <drepper@redhat.com>
2141
68dc4dcb
UD
2142 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h
2143 (lll_mutex_cond_trylock): Define as wrapper around __lll_cond_trylock.
2144
6abbc501
UD
2145 * sysdeps/unix/sysv/linux/getpid.c (really_getpid): Reorganize
2146 code to avoid warning.
2147
865e14d9
AJ
21482004-03-24 Andreas Jaeger <aj@suse.de>
2149
2150 * sysdeps/unix/sysv/linux/pthread_attr_setaffinity.c
2151 (__pthread_attr_setaffinity_old): Remove const.
2152
16b06b70
UD
21532004-03-23 Ulrich Drepper <drepper@redhat.com>
2154
2c0b891a
UD
2155 * sysdeps/unix/sysv/linux/smp.h: New file.
2156 * sysdeps/unix/sysv/linux/sh/smp.h: New file.
2157 * init.c: Define __is_smp.
2158 (__pthread_initialize_minimal_internal): Call is_smp_system to
2159 initialize __is_smp.
2160 * pthreadP.h: Declare __is_smp.
2161 Define MAX_ADAPTIVE_COUNT is necessary.
2162 * pthread_mutex_init.c: Add comment regarding __spins field.
2163 * pthread_mutex_lock.c: Implement adaptive mutex type.
2164 * pthread_mutex_timedlock.c: Likewise.
2165 * sysdeps/unix/sysv/linux/pthread_mutex_cond_lock.c: Likewise.
2166 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h (pthread_mutex_t):
2167 Add __spins field.
2168 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Likewise.
2169 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
2170 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
2171 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Likewise.
2172 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
2173 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: Likewise.
2174 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
2175 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h: Define
2176 lll_mutex_cond_trylock.
2177 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
2178 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Likewise.
2179 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
2180 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: Likewise.
2181 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Likewise.
2182 Define BUSY_WAIT_NOP.
2183 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
2184 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
2185
2186 * tst-mutex5.c: Add support for testing adaptive mutexes.
2187 * tst-mutex7.c: Likewise.
2188 * tst-mutex5a.c: New file.
2189 * tst-mutex7a.c: New file.
2190 * Makefile (tests): Add tst-mutex5a and tst-mutex7a.
2191
565699e4
UD
2192 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
2193 (__lll_mutex_timedlock_wait): Preserve r8 and r9 since the
6abbc501 2194 vgettimeofday call might destroy the content.
565699e4 2195
7fe1586f
UD
2196 * sysdeps/ia64/pthread_spin_lock.c (pthread_spin_lock): Use hint
2197 @pause in the loop.
2198
e408880b
UD
2199 * sysdeps/unix/sysv/linux/i386/lowlevellock.h (lll_mutex_trylock):
2200 No need to restrict type of ret. Make it int. Add comment.
2201
16b06b70
UD
2202 * sysdeps/unix/sysv/linux/i386/lowlevellock.h (lll_mutex_trylock):
2203 Remove unnecessary setne instruction.
2204
61645263
UD
22052004-03-22 Jakub Jelinek <jakub@redhat.com>
2206
2207 * sysdeps/unix/sysv/linux/pthread_getaffinity.c
2208 (__pthread_getaffinity_new): Use INT_MAX instead of UINT_MAX.
2209 * pthread_getattr_np.c (pthread_getattr_np): Double size every cycle.
2210 If realloc fails, break out of the loop.
2211
e3d4c585
AJ
22122004-03-20 Andreas Jaeger <aj@suse.de>
2213
2214 * sysdeps/unix/sysv/linux/pthread_setaffinity.c
2215 (__pthread_setaffinity_old): Fix interface.
2216 * sysdeps/unix/sysv/linux/pthread_getaffinity.c
2217 (__pthread_getaffinity_old): Likewise.
2218
2219 * sysdeps/unix/sysv/linux/pthread_setaffinity.c
2220 (__pthread_setaffinity_new): Remove duplicate declaration.
2221
3abb1ff7
UD
22222004-03-20 Kaz Kojima <kkojima@rr.iij4u.or.jp>
2223
2224 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h (CENABLE): Save
2225 the return value to a safe register.
2226 (CDISABLE): Set the function argument correctly.
2227
07bd2a3f
UD
22282004-03-17 Kaz Kojima <kkojima@rr.iij4u.or.jp>
2229
2230 * sysdeps/unix/sysv/linux/sh/lowlevel-atomic.h (XCHG): Define.
2231 * sysdeps/unix/sysv/linux/sh/lowlevellock.S (__lll_mutex_lock_wait):
2232 Rewrite so that only one locked memory operation per round is needed.
2233 * sysdeps/unix/sysv/linux/sh/pthread_barrier_wait.S
2234 (pthread_barrier_wait): After wakeup, release lock only when the
2235 last thread stopped using the barrier object.
2236 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S
2237 (__pthread_cond_wait): Don't store mutex address if the current
2238 value is ~0l. Add correct cleanup support and unwind info.
2239 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise.
2240 * sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S
2241 (__pthread_cond_broadcast): Don't use requeue for pshared condvars.
2242 * sysdeps/unix/sysv/linux/sh/pthread_cond_signal.S: Update comment.
2243 * sysdeps/unix/sysv/linux/sh/pthread_once.S (__pthread_once):
2244 Add correct cleanup support and unwind info.
2245 * sysdeps/unix/sysv/linux/sh/sem_wait.S (__new_sem_wait): Likewise.
2246 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h: Add unwind
2247 information for syscall wrappers.
2248
14c35863
UD
22492004-03-18 Ulrich Drepper <drepper@redhat.com>
2250
2251 * sysdeps/unix/sysv/linux/internaltypes.h (struct pthread_attr): Add
2252 cpusetsize field, remove next.
2253 * sysdeps/pthread/pthread.h (pthread_getaffinity_np): Add new second
2254 parameter for size of the CPU set.
2255 (pthread_setaffinity_np): Likewise.
2256 (pthread_attr_getaffinity_np): Likewise.
2257 (pthread_attr_setaffinity_np): Likewise.
2258 * sysdeps/unix/sysv/linux/pthread_attr_getaffinity.c: Implement
2259 interface change, keep compatibility code.
2260 * sysdeps/unix/sysv/linux/pthread_attr_setaffinity.c: Likewise.
2261 * sysdeps/unix/sysv/linux/pthread_getaffinity.c: Likewise.
2262 * sysdeps/unix/sysv/linux/pthread_setaffinity.c: Likewise.
2263 * pthreadP.h: Remove hidden_proto for pthread_getaffinity_np. Declare
2264 __pthread_getaffinity_np.
2265 * Versions: Add version for changed interfaces.
2266 * tst-attr3.c: Adjust test for interface change.
2267 * pthread_getattr_np.c: Query the kernel about the affinity mask with
2268 increasing buffer sizes.
2269 * pthread_attr_destroy.c: Remove unused list handling.
2270 * pthread_attr_init.c: Likewise.
2271
8e115d80
RM
22722004-03-17 Roland McGrath <roland@redhat.com>
2273
2274 * sysdeps/unix/sysv/linux/timer_create.c (timer_create): Pass missing
2275 first argument to clock_getres so we ever enable kernel timers.
2276
e3b22ad3
UD
22772004-03-15 Ulrich Weigand <uweigand@de.ibm.com>
2278
2279 * init.c (nptl_version): Add __attribute_used__ to nptl_version.
2280
841153fa
RH
22812004-03-12 Richard Henderson <rth@redhat.com>
2282
e3b22ad3
UD
2283 * sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h: Propagate
2284 oldvalue from CENABLE to CDISABLE.
841153fa 2285
932dfea7
UD
22862004-03-12 Ulrich Drepper <drepper@redhat.com>
2287
2288 * sysdeps/unix/sysv/linux/bits/local_lim.h: Define HOST_NAME_MAX.
2289 * sysdeps/unix/sysv/linux/alpha/bits/local_lim.h: Likewise.
2290 * sysdeps/unix/sysv/linux/ia64/bits/local_lim.h: Likewise.
2291 * sysdeps/unix/sysv/linux/sparc/bits/local_lim.h: Likewise.
2292
9852f6dc
RH
22932004-03-11 Richard Henderson <rth@redhat.com>
2294
2295 * sysdeps/alpha/tcb-offsets.sym (PID_OFFSET): New.
2296 * sysdeps/unix/sysv/linux/alpha/pt-vfork.S: Save/restore PID.
2297 * sysdeps/unix/sysv/linux/alpha/vfork.S: New file.
2298
43513fb7
UD
22992004-03-11 Jakub Jelinek <jakub@redhat.com>
2300
2301 * sysdeps/unix/sysv/linux/s390/s390-64/vfork.S (__vfork): Use jgnl
2302 instead of jnl instruction to jump to SYSCALL_ERROR_LABEL.
2303 * sysdeps/unix/sysv/linux/s390/s390-64/pt-vfork.S (__vfork): Likewise.
2304
23052004-03-11 Jakub Jelinek <jakub@redhat.com>
2306
2307 * forward.c (__pthread_cond_broadcast_2_0,
2308 __pthread_cond_destroy_2_0, __pthread_cond_init_2_0,
2309 __pthread_cond_signal_2_0, __pthread_cond_wait_2_0,
2310 __pthread_cond_timedwait_2_0): Use return 0 as defaction instead of 0.
2311
8a3e10e0
UD
23122004-03-11 Kaz Kojima <kkojima@rr.iij4u.or.jp>
2313
2314 * sysdeps/sh/tcb-offsets.sym: Add PID.
2315 * sysdeps/unix/sysv/linux/sh/pt-vfork.S: Properly handle PID cache.
2316 * sysdeps/unix/sysv/linux/sh/vfork.S: New file.
2317
6d3a2bec
UD
23182004-03-10 Ulrich Drepper <drepper@redhat.com>
2319
2320 * sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S: No need to
2321 include <sysdep-cancel.h>, vfork is no cancellation point.
2322 * sysdeps/unix/sysv/linux/powerpc/powerpc64/vfork.S: Likewise.
2323 * sysdeps/unix/sysv/linux/powerpc/powerpc64/pt-vfork.S: Likewise.
2324 * sysdeps/unix/sysv/linux/powerpc/powerpc32/pt-vfork.S: Likewise.
2325
d3a4a571
UD
23262004-03-10 Jakub Jelinek <jakub@redhat.com>
2327
73b4ce64
UD
2328 * sysdeps/unix/sysv/linux/s390/s390-32/vfork.S (__vfork): Add
2329 libc_hidden_def.
2330 * sysdeps/unix/sysv/linux/s390/s390-64/vfork.S (__vfork): Likewise.
2331 * sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S (__vfork):
2332 Likewise.
2333 * sysdeps/unix/sysv/linux/powerpc/powerpc64/vfork.S (__vfork):
2334 Likewise.
2335 * sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S (__vfork): Likewise.
2336 * sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S (__vfork): Likewise.
2337 * sysdeps/unix/sysv/linux/ia64/pt-vfork.S: Include tcb-offsets.h.
2338 * sysdeps/unix/sysv/linux/ia64/vfork.S (__vfork): Use DO_CALL instead
2339 of DO_CALL_VIA_BREAK. Work around a gas problem.
2340
d682a515
UD
2341 * sysdeps/unix/sysv/linux/powerpc/pt-vfork.S: Remove.
2342 * sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S: New file.
2343 * sysdeps/unix/sysv/linux/powerpc/powerpc32/pt-vfork.S: New file.
2344 * sysdeps/unix/sysv/linux/powerpc/powerpc64/vfork.S: New file.
2345 * sysdeps/unix/sysv/linux/powerpc/powerpc64/pt-vfork.S: New file.
2346 * sysdeps/powerpc/tcb-offsets.sym: Add PID.
2347
2348 * sysdeps/unix/sysv/linux/ia64/pt-vfork.S (__vfork): Don't use
2349 a local register for saving old PID. Negate PID in parent upon exit.
2350
d3a4a571
UD
2351 * sysdeps/unix/sysv/linux/s390/s390-32/pt-vfork.S: Include
2352 tcb-offsets.h.
2353 (__vfork): Negate PID if non-zero and set to INT_MIN if zero
2354 before syscall, set to the old value in the parent afterwards.
2355 * sysdeps/unix/sysv/linux/s390/s390-32/vfork.S: New file.
2356 * sysdeps/unix/sysv/linux/s390/s390-64/pt-vfork.S: Include
2357 tcb-offsets.h.
2358 (__vfork): Negate PID if non-zero and set to INT_MIN if zero
2359 before syscall, set to the old value in the parent afterwards.
2360 * sysdeps/unix/sysv/linux/s390/s390-64/vfork.S: New file.
2361 * sysdeps/s390/tcb-offsets.sym: Add PID.
2362
2363 * sysdeps/unix/sysv/linux/sparc/pt-vfork.S: Remove.
2364 * sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S: New file.
2365 * sysdeps/unix/sysv/linux/sparc/sparc32/pt-vfork.S: New file.
2366 * sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S: New file.
2367 * sysdeps/unix/sysv/linux/sparc/sparc64/pt-vfork.S: New file.
2368 * sysdeps/sparc/tcb-offsets.sym: Add PID.
2369
23702004-03-10 Andreas Schwab <schwab@suse.de>
2371
2372 * sysdeps/ia64/tcb-offsets.sym: Add PID.
2373 * sysdeps/unix/sysv/linux/ia64/vfork.S: New file.
2374 * sysdeps/unix/sysv/linux/ia64/pt-vfork.S: Properly handle PID cache.
2375
3f2fb223 23762004-03-09 Jakub Jelinek <jakub@redhat.com>
f4c024d1 2377
3f2fb223
UD
2378 * tst-cancel20.c (do_one_test): Clear in_sh_body first.
2379 * tst-cancel21.c (do_one_test): Likewise.
2380 Reported by Gordon Jin <gordon.jin@intel.com>.
f4c024d1 2381
8b9d6054
UD
23822004-02-09 Jakub Jelinek <jakub@redhat.com>
2383
2384 * sysdeps/unix/sysv/linux/i386/vfork.S (SAVE_PID): Negate PID
2385 if non-zero and set to INT_MIN if zero.
2386 * sysdeps/unix/sysv/linux/x86_64/vfork.S (SAVE_PID): Likewise.
2387 * sysdeps/unix/sysv/linux/i386/pt-vfork.S: Include tcb-offsets.h.
2388 (SAVE_PID, RESTORE_PID): Define.
2389 (__vfork): Use it.
2390 * sysdeps/unix/sysv/linux/x86_64/pt-vfork.S: Include tcb-offsets.h.
2391 Use relative path to avoid including NPTL i386/vfork.S.
2392 (SAVE_PID, RESTORE_PID): Define.
2393 * sysdeps/unix/sysv/linux/raise.c: Include limits.h.
2394 (raise): Handle THREAD_SELF->pid INT_MIN the same as 0.
2395 * Makefile (tests): Add tst-vfork1, tst-vfork2, tst-vfork1x and
2396 tst-vfork2x.
2397 (tests-reverse): Add tst-vfork1x and tst-vfork2x.
2398 * tst-vfork1.c: New test.
2399 * tst-vfork2.c: New test.
2400 * tst-vfork1x.c: New test.
2401 * tst-vfork2x.c: New test.
2402
02287d05
UD
24032004-03-08 Ulrich Drepper <drepper@redhat.com>
2404
c072ef6d 2405 * sysdeps/i386/tcb-offsets.sym: Add PID.
6fadea9f 2406 * sysdeps/x86_64/tcb-offsets.sym: Likewise.
c072ef6d 2407 * sysdeps/unix/sysv/linux/i386/vfork.S: New file.
6fadea9f 2408 * sysdeps/unix/sysv/linux/x86_64/vfork.S: New file.
02287d05 2409
d4acd24b
UD
24102004-03-08 Steven Munroe <sjmunroe@us.ibm.com>
2411
2412 * sysdeps/unix/sysv/linux/powerpc/Versions: Remove leading tabs.
2413
8acb4b81
UD
24142004-03-08 H.J. Lu <hongjiu.lu@intel.com>
2415
2416 * sysdeps/s390/tls.h (INIT_SYSINFO): _dl_sysinfo is now in
2417 _rtld_global_ro.
2418
4d1a02ef
UD
24192004-03-07 Ulrich Drepper <drepper@redhat.com>
2420
001836c8 2421 * sysdeps/ia64/tls.h (INIT_SYSINFO): _dl_sysinfo is now in
8acb4b81 2422 _rtld_global_ro.
001836c8 2423
4d1a02ef
UD
2424 * tst-once4.c: Remove unnecessary macro definition.
2425
2426 * tst-mutex7.c (do_test): Limit thread stack size.
2427 * tst-once2.c (do_test): Likewise.
2428 * tst-tls3.c (do_test): Likewise.
2429 * tst-tls1.c (do_test): Likewise.
2430 * tst-signal3.c (do_test): Likewise.
2431 * tst-kill6.c (do_test): Likewise.
2432 * tst-key4.c (do_test): Likewise.
2433 * tst-join4.c (do_test): Likewise.
2434 * tst-fork1.c (do_test): Likewise.
2435 * tst-context1.c (do_test): Likewise.
2436 * tst-cond2.c (do_test): Likewise.
2437 * tst-cond10.c (do_test): Likewise.
2438 * tst-clock2.c (do_test): Likewise.
2439 * tst-cancel10.c (do_test): Likewise.
2440 * tst-basic2.c (do_test): Likewise.
2441 * tst-barrier4.c (do_test): Likewise.
2442
aa420660
UD
24432004-03-05 Ulrich Drepper <drepper@redhat.com>
2444
2445 * sysdeps/i386/tls.h: Use GLRO instead of GL where appropriate.
2446
cff08c81
UD
24472004-03-01 Ulrich Drepper <drepper@redhat.com>
2448
2449 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
2450 (__pthread_cond_timedwait): Optimize wakeup test.
2451 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S
2452 (__pthread_cond_wait): Likewise.
2453 * sysdeps/pthread/pthread_cond_wait.c (__pthread_cond_wait): Likewise.
2454 * sysdeps/pthread/pthread_cond_timedwait.c (__pthread_cond_timedwait):
2455 Likewise.
2456
b7fe377c
UD
24572004-02-29 Ulrich Drepper <drepper@redhat.com>
2458
2459 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
2460 (__lll_mutex_lock_wait): Optimize a bit more. Just one copy of
2461 the atomic instruction needed.
2462 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
2463 (__lll_mutex_lock_wait): Likewise.
2464
4c771a3b
UD
24652004-02-28 Ulrich Drepper <drepper@redhat.com>
2466
2467 * Makefile (tests): Add tst-cond14 and tst-cond15.
2468 * tst-cond14.c: New file.
2469 * tst-cond15.c: New file.
2470
a2c33d5a
UD
24712004-02-27 Ulrich Drepper <drepper@redhat.com>
2472
2473 * sysdeps/pthread/createthread.c (create_thread): Remove use of
2474 CLONE_STOPPED. We cannot use SIGCONT which means CLONE_STOPPED
2475 needs to be implemented differently to be useful.
2476
261eada2
UD
24772004-02-26 Ulrich Drepper <drepper@redhat.com>
2478
14ffbc83
UD
2479 * pthread_attr_setschedparam.c: Don't test priority against limits
2480 here. Set ATTR_FLAG_SCHED_SET flag.
2481 * pthread_attr_setschedpolicy.c: Set ATTR_FLAG_POLICY_SET flag.
2482 * pthread_create.c (__pthread_create_2_1): Copy scheduling attributes
2483 from parent thread to child. If attribute is used and scheduling
2484 parameters are not inherited, copy parameters from attribute or
2485 compute them. Check priority value.
2486 * pthread_getschedparam.c: If the parameters aren't known yet get
2487 them from the kernel.
2488 * pthread_setschedparam.c: Set ATTR_FLAG_SCHED_SET and
2489 ATTR_FLAG_POLICY_SET flag for thread.
2490 * sysdeps/unix/sysv/linux/internaltypes.h: Define ATTR_FLAG_SCHED_SET
2491 and ATTR_FLAG_POLICY_SET.
2492
2493 * sysdeps/pthread/createthread.c: Use tgkill if possible.
2494
261eada2
UD
2495 * pthread_attr_getstackaddr.c (__pthread_attr_getstackaddr): Don't
2496 fail if stack address hasn't been set. Just return 0.
2497
701d185c
UD
24982004-02-25 Ulrich Drepper <drepper@redhat.com>
2499
25b8e63c
UD
2500 * Makefile (tests-nolibpthread): Add tst-unload. Don't link with
2501 libpthread for the files in this list.
2502 (CFLAGS-tst-unload): Removed.
2503 * tst-unload.c (do_test): Don't use complete path for
2504 LIBPHREAD_SO.
2505
701d185c
UD
2506 * Makefile: Define sonames for tst-tls5mod, tst-_res1mod1, and
2507 tst-_res1mod2.
2508
a8fd5a02
UD
25092004-02-22 Ulrich Drepper <drepper@redhat.com>
2510
2511 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
2512 (__lll_mutex_lock_wait): Rewrite so that only one locked memory
2513 operation per round is needed.
2514 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
2515 (__lll_mutex_lock_wait): Likewise.
2516
dd0b7b19
UD
25172004-02-20 Ulrich Drepper <drepper@redhat.com>
2518
2519 * tst-cancel9.c (cleanup): Don't print to stderr.
2520
5990e1fe
UD
25212004-02-20 Kaz Kojima <kkojima@rr.iij4u.or.jp>
2522
2523 * sysdeps/sh/jmpbuf-unwind.h (_JMPBUF_UNWINDS_ADJ): Fix variable name.
2524
33ab3b66
UD
25252004-02-20 Jakub Jelinek <jakub@redhat.com>
2526
1be3130e
UD
2527 * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h
2528 (__syscall_error_handler2): Call CDISABLE.
2529 * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h
2530 (__syscall_error_handler2): Call CDISABLE.
2531
8ba5025a
UD
2532 * sysdeps/pthread/pthread_barrier_wait.c (pthread_barrier_wait):
2533 Release lock before the loop, don't reacquire it.
8ba5025a 2534
33ab3b66
UD
2535 * sysdeps/unix/sysv/linux/ia64/dl-sysdep.h (DL_ARGV_NOT_RELRO): Define.
2536
11986c68
UD
25372004-02-19 Andreas Schwab <schwab@suse.de>
2538
2539 * sysdeps/pthread/pthread_barrier_wait.c (pthread_barrier_wait):
2540 Fix last change.
2541
dc391246
UD
25422004-02-18 Ulrich Drepper <drepper@redhat.com>
2543
37c054c7
UD
2544 * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S
2545 (pthread_barrier_wait): After wakeup, release lock only when the
2546 last thread stopped using the barrier object.
2547 * sysdeps/unix/sysv/linux/x86_64/pthread_barrier_wait.S
2548 (pthread_barrier_wait): Likewise.
2549 * sysdeps/pthread/pthread_barrier_wait.c (pthread_barrier_wait):
2550 Likewise.
2551 * Makefile (tests): Add tst-barrier4.
2552 * tst-barrier4.c: New file.
dc391246
UD
2553
2554 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
2555 (__pthread_cond_timedwait): Perform timeout test while holding
2556 internal lock to prevent wakeup race.
2557 Patch by Dinakar Guniguntala <dgunigun@in.ibm.com>.
2558 * sysdeps/pthread/pthread_cond_timedwait.c
2559 (__pthread_cond_timedwait): Likewise.
2560 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
2561 (__pthread_cond_timedwait): Likewise.
2562
4a08113c
UD
25632004-02-18 Jakub Jelinek <jakub@redhat.com>
2564
2565 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_unlock.S
2566 (__pthread_rwlock_unlock): Access WRITER as 32-bit value.
2567 * Makefile (tests): Add tst-rwlock13.
2568 * tst-rwlock13.c: New test.
2569
71b1675e
UD
25702004-02-16 Ulrich Drepper <drepper@redhat.com>
2571
2572 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
2573 (__condvar_tw_cleanup): Little optimization.
2574 Patch by Dinakar Guniguntala <dgunigun@in.ibm.com>.
2575
cd9fdc72
UD
25762004-02-16 Steven Munroe <sjmunroe@us.ibm.com>
2577
2578 * sysdeps/unix/sysv/linux/powerpc/pt-longjmp.c: Replace libc with
2579 libpthread as "lib" parameter to SHLIB_COMPAT.
2580 (__novmx_siglongjmp): Fix typo in function name.
2581 (__novmx_longjmp): Fix typo in function name.
2582
82038750
UD
25832004-02-13 Ulrich Drepper <drepper@redhat.com>
2584
b078c591
UD
2585 * sysdeps/pthread/pthread_cond_wait.c (__pthread_cond_wait): Add a
2586 __builtin_expect.
2587
82038750
UD
2588 * sysdeps/generic/pt-longjmp.c: Moved to...
2589 * sysdeps/pthread/pt-longjmp.c: ...here. New file.
2590
e2982bf0
UD
25912004-01-29 Steven Munroe <sjmunroe@us.ibm.com>
2592
2593 * Makefile (libpthread-routines): Add pt-cleanup.
2594 * pt-longjmp.c: Removed.
2595 * pt-cleanup.c: Copied __pthread_cleanup_upto to here. New file.
2596 * sysdeps/generic/pt-longjmp.c: Copied longjmp to here. New file.
2597 * sysdeps/unix/sysv/linux/powerpc/Versions: New file.
2598 Version longjmp, siglongjmp for GLIBC_2.3.4.
2599 * sysdeps/unix/sysv/linux/powerpc/pt-longjmp.c: New File.
2600
3730d95c
UD
26012004-02-13 Ulrich Drepper <drepper@redhat.com>
2602
219304ec
UD
2603 * sysdeps/pthread/pthread_cond_timedwait.c
2604 (__pthread_cond_timedwait): Optimize. Drop internal lock earlier.
2605 Reuse code. Add __builtin_expects.
2606
3730d95c
UD
2607 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
2608 (__pthread_cond_timedwait): Get internal lock in case timeout has
2609 passed before the futex syscall.
2610 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
2611
5673ccc1
UD
26122004-01-20 Ulrich Drepper <drepper@redhat.com>
2613
debddf64
UD
2614 * allocatestack.c: Pretty printing.
2615
5673ccc1
UD
2616 * sysdeps/pthread/createthread.c (create_thread): Don't add
2617 CLONE_DETACHED bit if it is not necessary.
2618
6bae8725
UD
26192004-01-16 Ulrich Drepper <drepper@redhat.com>
2620
2621 * pthread_getattr_np.c: Include ldsodefs.h.
2622
ff151400
RH
26232004-01-16 Richard Henderson <rth@redhat.com>
2624
6bae8725
UD
2625 * allocatestack.c: Don't declare __libc_stack_end.
2626 * init.c (__pthread_initialize_minimal_internal): Likewise.
2627 * pthread_getattr_np.c (pthread_getattr_np): Likewise.
ff151400 2628
ba683832
RH
26292004-01-15 Richard Henderson <rth@redhat.com>
2630
2631 * sysdeps/alpha/tls.h (tcbhead_t): Add private.
2632 (TLS_INIT_TCB_SIZE, TLS_INIT_TCB_ALIGN, TLS_TCB_SIZE,
2633 TLS_PRE_TCB_SIZE, TLS_TCB_ALIGN, INSTALL_DTV, INSTALL_NEW_DTV,
2634 GET_DTV, THREAD_DTV, THREAD_SELF, DB_THREAD_SELF): Match ia64.
2635 (TLS_TCB_OFFSET, THREAD_ID, NO_TLS_OFFSET): Remove.
2636 (THREAD_GETMEM, THREAD_GETMEM_NC): Simplify.
2637 (THREAD_SETMEM, THREAD_SETMEM_NC): Likewise.
2638 * sysdeps/unix/sysv/linux/alpha/createthread.c (TLS_VALUE): Match ia64.
2639
630d93a7
UD
26402004-01-14 Ulrich Drepper <drepper@redhat.com>
2641
219304ec 2642 * init.c (pthread_functions): Make array const.
630d93a7 2643
d1fc817e
UD
26442004-01-13 Ulrich Drepper <drepper@redhat.com>
2645
2646 * allocatestack.c (__make_stacks_executable): Change interface.
2647 Check parameters. Pass parameter on to libc counterpart.
2648 * pthreadP.h: Change declaration.
2649
dc927809
RH
26502004-01-13 Richard Henderson <rth@redhat.com>
2651
10677727
UD
2652 * pthread_attr_setstack.c (__old_pthread_attr_setstack): Use
2653 prototype form.
2654 * pthread_attr_setstacksize.c (__old_pthread_attr_setstacksize):
2655 Likewise.
2656
d1fc817e
UD
2657 * sysdeps/alpha/Makefile: New file.
2658 * sysdeps/alpha/tcb-offsets.sym: New file.
2659 * sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h (SINGLE_THREAD_P):
2660 Use MULTIPLE_THREADS_OFFSET to implement !libpthread !libc version.
dc927809 2661
d1fc817e
UD
2662 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h: Rewrite based
2663 on powerpc version.
dc927809 2664
249a3d0c
UD
26652004-01-08 Jakub Jelinek <jakub@redhat.com>
2666
2667 * Makefile (tests): Add tst-backtrace1.
2668 * tst-backtrace1.c: New test.
2669
763c0490
RM
26702003-12-11 Ulrich Weigand <uweigand@de.ibm.com>
2671
2672 * sysdeps/alpha/tls.h (DB_THREAD_SELF): Pass bit size of thread
2673 register as second parameter to the REGISTER macro.
2674 * sysdeps/ia64/tls.h (DB_THREAD_SELF): Likewise.
2675 * sysdeps/powerpc/tls.h (DB_THREAD_SELF): Likewise.
2676 * sysdeps/sh/tls.h (DB_THREAD_SELF): Likewise.
2677 * sysdeps/sparc/tls.h (DB_THREAD_SELF): Likewise.
2678 * sysdeps/s390/tls.h (DB_THREAD_SELF): Pass __WORDSIZE as bit size
2679 of thread register as second parameter to REGISTER macro in 64 case.
2680
c7baafd5
UD
26812004-01-03 Ulrich Drepper <drepper@redhat.com>
2682
2683 * sysdeps/unix/sysv/linux/Makefile (CFLAGS-getpid.c): Removed.
2684 (CFLAGS-getpid.o): Defined.
2685 (CFLAGS-getpid.os): Defined.
2686
25ac0258
UD
26872003-12-31 Ulrich Drepper <drepper@redhat.com>
2688
2689 * pthread_getattr_np.c (pthread_getattr_np): Make sure stack info
2690 returned for main thread does not overlap with any other VMA.
2691 Patch by Jakub Jelinek.
2692
795985e4
UD
26932003-12-29 Jakub Jelinek <jakub@redhat.com>
2694
2695 * tst-raise1.c: Include stdio.h.
2696
cb5b9388
UD
26972003-12-23 Jakub Jelinek <jakub@redhat.com>
2698
2699 * sysdeps/unix/sysv/linux/raise.c (raise): Protect pid = selftid
2700 setting with __ASSUME_TGKILL || defined __NR_tgkill.
2701 If pid is 0, set it to selftid.
2702 * sysdeps/unix/sysv/linux/getpid.c (really_getpid): Make inline.
2703 Don't set self->pid but self->tid. If self->pid == 0 and self->tid
2704 != 0, return self->tid without doing a syscall.
2705 * descr.h (struct pthread): Move pid field after tid.
2706
2707 * Makefile (tests): Add tst-raise1.
2708 * tst-raise1.c: New file.
2709
432aaf5b
RM
27102003-12-23 Roland McGrath <roland@redhat.com>
2711
2712 * tst-oddstacklimit.c: New file.
2713 * Makefile (tests): Add it.
2714 (tst-oddstacklimit-ENV): New variable.
2715
2716 * init.c (__pthread_initialize_minimal_internal): Round stack rlimit
2717 value up to page size for __default_stacksize.
2718
33ebea17
UD
27192003-12-21 Ulrich Drepper <drepper@redhat.com>
2720
2721 * Makefile (tests): Add tst-eintr5.
2722 * tst-eintr5.c: New file.
2723
2724 * eintr.c (eintr_source): Prevent sending signal to self.
2725
2726 * tst-eintr2.c (tf1): Improve error message.
2727
bbe35eb5
UD
27282003-12-20 Ulrich Drepper <drepper@redhat.com>
2729
2730 * sysdeps/unix/sysv/linux/Makefile (CFLAGS-getpid.c): Define.
2731 * sysdeps/unix/sysv/linux/getpid.c: New file.
c0ecb80a
UD
2732 * pthread_cancel.c: Add comment explaining use of PID field.
2733 * sysdeps/unix/sysv/linux/pthread_kill.c: Likewise.
2734 * pthread_getattr_np.c: Use abs() when comparing PID and TID fields.
2735 * sysdeps/unix/sysv/linux/fork.c: Negate PID field of parent
2736 temporarily to signal the field must not be relied on and updated
2737 by getpid().
2738 * sysdeps/unix/sysv/linux/pt-raise.c: Handle case where PID is
2739 temporarily negative.
2740 * sysdeps/unix/sysv/linux/raise.c: Likewise.
bbe35eb5 2741
4efdd8d3
UD
27422003-12-19 Ulrich Drepper <drepper@redhat.com>
2743
2744 * eintr.c (setup_eintr): Add new parameter. Pass to thread function.
2745 (eintr_source): If ARG != NULL, use pthread_kill.
2746 * tst-eintr1.c: Adjust for this change.
2747 * tst-eintr2.c: Likewise.
2748 * Makefile (tests): Add tst-eintr3 and tst-eintr4.
2749 * tst-eintr3.c: New file.
2750 * tst-eintr4.c: New file.
2751
27522003-12-19 Jakub Jelinek <jakub@redhat.com>
2753
2754 * libc-cancellation.c (__libc_enable_asynccancel): Don't cancel
2755 if CANCELSTATE_BITMASK is set.
2756 * sysdeps/pthread/librt-cancellation.c (__librt_enable_asynccancel):
2757 Likewise.
2758
2759 * Makefile (tests): Add tst-cancel22 and tst-cancel23.
2760 (tests-reverse): Add tst-cancel23.
2761 * tst-cancel22.c: New test.
2762 * tst-cancel23.c: New test.
2763
675620f7
UD
27642003-12-18 Ulrich Drepper <drepper@redhat.com>
2765
2766 * tst-eintr1.c: Better error messages.
2767
2768 * Makefile (tests): Add tst-eintr2.
2769 * tst-eintr2.c: New file.
2770
27712003-12-18 Jakub Jelinek <jakub@redhat.com>
2772
2773 * Makefile (tests): Add tst-cancel21 and tst-cancelx21.
2774 (CFLAGS-tst-cancelx21.c): Set.
2775 * tst-cancel21.c: New test.
2776 * tst-cancelx21.c: New test.
2777
2778 * unwind.c (FRAME_LEFT): Add adj argument. Subtract it from each
2779 comparison operand.
2780 (unwind_stop): Use _JMPBUF_CFA_UNWINDS_ADJ macro instead of
2781 _JMPBUF_CFA_UNWINDS. Adjust FRAME_LEFT invocations.
2782 * pt-longjmp.c: Include jmpbuf-unwind.h.
2783 (__pthread_cleanup_upto): Use _JMPBUF_UNWINDS_ADJ macro instead of
2784 _JMPBUF_UNWINDS. Adjust compared pointers.
2785 * init.c (__pthread_initialize_minimal_internal): Initialize
2786 pd->stackblock_size.
2787 * sysdeps/pthread/jmpbuf-unwind.h: Removed.
2788 * sysdeps/alpha/jmpbuf-unwind.h: New file.
2789 * sysdeps/i386/jmpbuf-unwind.h: New file.
2790 * sysdeps/powerpc/jmpbuf-unwind.h: New file.
2791 * sysdeps/s390/jmpbuf-unwind.h: New file.
2792 * sysdeps/sh/jmpbuf-unwind.h: New file.
2793 * sysdeps/sparc/sparc32/jmpbuf-unwind.h: New file.
2794 * sysdeps/x86_64/jmpbuf-unwind.h: New file.
2e5e031d 2795 * sysdeps/unix/sysv/linux/ia64/jmpbuf-unwind.h: Include stdint.h.
675620f7
UD
2796 (_JMPBUF_CFA_UNWINDS): Remove.
2797 (_JMPBUF_CFA_UNWINDS_ADJ, _JMPBUF_UNWINDS_ADJ): Define.
2798
27992003-12-12 Jakub Jelinek <jakub@redhat.com>
2800
2801 * Makefile (tests): Add tst-cancel20 and tst-cancelx20.
2802 (CFLAGS-tst-cancelx20.c): Set.
2803 * tst-cancel20.c: New test.
2804 * tst-cancelx20.c: New test.
2805
2d951ab6
UD
28062003-12-17 Ulrich Drepper <drepper@redhat.com>
2807
2808 * init.c (__pthread_initialize_minimal_internal): Don't treat
2809 architectures with separate register stack special here when
2810 computing default stack size.
2811
f8a3a2e7
RM
28122003-12-17 Roland McGrath <roland@redhat.com>
2813
2814 * Makefile (tst-cancelx7-ARGS): New variable.
2815 Reportd by Greg Schafer <gschafer@zip.com.au>.
2816
e796f92f
UD
28172003-12-17 Jakub Jelinek <jakub@redhat.com>
2818
2819 * Makefile (tests): Add tst-stack3. Depend on $(objpfx)tst-stack3-mem.
2820 (generated): Add tst-stack3.mtrace and tst-stack3-mem.
2821 (tst-stack3-ENV): Set.
2822 ($(objpfx)tst-stack3-mem): New.
2823 * tst-stack3.c: New test.
2824
092eb73c
UD
28252003-12-10 David Mosberger <davidm@hpl.hp.com>
2826
2827 * sysdeps/unix/sysv/linux/ia64/pt-initfini.c (_init_EPILOG_BEGINS):
2828 Add unwind directives. Drop unused .regstk directive.
2829 (_fini_EPILOG_BEGINS): Add unwind directives.
2830
ff48874d
UD
28312003-12-11 Ulrich Drepper <drepper@redhat.com>
2832
2833 * sysdeps/unix/sysv/linux/i386/lowlevellock.h (lll_futex_wait):
2834 Assume parameter is a pointer.
2835 (lll_futex_wake): Likewise.
20945457
UD
2836 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (lll_futex_wait):
2837 Likewise.
2838 (lll_futex_wake): Likewise.
ff48874d
UD
2839 Reported by Boris Hu.
2840 * sysdeps/unix/sysv/linux/unregister-atfork.c
2841 (__unregister_atfork): Pass pointer to refcntr to lll_futex_wait.
2842
2843 * sysdeps/unix/sysv/linux/sem_wait.c (__new_sem_wait): Simplify a bit.
2844
1d9d0b80
UD
28452003-12-10 Ulrich Drepper <drepper@redhat.com>
2846
2847 * sysdeps/pthread/bits/libc-lock.h (__rtld_lock_initialize): Define.
2848 * sysdeps/unix/sysv/linux/fork.c (__libc_fork): Call
2849 __rtld_lock_initialize for ld.so lock.
2850 Patch in part by Adam Li <adam.li@intel.com>.
2851
c776b3d7
UD
28522003-12-02 David Mosberger <davidm@hpl.hp.com>
2853
2854 * Makefile (link-libc-static): Remove -lgcc_eh---it's already mentioned
2855 in $(gnulib). Also, remove stale comment.
2856
28572003-11-12 David Mosberger <davidm@hpl.hp.com>
2858
2859 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h (PSEUDO): Take
2860 advantage of new syscall stub and optimize accordingly.
2861
2862 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (__NR_futex): Rename
2863 from SYS_futex, to match expectations of
2864 sysdep.h:DO_INLINE_SYSCALL.
2865 (lll_futex_clobbers): Remove.
2866 (lll_futex_timed_wait): Rewrite in terms of DO_INLINE_SYSCALL.
2867 (lll_futex_wake): Likewise.
2868 (lll_futex_requeue): Likewise.
2869 (__lll_mutex_trylock): Rewrite to a macro, so we can include this
2870 file before DO_INLINE_SYSCALL is defined (proposed by Jakub
2871 Jelinek).
2872 (__lll_mutex_lock): Likewise.
2873 (__lll_mutex_cond_lock): Likewise.
2874 (__lll_mutex_timed_lock): Likewise.
2875 (__lll_mutex_unlock): Likewise.
2876 (__lll_mutex_unlock_force): Likewise.
2877
2878 * sysdeps/ia64/tls.h: Move declaration of __thread_self up so it
2879 comes before the include of <sysdep.h>.
2880 (THREAD_SELF_SYSINFO): New macro.
2881 (THREAD_SYSINFO): Likewise.
2882 (INIT_SYSINFO): New macro.
2883 (TLS_INIT_TP): Call INIT_SYSINFO.
2884
2885 * sysdeps/ia64/tcb-offsets.sym: Add SYSINFO_OFFSET.
2886
2887 * sysdeps/pthread/createthread.c (create_thread): Use
2888 THREAD_SELF_SYSINFO and THREAD_SYSINFO instead of open code.
2889 * allocatestack.c (allocate_stack): Use THREAD_SYSINFO and
2890 THREAD_SELF_SYSINFO instead of open code.
2891 * sysdeps/i386/tls.h (THREAD_SELF_SYSINFO): New macro.
2892 (THREAD_SYSINFO): Likewise.
2893
2894 * sysdeps/unix/sysv/linux/ia64/dl-sysdep.h: New file.
2895
2896 * sysdeps/unix/sysv/linux/ia64/pt-vfork.S: Work around gas problem.
2897
57d20ee7
UD
28982003-12-06 Ulrich Drepper <drepper@redhat.com>
2899
2900 * sysdeps/unix/sysv/linux/ia64/pt-initfini.c: Use .init_array
2901 instead of .init. Patch by David Mosberger.
2902
67aeab2a
AJ
29032003-11-30 Thorsten Kukuk <kukuk@suse.de>
2904
2905 * sysdeps/pthread/configure.in: Remove broken declaration in C
2906 cleanup handling check.
2907
8ca203e6
AJ
29082003-11-30 Andreas Jaeger <aj@suse.de>
2909
2910 * Makefile (CFLAGS-pt-initfini.s): Add $(fno_unit_at_a_time).
2911 * sysdeps/unix/sysv/linux/x86_64/Makefile (CFLAGS-pt-initfini.s):
2912 Likewise.
2913
46bf9de7
UD
29142003-11-27 Jakub Jelinek <jakub@redhat.com>
2915
2916 * sysdeps/unix/sysv/linux/internaltypes.h (ATTR_FLAG_OLDATTR): Define.
2917 * pthread_attr_destroy.c: Include shlib-compat.h.
2918 (__pthread_attr_destroy): Return immediately if ATTR_FLAG_OLDATTR
2919 is set in iattr->flags.
2920 * pthread_attr_init.c (__pthread_attr_init_2_0): Set ATTR_FLAG_OLDATTR.
2921
1d9b73ab
UD
29222003-11-21 Jakub Jelinek <jakub@redhat.com>
2923
2924 * Makefile (distribute): Add tst-cleanup4aux.c.
2925
2926 * tst-cond12.c (prepare): Add prototype. Move after test-skeleton.c
2927 include.
2928
53f9084e
UD
29292003-11-21 Ulrich Drepper <drepper@redhat.com>
2930
1d9b73ab
UD
2931 * tst-cond12.c (do_test): If USE_COND_SIGNAL is defined, use
2932 pthread_cond_signal.
2933
e42a990e
UD
2934 * sysdeps/pthread/pthread_cond_wait.c (__pthread_cond_wait): Don't
2935 store mutex address if the current value is ~0l.
2936 * sysdeps/pthread/pthread_cond_timedwait.c
2937 (__pthread_cond_timedwait): Likewise.
2938 * sysdeps/pthread/pthread_cond_broadcast.c
2939 (__pthread_cond_broadcast): Don't use requeue for pshared
2940 condvars.
2941
2942 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
2943 (__pthread_cond_wait): Don't store mutex address if the current
2944 value is ~0l.
2945 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
2946 (__pthread_cond_timedwait): Likewise.
2947 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S
2948 (__pthread_cond_broadcast): Don't use requeue for pshared
2949 condvars.
2950
2951 * pthread_cond_init.c (__pthread_cond_init): Initialize __mutex
2952 element with ~0l for pshared condvars, with NULL otherwise.
2953
2954 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S
2955 (__pthread_cond_wait): Don't store mutex address if the current
2956 value is ~0l.
2957 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
2958 (__pthread_cond_timedwait): Likewise.
2959 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S
2960 (__pthread_cond_broadcast): Don't use requeue for pshared
2961 condvars.
2962
bf68b236 2963 * Makefile: Add rules to build and run tst-cond12 and tst-cond13.
53f9084e 2964 * tst-cond12.c: New file.
bf68b236 2965 * tst-cond13.c: New file.
53f9084e 2966
9780c971
UD
29672003-11-17 Ulrich Drepper <drepper@redhat.com>
2968
2969 * sysdeps/pthread/configure.in: Make missing forced unwind support
2970 fatal.
2971
74e12fbc
UD
29722003-11-11 Ulrich Drepper <drepper@redhat.com>
2973
2974 * pthreadP.h: Don't declare __pthread_unwind as weak inside libpthread.
2975
c685b2b0
UD
29762003-11-06 Ulrich Drepper <drepper@redhat.com>
2977
2978 * Makefile: Add magic to clean up correctly.
2979
44e94149
UD
29802003-11-05 Jakub Jelinek <jakub@redhat.com>
2981
2982 * unwind.c (FRAME_LEFT): Define.
2983 (unwind_stop): Handle old style cleanups here.
2984 (__pthread_unwind): Handle old style cleanups only if
2985 !HAVE_FORCED_UNWIND.
2986 * Makefile (tests): Add tst-cleanup4 and tst-cleanupx4.
2987 (CFLAGS-tst-cleanupx4.c): Add -fexceptions.
2988 ($(objpfx)tst-cleanup4): Depend on $(objpfx)tst-cleanup4aux.o.
2989 ($(objpfx)tst-cleanupx4): Likewise.
2990 * tst-cleanup4.c: New test.
2991 * tst-cleanup4aux.c: New.
2992 * tst-cleanupx4.c: New test.
2993
c28422b5
UD
29942003-11-04 Ulrich Drepper <drepper@redhat.com>
2995
2996 * sysdeps/pthread/bits/stdio-lock.h: Use lll_*lock instead of
2997 lll_mutex_*lock macros to skip atomic operations on some archs.
2998
27176677
UD
29992003-11-03 Ulrich Drepper <drepper@redhat.com>
3000
3001 * sysdeps/pthread/tst-timer.c (main): Initialize
3002 sigev2.sigev_value as well.
3003
026395a2
RM
30042003-10-15 Roland McGrath <roland@redhat.com>
3005
3006 * sysdeps/pthread/configure.in: Barf if visibility attribute support
3007 is missing.
3008 * sysdeps/pthread/configure: Regenerated.
3009
fa3cbe3d
UD
30102003-10-09 Kaz Kojima <kkojima@rr.iij4u.or.jp>
3011
3012 * sysdeps/unix/sysv/linux/sh/lowlevellock.h: Completely revamp the
3013 locking macros. No distinction between normal and mutex locking
3014 anymore.
3015 * sysdeps/unix/sysv/linux/sh/lowlevellock.S: Rewrite mutex locking.
3016 Merge bits from lowlevelmutex.S we still need.
3017 * sysdeps/unix/sysv/linux/sh/libc-lowlevelmutex.S: Remove.
3018 * sysdeps/unix/sysv/linux/sh/lowlevelmutex.S: Likewise.
3019 * sysdeps/unix/sysv/linux/sh/not-cancel.h: New file.
3020 * sysdeps/unix/sysv/linux/sh/pthread_barrier_wait.S: Adjust for
3021 new mutex implementation.
3022 * sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S: Likewise.
3023 * sysdeps/unix/sysv/linux/sh/pthread_cond_signal.S: Likewise.
3024 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise.
3025 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Likewise.
3026 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: Likewise.
3027 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S: Likewise.
3028 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S: Likewise.
3029 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S: Likewise.
3030 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: Likewise.
3031 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h (PSEUDO): Also defined
3032 symbol for entry point to avoid cancellation.
3033
e700a908
UD
30342003-10-07 Jakub Jelinek <jakub@redhat.com>
3035
3036 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Backout 2003-10-02
3037 changes.
3038 (SAVE_OLDTYPE_0): Fix a typo.
3039
c70a86b6
UD
30402003-10-03 Ulrich Drepper <drepper@redhat.com>
3041
3042 * sysdeps/unix/sysv/linux/i386/pthread_once.S (__pthread_once):
3043 Check __sigsetjmp return value. Reported by Daniel Jacobowitz.
3044
134abcb5
UD
30452003-10-02 Ulrich Drepper <drepper@redhat.com>
3046
3047 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h (DOCARGS_1): Use
3048 correct offset.
3049
b77ca0e8
UD
30502003-10-02 Jakub Jelinek <jakub@redhat.com>
3051
3052 * Makefile (tests): Add tst-cancel19.
3053 * tst-cancel19.c: New test.
3054
4d961dc7
UD
30552003-10-02 Ulrich Drepper <drepper@redhat.com>
3056
3057 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Fix saving and
3058 restoring of the old cancellation type.
3059
1d5b20ad 30602003-09-30 Jakub Jelinek <jakub@redhat.com>
94ae6d75 3061
1d5b20ad
UD
3062 * sysdeps/pthread/malloc-machine.h: Remove misleading comment.
3063
4106a403
RM
30642003-09-27 Wolfram Gloger <wg@malloc.de>
3065
4d961dc7 3066 * sysdeps/pthread/malloc-machine.h: New file
94ae6d75 3067
fca9d8e4
RM
30682003-09-24 Roland McGrath <roland@redhat.com>
3069
3070 * allocatestack.c (__make_stacks_executable): Don't ignore return
3071 value from _dl_make_stack_executable.
3072
c9c60884
UD
30732003-09-24 Ulrich Drepper <drepper@redhat.com>
3074
69c9fa04
UD
3075 * allocatestack.c (__make_stacks_executable): Also change
3076 permission of the currently unused stacks.
3077
279f1143
UD
3078 * allocatestack.c (change_stack_perm): Split out from
3079 __make_stacks_executable.
3080 (allocate_stack): If the required permission changed between the time
3081 we started preparing the stack and queueing it, change the permission.
3082 (__make_stacks_executable): Call change_stack_perm.
3083
c9c60884
UD
3084 * Makefile: Build tst-execstack-mod locally.
3085 * tst-execstack-mod.c: New file.
3086
54ee14b3
UD
30872003-09-23 Jakub Jelinek <jakub@redhat.com>
3088
3089 * Makefile (tests): Only add tst-execstack if have-z-execstack is yes.
3090
30912003-09-23 Roland McGrath <roland@redhat.com>
3092
3093 * tst-execstack.c: New file.
3094 * Makefile (tests): Add it.
3095 ($(objpfx)tst-execstack, $(objpfx)tst-execstack.out): New targets.
3096 (LDFLAGS-tst-execstack): New variable.
3097
3098 * allocatestack.c (allocate_stack): Use GL(dl_stack_flags) to decide
3099 whether to use PROT_EXEC for stack mmap.
3100 (__make_stacks_executable): New function.
3101 * pthreadP.h: Declare it.
3102 * init.c (__pthread_initialize_minimal_internal): Set
3103 GL(dl_make_stack_executable_hook) to that.
3104
365b1602
UD
31052003-09-22 Ulrich Drepper <drepper@redhat.com>
3106
3107 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Adjust for latest
3108 recommendation from AMD re avoidance of lock prefix.
3109
39358e8b
UD
31102003-09-22 Jakub Jelinek <jakub@redhat.com>
3111
3112 * sysdeps/unix/sysv/linux/lowlevellock.c (__lll_timedlock_wait): Use
3113 lll_futex_timed_wait instead of lll_futex_wait.
3114 * sysdeps/unix/sysv/linux/s390/lowlevellock.c: Removed.
3115 * sysdeps/unix/sysv/linux/s390/lowlevelmutex.c: Removed.
3116 * sysdeps/unix/sysv/linux/s390/libc-lowlevellock.c: Removed.
3117 * sysdeps/unix/sysv/linux/s390/libc-lowlevelmutex.c: Removed.
3118 * sysdeps/unix/sysv/linux/s390/sem_trywait.c: Removed.
3119 * sysdeps/unix/sysv/linux/s390/sem_wait.c: Removed.
3120 * sysdeps/unix/sysv/linux/s390/sem_post.c: Removed.
3121 * sysdeps/unix/sysv/linux/s390/sem_timedwait.c: Removed.
3122 * sysdeps/unix/sysv/linux/s390/lowlevellock.h: Include atomic.h.
3123 Completely revamp the locking macros. No distinction between
3124 normal and mutex locking anymore.
3125 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h: Likewise.
3126 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (__lll_lock_wait,
3127 __lll_lock_timedwait): Fix prototypes.
3128 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h (__lll_lock_wait,
3129 __lll_lock_timedwait): Likewise.
3130 (lll_mutex_lock, lll_mutex_cond_lock): Use _val instead of _bool
3131 macros, add __builtin_expect.
3132 (lll_mutex_timedlock): Likewise. Fix return value.
3133 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevelmutex.S: Removed.
3134 * sysdeps/unix/sysv/linux/i386/i586/libc-lowlevelmutex.S: Removed.
3135 * sysdeps/unix/sysv/linux/i386/i586/lowlevelmutex.S: Removed.
3136 * sysdeps/unix/sysv/linux/i386/i686/libc-lowlevelmutex.S: Removed.
3137 * sysdeps/unix/sysv/linux/i386/i686/lowlevelmutex.S: Removed.
3138 * sysdeps/unix/sysv/linux/x86_64/libc-lowlevelmutex.S: Removed.
3139 * sysdeps/unix/sysv/linux/lowlevelmutex.c: Removed.
3140 * sysdeps/unix/sysv/linux/libc-lowlevelmutex.c: Removed.
3141
9d08fbbb
UD
31422003-09-22 Ulrich Drepper <drepper@redhat.com>
3143
c0df57e1
UD
3144 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
3145 (__lll_mutex_lock_wait): Minor optimization to avoid one atomic
3146 operation if possible.
3147
9d08fbbb
UD
3148 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Don't play tricks
3149 like jumping over the lock prefix.
3150
71451de2
UD
31512003-09-21 Ulrich Drepper <drepper@redhat.com>
3152
3153 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Completely revamp the
3154 locking macros. No distinction between normal and mutex locking
3155 anymore.
3a226d33 3156 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
bc1989aa
UD
3157 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h: Likewise.
3158 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Likewise.
71451de2
UD
3159 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Rewrite mutex
3160 locking. Merge bits from lowlevelmutex.S we still need.
3a226d33 3161 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Likewise.
bc1989aa 3162 * sysdeps/unix/sysv/linux/lowlevellock.c: Likewise.
71451de2 3163 * sysdeps/unix/sysv/linux/i386/i486/lowlevelmutex.S: Removed.
3a226d33 3164 * sysdeps/unix/sysv/linux/x86_64/lowlevelmutex.S: Removed.
71451de2
UD
3165 * Makefile (routines): Remove libc-lowlevelmutex.
3166 (libpthread-rountines): Remove lowlevelmutex.
3a226d33
UD
3167 * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S: Adjust
3168 for new mutex implementation.
3169 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S: Likewise.
3170 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
3171 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
3172 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Likewise.
3173 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
3174 Likewise.
3175 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
3176 Likewise.
3177 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S: Likewise.
3178 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
3179 * sysdeps/unix/sysv/linux/x86_64/pthread_barrier_wait.S: Likewise
3180 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S: Likewise.
3181 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
3182 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
3183 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S: Likewise.
3184 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S:
3185 Likewise.
3186 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S:
3187 Likewise.
3188 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_unlock.S: Likewise.
3189 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S: Likewise.
3190 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S: Likewise.
3191 Don't use requeue.
3192 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S: Likewise.
bc1989aa 3193 * sysdeps/pthread/pthread_cond_signal.c: Don't use requeue.
71451de2 3194
8f31c0ef
UD
31952003-09-20 Ulrich Drepper <drepper@redhat.com>
3196
56a4aa98
UD
3197 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Don't match memory
3198 in parameters of asm with output parameters.
3199
8f31c0ef
UD
3200 * pthread_mutex_unlock.c (__pthread_mutex_unlock_usercnt): Change
3201 type of DECR parameter to int.
3202 * pthreadP.h: Adjust prototype of __pthread_mutex_unlock_usercnt.
3203
8b8074da
UD
32042003-09-18 Jakub Jelinek <jakub@redhat.com>
3205
3206 * tst-attr3.c (tf, do_test): Print stack start/end/size and
3207 guardsize for each thread.
3208
65af7e61
UD
32092003-09-17 Jakub Jelinek <jakub@redhat.com>
3210
9ba96eda
UD
3211 * sysdeps/pthread/pthread.h (pthread_getattr_np): Clarify usage.
3212 * sysdeps/unix/sysv/linux/pthread_attr_setaffinity.c
3213 (pthread_attr_setaffinity_np): Handle cpuset == NULL.
3214
06f6ca90
UD
3215 * sysdeps/unix/sysv/linux/pthread_attr_getaffinity.c
3216 (pthread_attr_getaffinity_np): Don't segfault if iattr->cpuset is
3217 NULL.
3218 * pthread_getattr_np.c: Set cpuset using pthread_getaffinity_np.
3219 * pthreadP.h (pthread_getaffinity_np): Add hidden_proto.
3220 * sysdeps/unix/sysv/linux/pthread_getaffinity.c
3221 (pthread_getaffinity_np): Add hidden_def.
3222
3223 * Makefile (tests): Add tst-attr3.
3224 * tst-attr3.c: New test.
3225
65af7e61
UD
3226 * sysdeps/i386/Makefile (CFLAGS-tst-align.c): Remove.
3227
3402852c
UD
32282003-09-15 Jakub Jelinek <jakub@redhat.com>
3229
3230 * sysdeps/i386/Makefile (CFLAGS-pthread_create.c,
3231 CFLAGS-tst-align.c): Add -mpreferred-stack-boundary=4.
3232
a4db3439
UD
32332003-09-17 Jakub Jelinek <jakub@redhat.com>
3234
3235 * Makefile (CFLAGS-tst-align.c): Add $(stack-align-test-flags).
3236 * tst-align.c: Include tst-stack-align.h.
3237 (tf, do_test): Use TEST_STACK_ALIGN macro.
3238
32392003-09-17 Ulrich Drepper <drepper@redhat.com>
3240
3241 * pthread_attr_init.c (__pthread_attr_init_2_0): Remove unused
3242 variable.
3243
92ce4676
UD
32442003-09-16 Ulrich Drepper <drepper@redhat.com>
3245
3246 * pthread_getattr_np.c (pthread_getattr_np): Correctly fill in the
3247 stack-related values for the initial thread.
3248
e07bb02a
UD
32492003-09-15 Jakub Jelinek <jakub@redhat.com>
3250
3251 * Makefile (CFLAGS-pthread_once.c): Add $(uses-callbacks).
3252
d087b5dc
UD
32532003-09-11 Ulrich Drepper <drepper@redhat.com>
3254
3255 * pthread_mutex_lock.c: Minor code rearrangements.
3256
7f08f55a
RM
32572003-09-05 Roland McGrath <roland@redhat.com>
3258
3259 * pthread_create.c (__pthread_pthread_sizeof_descr): Removed.
3260 Instead, include ../nptl_db/db_info.c to do its magic.
3261 * pthread_key_create.c (__pthread_pthread_keys_max): Removed.
3262 (__pthread_pthread_key_2ndlevel_size): Likewise.
3263 * sysdeps/alpha/tls.h (DB_THREAD_SELF): New macro.
3264 * sysdeps/i386/tls.h (DB_THREAD_SELF): New macro.
3265 * sysdeps/ia64/tls.h (DB_THREAD_SELF): New macro.
3266 * sysdeps/powerpc/tls.h (DB_THREAD_SELF): New macro.
3267 * sysdeps/s390/tls.h (DB_THREAD_SELF): New macro.
3268 * sysdeps/sh/tls.h (DB_THREAD_SELF): New macro.
3269 * sysdeps/sparc/tls.h (DB_THREAD_SELF): New macro.
3270 * sysdeps/x86_64/tls.h (DB_THREAD_SELF): New macro.
3271 * sysdeps/alpha/td_ta_map_lwp2thr.c: File removed.
3272 * sysdeps/generic/td_ta_map_lwp2thr.c: File removed.
3273 * sysdeps/i386/td_ta_map_lwp2thr.c: File removed.
3274 * sysdeps/ia64/td_ta_map_lwp2thr.c: File removed.
3275 * sysdeps/powerpc/td_ta_map_lwp2thr.c: File removed.
3276 * sysdeps/s390/td_ta_map_lwp2thr.c: File removed.
3277 * sysdeps/sh/td_ta_map_lwp2thr.c: File removed.
3278 * sysdeps/sparc/td_ta_map_lwp2thr.c: File removed.
3279 * sysdeps/x86_64/td_ta_map_lwp2thr.c: File removed.
3280
806e4a4a
UD
32812003-09-08 Ulrich Drepper <drepper@redhat.com>
3282
3283 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Change type
3284 of pthread_t to be compatible with LT.
3285 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: Likewise.
3286 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Likewise.
3287 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
3288 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
3289 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h: Likewise.
3290 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
3291 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Likewise.
3292
17f83e56
UD
32932003-09-04 Ulrich Drepper <drepper@redhat.com>
3294
3295 * sysdeps/unix/sysv/linux/i386/not-cancel.h (fcntl_not_cancel): Define.
3296
58e8ec84
UD
32972003-09-04 Jakub Jelinek <jakub@redhat.com>
3298
3299 * unwind-forcedunwind.c: Move to...
3300 * sysdeps/pthread/unwind-forcedunwind.c: ...here.
3301 (pthread_cancel_init): Use ARCH_CANCEL_INIT if defined.
3302 * sysdeps/pthread/jmpbuf-unwind.h: New file.
3303 * sysdeps/unix/sysv/linux/ia64/unwind-forcedunwind.c: New file.
3304 * sysdeps/unix/sysv/linux/ia64/jmpbuf-unwind.h: New file.
3305 * unwind.c: Include jmpbuf-unwind.h.
3306 (unwind_stop): Use _JMPBUF_CFA_UNWINDS macro.
3307
abf1cf21
JJ
33082003-09-02 Jakub Jelinek <jakub@redhat.com>
3309
4a244f0d
UD
3310 * sysdeps/unix/sysv/linux/ia64/bits/local_lim.h: New file.
3311 * sysdeps/unix/sysv/linux/ia64/Versions (libpthread): Export
3312 pthread_attr_setstack and pthread_attr_setstacksize @@GLIBC_2.3.3.
3313 * sysdeps/unix/sysv/linux/alpha/bits/local_lim.h: New file.
3314 * sysdeps/unix/sysv/linux/alpha/Versions: New file.
3315 * sysdeps/unix/sysv/linux/sparc/bits/local_lim.h: New file.
3316 * sysdeps/unix/sysv/linux/sparc/Versions: New file.
3317 * pthread_attr_setstack.c (__old_pthread_attr_setstack): New function.
3318 (pthread_attr_setstack): If PTHREAD_STACK_MIN != 16384, export
3319 as @@GLIBC_2.3.2 and also export compatibility @GLIBC_2.2.
3320 * pthread_attr_setstacksize.c (__old_pthread_attr_setstacksize): New
3321 function.
3322 (pthread_attr_setstacksize): If PTHREAD_STACK_MIN != 16384, export
3323 as @@GLIBC_2.3.2 and also export compatibility @GLIBC_2.1.
3324 * Makefile (tests): Add tst-stack2.
3325 * tst-stack2.c: New test.
3326 * tst-stack1.c: Include limits.h and sys/param.h.
3327 (do_test): Set size to MAX (4 * getpagesize (), PTHREAD_STACK_MIN).
3328
e29ef647
UD
3329 * pthread_condattr_setpshared.c: Include errno.h.
3330 (pthread_condattr_setpshared): Return EINVAL if pshared
3331 is neither PTHREAD_PROCESS_PRIVATE nor PTHREAD_PROCESS_SHARED.
3332
5777d565
UD
3333 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h (PSEUDO): Also
3334 defined symbol for entry point to avoid cancellation.
3335 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h (PSEUDO):
3336 Likewise.
3337 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h (PSEUDO):
3338 Likewise.
3339 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h (PSEUDO):
3340 Likewise.
3341 * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h (PSEUDO):
3342 Likewise.
3343 * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h (PSEUDO):
3344 Likewise.
3345 * sysdeps/unix/sysv/linux/i386/not-cancel.h (__open_nocancel,
3346 __close_nocancel, __read_nocancel, __write_nocancel,
3347 __waitpid_nocancel): Add attribute_hidden. If not in libc.so,
3348 libpthread.so or librt.so, define to corresponding function
3349 without _nocancel suffix.
3350 * sysdeps/unix/sysv/linux/s390/not-cancel.h: New file.
3351 * sysdeps/unix/sysv/linux/powerpc/not-cancel.h: New file.
3352 * sysdeps/unix/sysv/linux/sparc/not-cancel.h: New file.
3353
abf1cf21
JJ
3354 * sysdeps/unix/sysv/linux/x86_64/not-cancel.h: Fix a typo.
3355
8348dcc8
UD
33562003-09-02 Ulrich Drepper <drepper@redhat.com>
3357
3358 * sysdeps/unix/sysv/linux/i386/not-cancel.h: New file.
1e03e0af 3359 * sysdeps/unix/sysv/linux/x86_64/not-cancel.h: New file.
8348dcc8
UD
3360
3361 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Make sure the code
3362 in subsections has a symbol associated with it.
3363
3364 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h (PSEUDO): Also
3365 defined symbol for entry point to avoid cancellation.
3366 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h (PSEUDO): Likewise.
3367
c874a32e
UD
33682003-09-01 Jakub Jelinek <jakub@redhat.com>
3369
3370 * Makefile (tests): Add tst-tls5.
3371 (module-names): Add tst-tls5mod{,a,b,c,d,e,f}.
3372 ($(objpfx)tst-tls5mod{,a,b,c,d,e,f}.so-no-z-defs): Set to yes.
3373 ($(objpfx)tst-tls5): New.
3374 ($(objpfx)tst-tls6.out): Likewise.
3375 (tests): Depend on $(objpfx)tst-tls6.out.
3376 * tst-tls3.c: Include stdint.h and pthreaddef.h.
3377 (do_test): Check pthread_self () return value alignment.
3378 * tst-tls3mod.c: Include stdint.h and pthreaddef.h.
3379 (tf): Check pthread_self () return value alignment.
3380 * tst-tls5.c: New test.
3381 * tst-tls5.h: New.
3382 * tst-tls5mod.c: New.
3383 * tst-tls5moda.c: New.
3384 * tst-tls5modb.c: New.
3385 * tst-tls5modc.c: New.
3386 * tst-tls5modd.c: New.
3387 * tst-tls5mode.c: New.
3388 * tst-tls5modf.c: New.
3389 * tst-tls6.sh: New test.
3390
c503d3dc
UD
3391 * sysdeps/pthread/pthread-functions.h (struct pthread_functions): Add
3392 ptr___pthread_cond_timedwait and ptr___pthread_cond_timedwait_2_0.
3393 * init.c (pthread_functions): Initialize them.
3394 * forward.c (pthread_cond_timedwait@GLIBC_2.0,
3395 pthread_cond_timedwait@@GLIBC_2.3.2): New forwards.
3396 * Versions (libc): Export pthread_cond_timedwait@GLIBC_2.0,
3397 pthread_cond_timedwait@@GLIBC_2.3.2.
3398
48614753
JJ
33992003-09-01 Jakub Jelinek <jakub@redhat.com>
3400
56a1b877
JJ
3401 * sysdeps/unix/sysv/linux/alpha/timer_create.c: New file.
3402 * sysdeps/unix/sysv/linux/alpha/timer_delete.c: New file.
3403 * sysdeps/unix/sysv/linux/alpha/timer_getoverr.c: New file.
3404 * sysdeps/unix/sysv/linux/alpha/timer_gettime.c: New file.
3405 * sysdeps/unix/sysv/linux/alpha/timer_settime.c: New file.
3406 * sysdeps/unix/sysv/linux/alpha/Versions: New file.
3407
3408 * sysdeps/unix/sysv/linux/alpha/aio_cancel.c: New file.
3409
48614753
JJ
3410 * sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h: Define
3411 _POSIX_THREAD_PRIORITY_SCHEDULING.
3412 * sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h: Likewise.
3413
28c97261
UD
34142003-08-31 Ulrich Drepper <drepper@redhat.com>
3415
eef80cf8
UD
3416 * sysdeps/pthread/bits/stdio-lock.h (_IO_acquire_lock): Avoid
3417 nested function, use static inline function from libio.h.
3418 Code by Richard Henderson.
3419
28c97261
UD
3420 * sysdeps/pthread/bits/libc-lock.h: Mark pthread_setcancelstate as
3421 weak.
3422
cd2fbe58
UD
34232003-08-30 Jakub Jelinek <jakub@redhat.com>
3424
3425 * sysdeps/unix/sysv/linux/sparc/sparc64/Versions: New file.
3426 * sysdeps/unix/sysv/linux/sparc/sparc64/timer_create.c: New file.
3427 * sysdeps/unix/sysv/linux/sparc/sparc64/timer_delete.c: New file.
3428 * sysdeps/unix/sysv/linux/sparc/sparc64/timer_getoverr.c: New file.
3429 * sysdeps/unix/sysv/linux/sparc/sparc64/timer_gettime.c: New file.
3430 * sysdeps/unix/sysv/linux/sparc/sparc64/timer_settime.c: New file.
3431 * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h: New file.
3432 * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h: New file.
3433 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: New file.
3434 * sysdeps/unix/sysv/linux/sparc/bits/semaphore.h: New file.
3435 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h: New file.
3436 * sysdeps/unix/sysv/linux/sparc/pthread_once.c: New file.
3437 * sysdeps/unix/sysv/linux/sparc/pt-vfork.S: New file.
3438 * sysdeps/unix/sysv/linux/sparc/fork.c: New file.
3439 * sysdeps/unix/sysv/linux/sparc/aio_cancel.c: New file.
3440 * sysdeps/sparc/sparc32/sparcv9/pthread_spin_lock.c: New file.
3441 * sysdeps/sparc/sparc32/sparcv9/pthread_spin_trylock.c: New file.
3442 * sysdeps/sparc/sparc32/sparcv9/pthread_spin_unlock.c: New file.
3443 * sysdeps/sparc/sparc32/pthread_spin_lock.c: New file.
3444 * sysdeps/sparc/sparc32/pthread_spin_trylock.c: New file.
3445 * sysdeps/sparc/sparc32/pthreaddef.h: New file.
3446 * sysdeps/sparc/sparc64/pthread_spin_lock.c: New file.
3447 * sysdeps/sparc/sparc64/pthread_spin_trylock.c: New file.
3448 * sysdeps/sparc/sparc64/pthread_spin_unlock.c: New file.
3449 * sysdeps/sparc/sparc64/pthreaddef.h: New file.
3450 * sysdeps/sparc/tls.h: New file.
3451 * sysdeps/sparc/tcb-offsets.sym: New file.
3452 * sysdeps/sparc/Makefile: New file.
3453 * sysdeps/sparc/td_ta_map_lwp2thr.c: New file.
3454 * init.c [__sparc__] (__NR_set_tid_address): Define.
3455
feda52c0
UD
34562003-08-29 Jakub Jelinek <jakub@redhat.com>
3457
3458 * sysdeps/pthread/bits/stdio-lock.h (_IO_acquire_lock,
3459 _IO_release_lock): Define.
3460
7c868816
JJ
34612003-08-29 Jakub Jelinek <jakuB@redhat.com>
3462
0261d33f 3463 * tst-cancel4.c (tf_sigwait, tf_sigwaitinfo, tf_sigtimedwait): Add
7c868816
JJ
3464 sigemptyset before sigaddset. Reported by jreiser@BitWagon.com.
3465
68b9e1ae
UD
34662003-08-27 Ulrich Drepper <drepper@redhat.com>
3467
3468 * sysdeps/pthread/pthread.h (pthread_exit): Remove __THROW.
3469 (__pthread_cleanup_class): Add missing return types of member
3470 functions.
3471
13b3edfc
UD
34722003-08-26 Steven Munroe <sjmunroe@us.ibm.com>
3473
3474 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h
3475 (lll_mutex_unlock_force): Add memory barrier between store and futex
3476 syscall.
3477
bb606fbe
UD
34782003-08-25 Ulrich Drepper <drepper@redhat.com>
3479
3480 * tst-cancel4.c (do_test): Also unlink tempfname and remove
3481 tempmsg in first loop.
3482
ee4e5a3d
UD
34832003-08-18 Ulrich Drepper <drepper@redhat.com>
3484
3485 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define
3486 _POSIX_THREAD_PRIORITY_SCHEDULING.
3487 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
3488
334fcf2a
UD
34892003-08-07 Jakub Jelinek <jakub@redhat.com>
3490
3491 * sysdeps/pthread/bits/libc-lock.h [_LIBC && SHARED]
3492 (__rtld_lock_default_lock_recursive,
3493 __rtld_lock_default_unlock_recursive): Define.
3494 [_LIBC && SHARED] (__rtld_lock_lock_recursive,
3495 __rtld_lock_unlock_recursive): Define using
3496 GL(_dl_rtld_*lock_recursive).
3497 * init.c (__pthread_initialize_minimal_internal): Initialize
3498 _dl_rtld_lock_recursive and _dl_rtld_unlock_recursive.
3499 Lock GL(_dl_load_lock) the same number of times as
3500 GL(_dl_load_lock) using non-mt implementation was nested.
3501
3502 * pthreadP.h (__pthread_cleanup_upto): Add hidden_proto.
3503 * pt-longjmp.c (__pthread_cleanup_upto): Add hidden_def.
3504
a30fb2df
UD
35052003-08-06 Jakub Jelinek <jakub@redhat.com>
3506
3507 * tst-cancel17.c (do_test): Make len2 maximum of page size and
3508 PIPE_BUF.
3509
ce0d30a0
JJ
35102003-08-07 Jakub Jelinek <jakub@redhat.com>
3511
3512 * pthread_create.c (__pthread_create_2_0): Clear new_attr.cpuset.
3513
9c988b83
UD
35142003-08-03 Jakub Jelinek <jakub@redhat.com>
3515
3516 * sysdeps/pthread/createthread.c (do_clone): Move error handling
3517 to first syscall error check. Move syscall error check for tkill
3518 into __ASSUME_CLONE_STOPPED #ifdef.
3519
5c5252bd
UD
35202003-08-02 Ulrich Drepper <drepper@redhat.com>
3521
f1205aa7
UD
3522 * sysdeps/pthread/createthread.c (do_clone): If __ASSUME_CLONE_STOPPED
3523 is not defined, do explicit synchronization.
3524 (create_thread): Do not lock pd->lock here. If __ASSUME_CLONE_STOPPED
3525 is not defined also unlock pd->lock for non-debugging case in case
3526 it is necessary.
3527 * pthread_create.c (start_thread): Always get and release pd->lock
3528 if __ASSUME_CLONE_STOPPED is not defined.
3529 (start_thread_debug): Removed. Adjust users.
3530 * allocatestack.c (allocate_stack): Always initialize lock if
3531 __ASSUME_CLONE_STOPPED is not defined.
3532 * Makefile (tests): Add tst-sched1.
3533 * tst-sched1.c: New file.
3534
5c5252bd
UD
3535 * sysdeps/pthread/createthread.c (do_clone): Only use
3536 sched_setschduler and pass correct parameters.
3537
973d66e4
UD
35382003-07-31 Jakub Jelinek <jakub@redhat.com>
3539
3540 * sysdeps/pthread/pthread.h (pthread_attr_setstackaddr,
3541 pthread_attr_setstacksize): Change PTHREAD_STACK_SIZE to
3542 PTHREAD_STACK_MIN in comments.
3543
d347a4ab
UD
35442003-07-31 Jakub Jelinek <jakub@redhat.com>
3545
3546 * sysdeps/pthread/pthread_cond_timedwait.c (__pthread_cond_timedwait):
3547 Shut up warnings if INTERNAL_SYSCALL_ERROR_P does not use its first
3548 argument.
3549 * sysdeps/unix/sysv/linux/timer_create.c (timer_create): Likewise.
3550 * pthread_condattr_setclock.c (pthread_condattr_setclock): Likewise.
3551 * sysdeps/unix/sysv/linux/s390/jmp-unwind.c: Include pthreaddef.h.
3552 (__pthread_cleanup_upto): Fix prototype.
3553 (_longjmp_unwind): Adjust caller.
3554 * sysdeps/unix/sysv/linux/s390/lowlevellock.h (__lll_mutex_timedlock):
3555 Change second argument to const struct pointer.
3556 * tst-sem8.c (main): Remove unused s2 and s3 variables.
3557 * tst-sem9.c (main): Likewise.
3558 * unwind.c: Include string.h for strlen prototype.
3559
1b26e9a5
UD
35602003-07-31 Ulrich Drepper <drepper@redhat.com>
3561
3562 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
3563 (__pthread_cond_timedwait): Don't use cmov unless HAVE_CMOV is defined.
3564 * sysdeps/unix/sysv/linux/i386/i686/pthread_cond_timedwait.S:
3565 Define HAVE_CMOV.
3566 Patch by Nicholas Miell <nmiell@attbi.com>.
3567
adc12574
UD
35682003-07-30 Jakub Jelinek <jakub@redhat.com>
3569
3570 * init.c (__pthread_initialize_minimal_internal): Initialize
3571 GL(dl_init_static_tls).
3572 * pthreadP.h (__pthread_init_static_tls): New prototype.
3573 * allocatestack.c (init_one_static_tls, __pthread_init_static_tls):
3574 New functions.
3575 * Makefile (tests): Add tst-tls4.
3576 (modules-names): Add tst-tls4moda and tst-tls4modb.
3577 ($(objpfx)tst-tls4): Link against libdl and libpthread.
3578 ($(objpfx)tst-tls4.out): Depend on tst-tls4moda.so and
3579 tst-tls4modb.so.
3580 * tst-tls4.c: New file.
3581 * tst-tls4moda.c: New file.
3582 * tst-tls4modb.c: New file.
3583
a7f6c66e
RM
35842003-06-19 Daniel Jacobowitz <drow@mvista.com>
3585
3586 * sysdeps/pthread/timer_create.c (timer_create): Call timer_delref
3587 before __timer_dealloc.
3588 * sysdeps/pthread/timer_routines.c (__timer_thread_find_matching):
3589 Don't call list_unlink.
3590
172ce013
RM
35912003-07-29 Roland McGrath <roland@redhat.com>
3592
3593 * Makefile [$(build-shared) = yes] (tests): Depend on $(test-modules).
3594
7b787f85
UD
35952003-07-25 Jakub Jelinek <jakub@redhat.com>
3596
3597 * tst-cancel17.c (do_test): Check if aio_cancel failed.
3598 Don't reuse struct aiocb A if it failed.
3599 Write fpathconf (fds[1], _PC_PIPE_BUF) + 2 bytes using aio_write,
3600 not just one byte, as that does not block.
3601
0e9d6240
UD
36022003-07-22 Jakub Jelinek <jakub@redhat.com>
3603
9d79e037
UD
3604 * sysdeps/pthread/unwind-resume.c: New file.
3605 * sysdeps/pthread/Makefile (routines, shared-only-routines): Add
3606 unwind-resume in csu subdir.
3607 (CFLAGS-unwind-resume.c, CFLAGS-rt-unwind-resume.c): Compile with
3608 exceptions.
3609 (librt-sysdep_routines, librt-shared-only-routines): Add
3610 rt-unwind-resume.
3611 * sysdeps/pthread/rt-unwind-resume.c: New file.
3612 * unwind-forcedunwind.c: New file.
3613 * Makefile (libpthread-routines): Add unwind-forcedunwind.
3614 (libpthread-shared-only-routines): Likewise.
3615 (CFLAGS-unwind-forcedunwind.c): Compile with exceptions.
3616 * pthreadP.h (pthread_cancel_init): New prototype.
3617 * pthread_cancel.c (pthread_cancel): Call pthread_cancel_init.
3618
3619 * sysdeps/pthread/createthread.c (do_thread, create_thread): Make
3620 attr argument const struct pthread_attr *.
3621
0e9d6240
UD
3622 * res.c (__res_state): Return __resp.
3623 * descr.h: Include resolv.h.
3624 (struct pthread): Add res field.
3625 * pthread_create.c: Include resolv.h.
3626 (start_thread): Initialize __resp.
3627 * Makefile (tests): Add tst-_res1.
3628 (module-names): Add tst-_res1mod1, tst-_res1mod2.
3629 ($(objpfx)tst-_res1mod2.so): Depend on $(objpfx)tst-_res1mod1.so.
3630 ($(objpfx)tst-_res1): Depend on $(objpfx)tst-_res1mod2.so and
3631 libpthread.
3632 * tst-_res1.c: New file.
3633 * tst-_res1mod1.c: New file.
3634 * tst-_res1mod2.c: New file.
3635
1a379ea0
UD
36362003-07-21 Ulrich Drepper <drepper@redhat.com>
3637
7e939b21
UD
3638 * sysdeps/pthread/createthread.c: Don't define CLONE_STOPPED.
3639
1a379ea0
UD
3640 * Makefile: Define various *-no-z-defs variables for test DSOs
3641 which has undefined symbols.
3642
ca86a763
UD
36432003-07-21 Steven Munroe <sjmunroe@us.ibm.com>
3644
3645 * sysdeps/unix/sysv/linux/powerpc/pthread_once.c (__pthread_once):
3646 Retry if the stwcx fails to store once_control.
3647
80f536db
UD
36482003-07-20 Ulrich Drepper <drepper@redhat.com>
3649
3650 * Makefile (libpthread-routines): Add pthread_attr_getaffinity and
3651 pthread_attr_setaffinity.
3652 * Versions [libpthread] (GLIBC_2.3.3): Likewise.
3653 * sysdeps/unix/sysv/linux/pthread_attr_getaffinity.c: New file.
3654 * sysdeps/unix/sysv/linux/pthread_attr_setaffinity.c: New file.
3655 * pthread_attr_destroy.c: Free cpuset element if allocated.
3656 * pthread_create.c: Pass iattr as additional parameter to
3657 create_thread.
3658 * sysdeps/pthread/createthread.c: If attribute is provided and
3659 a new thread is created with affinity set or scheduling parameters,
3660 start thread with CLONE_STOPPED.
3661 * sysdeps/pthread/pthread.h: Declare pthread_attr_getaffinity and
3662 pthread_attr_setaffinity.
3663 * sysdeps/unix/sysv/linux/internaltypes.h (struct pthread_attr): Add
3664 cpuset element.
3665
73299943
UD
36662003-07-15 Ulrich Drepper <drepper@redhat.com>
3667
3668 * tst-tcancel-wrappers.sh: lseek and llseek are not cancelation points.
3669
da35d15e
UD
36702003-07-14 Ulrich Drepper <drepper@redhat.com>
3671
3672 * sysdeps/pthread/configure.in: Require CFI directives also for
3673 ppc and s390.
3674
75540d8a
UD
36752003-07-15 Jakub Jelinek <jakub@redhat.com>
3676
3677 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h (PSEUDO):
3678 Add cfi directives.
3679
4a17085f
UD
36802003-07-12 Kaz Kojima <kkojima@rr.iij4u.or.jp>
3681
3682 * sysdeps/sh/tcb-offsets.sym: Add RESULT, TID, CANCELHANDLING and
3683 CLEANUP_JMP_BUF.
3684 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Use more
3685 registers as variables. Call __pthread_mutex_unlock_usercnt.
3686 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise.
3687 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: Store TID
3688 not self pointer in __writer. Compare with TID to determine
3689 deadlocks.
3690 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: Likewise.
3691 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S:
3692 Likewise.
3693 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S:
3694 Likewise.
3695 * sysdeps/unix/sysv/linux/sh/sem_wait.S: Add cancellation support.
3696 * sysdeps/unix/sysv/linux/sh/sem_timedwait.S: Likewise.
3697 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h: Define all the nice
3698 macros also when compiling librt.
3699
6080ecdf
UD
37002003-07-11 Jakub Jelinek <jakub@redhat.com>
3701
3702 * Makefile (CFLAGS-pthread_once.c): Add -fexceptions
3703 -fasynchronous-unwind-tables.
3704 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h
3705 (PSEUDO): Add cfi directives.
3706 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h (PSEUDO):
3707 Likewise.
3708 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h (PSEUDO):
3709 Likewise.
3710
da0c02ee
UD
37112003-07-08 Jakub Jelinek <jakub@redhat.com>
3712
3713 * pthreadP.h (__pthread_unwind_next, __pthread_register_cancel,
3714 __pthread_unregister_cancel): Add prototypes and hidden_proto.
3715 * unwind.c (__pthread_unwind_next): Add hidden_def.
3716 * cleanup.c (__pthread_register_cancel, __pthread_unregister_cancel):
3717 Likewise.
3718 * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S (__new_sem_wait):
3719 Use HIDDEN_JUMPTARGET to jump to __pthread_unwind.
3720 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S (sem_timedwait):
3721 Likewise.
3722 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S (sem_wait): Likewise.
3723 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S (sem_timedwait):
3724 Likewise.
3725 * sysdeps/unix/sysv/linux/i386/pthread_once.S (__pthread_once): Use
3726 HIDDEN_JUMPTARGET to call __pthread_register_cancel,
3727 __pthread_unregister_cancel and __pthread_unwind_next.
3728
57a5ea02
UD
37292003-07-04 Jakub Jelinek <jakub@redhat.com>
3730
3731 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h (PSEUDO): Use
3732 different symbol for the cancellation syscall wrapper and
3733 non-cancellation syscall wrapper.
3734 (PSEUDO_END): Define.
3735
d810b358
UD
37362003-07-05 Richard Henderson <rth@redhat.com>
3737
3738 * sysdeps/alpha/elf/pt-initfini.c: Avoid .ent/.end.
3739 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h (lll_futex_wait,
42d86dd6
RH
3740 lll_futex_timed_wait, lll_futex_wake, lll_futex_requeue): On success
3741 return actual return value from the syscall, not 0.
d810b358 3742
db54f488
UD
37432003-07-07 Ulrich Drepper <drepper@redhat.com>
3744
3745 * descr.h (struct pthread): Add pid field.
3746 * allocatestack.c (allocate_stack): Initialize pid field in descriptor.
3747 (__reclaim_stacks): Likewise.
3748 * init.c (sigcancel_handler): If __ASSUME_CORRECT_SI_PID is defined
3749 also check for PID of the signal source.
3750 (__pthread_initialize_minimal_internal): Also initialize pid field
3751 of initial thread's descriptor.
3752 * pthread_cancel.c: Use tgkill instead of tkill if possible.
3753 * sysdeps/unix/sysv/linux/fork.c: Likewise.
3754 * sysdeps/unix/sysv/linux/pt-raise.c: Likewise.
3755 * sysdeps/unix/sysv/linux/pthread_kill.c: Likewise.
3756 * sysdeps/unix/sysv/linux/raise.c: Likewise.
3757
5e497a41
UD
37582003-07-05 Ulrich Drepper <drepper@redhat.com>
3759
3760 * sysdeps/pthread/bits/libc-lock.h (__libc_cleanup_push): Renamed.
3761 Fix use of parameter.
3762 (__libc_cleanup_pop): Likewise.
3763
86a0c4fa
UD
37642003-07-04 Ulrich Drepper <drepper@redhat.com>
3765
3766 * init.c (sigcancel_handler): Change parameters to match handler
3767 for SA_SIGACTION. Check signal number and code to recognize
3768 invalid invocations.
3769
bdbecaa3
RM
37702003-07-03 Roland McGrath <roland@redhat.com>
3771
3772 * sysdeps/ia64/td_ta_map_lwp2thr.c (td_ta_map_lwp2thr):
3773 Apply sizeof (struct pthread) bias to r13 value.
3774
56421b23
UD
37752003-07-03 Ulrich Drepper <drepper@redhat.com>
3776
fbd90f6c
UD
3777 * sysdeps/pthread/configure.in: Require CFI directives.
3778
56421b23
UD
3779 * sysdeps/pthread/librt-cancellation.c (__pthread_unwind): Remove
3780 definition.
3781 * pthreadP.h (__pthread_unwind): Add hidden_proto if used in
3782 libpthread compilation.
3783 * unwind.c (__pthread_unwind): Add hidden_def.
3784 * Versions (libpthread) [GLIBC_PRIVATE]: Add __pthread_unwind.
3785
ca2b4cd7
UD
37862003-07-01 Ulrich Drepper <drepper@redhat.com>
3787
3788 * libc-cancellation.c (__libc_cleanup_routine): Define.
3789 * sysdeps/pthread/bits/libc-lock.h (__pthread_cleanup_push): Define.
3790 (__pthread_cleanup_pop): Define.
3791
f036e569
UD
37922003-07-01 Richard Henderson <rth@redhat.com>
3793
3794 * sysdeps/alpha/elf/pt-initfini.c: New file.
3795 * sysdeps/alpha/pthread_spin_lock.S: New file.
3796 * sysdeps/alpha/pthread_spin_trylock.S: New file.
3797 * sysdeps/alpha/pthreaddef.h: New file.
3798 * sysdeps/alpha/td_ta_map_lwp2thr.c: New file.
3799 * sysdeps/alpha/tls.h: New file.
3800 * sysdeps/unix/sysv/linux/alpha/Makefile: New file.
3801 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h: New file.
3802 * sysdeps/unix/sysv/linux/alpha/bits/semaphore.h: New file.
3803 * sysdeps/unix/sysv/linux/alpha/createthread.c: New file.
3804 * sysdeps/unix/sysv/linux/alpha/fork.c: New file.
3805 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h: New file.
3806 * sysdeps/unix/sysv/linux/alpha/pt-vfork.S: New file.
3807 * sysdeps/unix/sysv/linux/alpha/pthread_once.c: New file.
3808 * sysdeps/unix/sysv/linux/alpha/sem_post.c: New file.
3809 * sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h: New file.
3810
3b985826
UD
38112003-07-01 Ulrich Drepper <drepper@redhat.com>
3812
3813 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Add correct
3814 cleanup support and unwind info.
3815
3a4d1e1e
UD
38162003-06-30 Ulrich Drepper <drepper@redhat.com>
3817
3818 * sysdeps/unix/sysv/linux/i386/pthread_once.S (__pthread_once):
3819 Use correct cleanup handler registration. Add unwind info.
96c814d3
UD
3820 * sysdeps/unix/sysv/linux/unwindbuf.sym: New file.
3821 * sysdeps/unix/sysv/linux/Makefile: Add rule to build unwindbuf.h.
3a4d1e1e
UD
3822 * tst-once3.c: Add cleanup handler and check it is called.
3823 * tst-once4.c: Likewise.
3824 * tst-oncex3.c: New file.
3825 * tst-oncex4.c: New file.
3826 * Makefile: Add rules to build and run tst-oncex3 and tst-oncex4.
3827
e479cc8e
UD
38282003-06-29 Ulrich Drepper <drepper@redhat.com>
3829
3830 * sysdeps/pthread/configure.in: Check for C cleanup handling in gcc.
3831
7d7ff54c
UD
38322003-06-27 Ulrich Drepper <drepper@redhat.com>
3833
483e95d0
UD
3834 * tst-cancel4.c (tf_msgrcv): Use IPC_PRIVATE in msgget call.
3835 (tf_msgsnd): Likewise.
3836
7d7ff54c
UD
3837 * tst-cancel4.c (tf_msgrcv): Strengthen test against valid
3838 premature returns a bit more.
3839
7539c7ec
UD
38402003-06-26 Ulrich Drepper <drepper@redhat.com>
3841
3842 * sysdeps/pthread/librt-cancellation.c: Move __pthread_unwind
3843 definition to the front.
3844
3845 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Rename
3846 the cleanup functions to make the names unique. Fix dwarf opcode
3847 un unwind table.
3848 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Rename cleanup
3849 functions to make the names unique. Fix CFA offset for two blocks.
3850
0af6a1d9
UD
38512003-06-25 Ulrich Drepper <drepper@redhat.com>
3852
3853 * sysdeps/pthread/pthread.h (class __pthread_cleanup_class): Add
3854 missing closing braces.
3855 Patch by Christophe Saout <christophe@saout.de>.
3856
eef4a9f3
RM
38572003-06-24 Roland McGrath <roland@redhat.com>
3858
3859 * pthread_mutex_trylock.c (__pthread_mutex_trylock): Typo fix.
3860
4165d44d
UD
38612003-06-24 Ulrich Drepper <drepper@redhat.com>
3862
7f8f7b9d
UD
3863 * sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h: New file.
3864 * sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h: New file.
3865
4165d44d
UD
3866 * pthreadP.h: Declare __find_thread_by_id.
3867 * allocatestack.c [HP_TIMING_AVAIL]: Define __find_thread_by_id.
3868 * pthread_clock_gettime.c: Allow using other thread's clock.
3869 * pthread_clock_settime.c: Likewise.
3870 * sysdeps/pthread/pthread_getcpuclockid.c: Likewise.
3871 * Makefile: Add rules to build and run tst-clock2.
3872 * tst-clock2.c: New file.
3873
67b78ef9
UD
38742003-06-23 Ulrich Drepper <drepper@redhat.com>
3875
3876 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Rewrite
3877 to use exception-based cleanup handler.
3878 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
3879
3880 * tst-cond8.c (ch): Announce that we are done.
3881
3882 * pthreadP.h (__pthread_mutex_cond_lock): Mark with internal_function.
3883
3884 * tst-cancel17.c (tf): Retry aio_suspend in case of EINTR.
3885 Also test aio_suspend with timeout value.
3886
61623643
UD
38872003-06-22 Ulrich Drepper <drepper@redhat.com>
3888
3a4f2043
UD
3889 * pthreadP.h: Mark __pthread_mutex_unlock_usercnt also hidden.
3890 * pthread_mutex_unlock.c (__pthread_mutex_unlock_usercnt): Add
3891 attribute_hidden.
3892
61623643
UD
3893 * pthreadP.h (__pthread_mutex_init_internal): Mark hidden.
3894 (__pthread_mutex_lock_internal): Likewise.
3895 (__pthread_mutex_unlock_internal): Likewise.
3896 (__pthread_mutex_unlock_usercnt): Declare.
3897 * pthread_mutex_destroy.c: Always fail if used in any way.
3898 * pthread_mutex_init.c: Update comment.
3899 * pthread_mutex_lock.c: If NO_INCR is not defined adjust __nusers.
3900 * pthread_mutex_timedlock.c: Adjust __nusers.
3901 * pthread_mutex_trylock.c: Adjust __nusers.
3902 * pthread_mutex_unlock.c: Old code is in __pthread_mutex_unlock_usercnt
3903 and public interfaces are wrapper with pass additional parameter.
3904 __pthread_mutex_unlock_usercnt does not adjust __nusers if second
3905 parameter zero.
3906 * tst-mutex8.c: New file.
3907 * Makefile (tests): Add tst-mutex8.
3908 * sysdeps/pthread/pthread_cond_timedwait.c: Call
3909 __pthread_mutex_unlock_usercnt.
3910 * sysdeps/pthread/pthread_cond_wait.c: Likewise.
3911 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
3912 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
3913 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
3914 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
3915 * sysdeps/unix/sysv/linux/pthread_mutex_cond_lock.c: Define NO_INCR.
3916 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_mutex_t):
3917 Add __nusers.
3918 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
3919 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
3920 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
3921 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Likewise.
3922 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
3923
3924 * pthread_mutex_lock.c: Don't store THREAD_ID in __owner, use TID.
3925 * pthread_mutex_timedlock.c: Likewise.
3926 * pthread_mutex_trylock.c: Adjust __nusers.
3927 * pthread_mutex_unlock.c: Compare with TID not THREAD_ID.
3928 * tst-mutex9.c: New file.
3929 * Makefile (tests): Add tst-mutex9.
3930 * sysdeps/i386/tls.h: Remove THREAD_ID definition.
3931 * sysdeps/ia64/tls.h: Likewise.
3932 * sysdeps/powerpc/tls.h: Likewise.
3933 * sysdeps/s390/tls.h: Likewise.
3934 * sysdeps/sh/tls.h: Likewise.
3935 * sysdeps/x86_64/tls.h: Likewise.
3936 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_mutex_t):
3937 Change type of __owner.
3938 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
3939 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
3940 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
3941 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Likewise.
3942 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
3943
9bdabb94
UD
39442003-06-19 Jakub Jelinek <jakub@redhat.com>
3945
3946 * sysdeps/unix/sysv/linux/ia64/sem_post.c: Move to...
3947 * sysdeps/unix/sysv/linux/sem_post.c: ...here.
3948
3949 * sysdeps/unix/sysv/linux/sem_post.c: Move to...
3950 * sysdeps/unix/sysv/linux/powerpc/sem_post.c: ... here. Pass nr + 1
3951 instead of nr to lll_futex_wake. Only set errno and return -1
3952 if err < 0.
3953
3954 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h (lll_futex_wait,
3955 lll_futex_timed_wait, lll_futex_wake, lll_futex_requeue): On success
3956 return actual return value from the syscall, not 0.
3957
f6c93bd9
UD
39582003-06-18 Ulrich Drepper <drepper@redhat.com>
3959
ca343e73
UD
3960 * tst-cancel4.c (tf_msgsnd): Don't always use 100 as the type,
3961 find a random value.
3962 (tf_msgrcv): Likewise. Also don't report msgrcv returns if
3963 errno==EIDRM.
3964
50441a98
UD
3965 * sysdeps/unix/sysv/linux/timer_settime.c: Add prototype for
3966 compat_timer_settime.
3967 * sysdeps/unix/sysv/linux/timer_gettime.c: Add prototype for
3968 compat_timer_gettime.
3969 * sysdeps/unix/sysv/linux/timer_getoverr.c: Add prototype for
9bdabb94 3970 compat_timer_getoverrun.
50441a98
UD
3971 * sysdeps/unix/sysv/linux/timer_delete.c: Add prototype for
3972 compat_timer_delete.
3973
f6c93bd9
UD
3974 * pthread_mutex_destroy.c (__pthread_mutex_destroy): For
3975 error-checking mutex detect busy mutexes.
3976
047aec8f
UD
39772003-06-17 Ulrich Drepper <drepper@redhat.com>
3978
1d53508d
UD
3979 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (lll_mutex_lock):
3980 Add ax to clobber list.
3981 (lll_mutex_cond_lock): Likewise.
3982 (lll_mutex_unlock): Likewise.
3983 (lll_lock): Likewise.
3984 (lll_unlock): Likewise.
3985
f23b30e2
UD
3986 * Makefile: Add rules to build and run tst-cancel18 and tst-cancelx18.
3987 * tst-cancel18.c: New file.
3988 * tst-cancelx18.c: New file.
3989
3990 * tst-cancel4.c: Test connect, creat, msgrcv, msgsnd, sendmsg, sendto,
3991 and tcdrain.
3992
3993 * Makefile: Add rules to build and run tst-cancel17 and tst-cancel17x.
3994 * tst-cancel17.c: New file.
3995 * tst-cancelx17.c: New file.
3996
3997 * sysdeps/unix/sysv/linux/sigtimedwait.c: New file.
3998 * sysdeps/unix/sysv/linux/sigwait.c: New file.
3999 * sysdeps/unix/sysv/linux/sigwaitinfo.c: New file.
4000
047aec8f
UD
4001 * tst-cancel4.c: Test open, close, pread, pwrite, fsync, and msync.
4002
bbde8527
UD
40032003-06-16 Jakub Jelinek <jakub@redhat.com>
4004
4005 * sysdeps/pthread/createthread.c (create_thread): Set
4006 header.multiple_threads unconditionally.
4007 * allocatestack.c (allocate_stack): Likewise.
4008 * descr.h (struct pthread): Add header.multiple_threads
4009 unconditionally.
4010 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h (CENABLE, CDISABLE):
4011 Define for librt. #error if neither libpthread, libc nor librt.
4012 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h (CENABLE, CDISABLE):
4013 Likewise.
4014 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h (CENABLE,
4015 CDISABLE): Likewise.
4016 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h (CENABLE,
4017 CDISABLE): Likewise.
4018 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h (CENABLE,
4019 CDISABLE): Likewise.
4020 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h (CENABLE,
4021 CDISABLE): Likewise. Access header.multiple_threads outside of
4022 libc and libpthread.
4023 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h (CENABLE, CDISABLE):
4024 Likewise.
4025 * sysdeps/x86_64/tls.h (tcbhead_t): Add multiple_threads.
4026 * sysdeps/x86_64/tcb-offsets.sym (MULTIPLE_THREADS_OFFSET): Define.
4027
26676450
UD
40282003-06-17 Ulrich Drepper <drepper@redhat.com>
4029
4030 * tst-cancel4.c: Add tests for the socket and signal functions, pause.
4031 Also test early cancellation before the thread reaches the cancellation
4032 point.
4033
4034 * Makefile: Compile forward.c with exceptions.
4035
4036 * sysdeps/unix/sysv/linux/sleep.c: New file.
4037
301a6724
UD
40382003-06-16 Ulrich Drepper <drepper@redhat.com>
4039
0e0deb03
UD
4040 * Makefile: Add CFLAGS definition to compile function wrappers
4041 duplicated from libc with exceptions.
4042 * tst-cancel4.c: Also check cancellation handlers.
4043
301a6724
UD
4044 * Makefile: Add rules to build and run tst-cancel16 and
4045 tst-cancelx16. Add missing CFLAGS definitions.
4046 * tst-cancel16.c: New file.
4047 * tst-cancelx16.c: New file.
4048
7a114794
UD
40492003-06-15 Ulrich Drepper <drepper@redhat.com>
4050
452aea84
UD
4051 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h
4052 (DL_SYSINFO_IMPLEMENTATION): Use CFI opcodes.
4053 * sysdeps/unix/sysv/linux/i386/i686/dl-sysdep.h
4054 (DL_SYSINFO_IMPLEMENTATION): Likewise.
4055
7a114794
UD
4056 * pthreadP.h (LIBC_CANCEL_ASYNC): Also define for librt.
4057 (LIBC_CANCEL_RESET): Likewise.
4058 Declare __librt_enable_asynccancel and __librt_disable_asynccancel.
4059 * sysdeps/pthread/Makefile (librt-sysdep_routines): Add
4060 librt-cancellation.
4061 (CFLAGS-libcrt-cancellation.c): Define.
4062 * sysdeps/pthread/librt-cancellation.c: New file.
4063 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Define all the nice
4064 macros also when compiling librt.
4065 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h: Likewise.
4066 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h: Likewise.
4067 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h: Likewise.
4068 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h: Likewise.
4069 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h: Likewise.
4070 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h: Likewise.
4071 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h: Likewise.
4072
4073 * sysdeps/unix/sysv/linux/timer_create.c: Add prototype for
4074 compat_timer_create.
4075
8ba1d429
UD
40762003-06-14 Ulrich Drepper <drepper@redhat.com>
4077
cc8fb6f3
UD
4078 * sysdeps/pthread/posix-timer.h (timespec_compare): Always inline.
4079
8ba1d429
UD
4080 * sysdeps/unix/sysv/linux/fork.h: Add libc_hidden_proto for
4081 __register_atfork.
4082 * sysdeps/unix/sysv/linux/register-atfork.c (__register_atfork):
4083 Add libc_hidden_def.
4084
d4f100e2
RM
40852003-06-13 Roland McGrath <roland@redhat.com>
4086
4087 * sysdeps/x86_64/td_ta_map_lwp2thr.c (td_ta_map_lwp2thr): Pass FS
4088 constant from <sys/reg.h> to ps_get_thread_area, not register contents.
4089
dd9423a6
UD
40902003-06-11 Ulrich Drepper <drepper@redhat.com>
4091
4092 * allocatestack.c (queue_stack): Always inline.
4093 * ptreadhP.h (__do_cancel): Likewise.
4094
ed24330d
JJ
40952003-06-10 Jakub Jelinek <jakub@redhat.com>
4096
4097 * sysdeps/unix/sysv/linux/s390/sem_timedwait.c (sem_timedwait): Fix
4098 a typo.
4099
06120d79
UD
41002003-06-10 Ulrich Drepper <drepper@redhat.com>
4101
4102 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
4103 (__pthread_cond_signal): Remove incorrect second addition for
4104 cond_lock!=0.
4105
b1720346
UD
41062003-06-09 Ulrich Drepper <drepper@redhat.com>
4107
5b318f85
UD
4108 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
4109 (__pthread_cond_signal): Use correct futex pointer in
4110 __lll_mutex_lock_wait call.
4111
b1720346
UD
4112 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
4113 (__pthread_cond_signal): Some more tweaks to handle cond_lock!=0.
4114
3e36c37d
UD
41152003-06-08 Ulrich Drepper <drepper@redhat.com>
4116
ecf7955d
UD
4117 * sysdeps/unix/sysv/linux/s390/sem_wait.c (__new_sem_wait): Make
4118 cancelable.
ed24330d 4119 * sysdeps/unix/sysv/linux/s390/sem_timedwait.c (sem_timedwait):
ecf7955d
UD
4120 Likewise.
4121
3e36c37d
UD
4122 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h: Remove
4123 hand-written CFI generation code. Since ENTRY/END also initiated
4124 CFI frames this caused two CFI sets to be generated.
4125
7726edc2
UD
41262003-06-07 Ulrich Drepper <drepper@redhat.com>
4127
4128 * cleanup_routine.c: New file.
4129 * Versions (libpthread) [GLIBC_2.3.3]: Add __pthread_cleanup_routine.
4130 * sysdeps/pthread/pthread.h: Add support for fully exception-based
4131 cleanup handling.
4132 * Makefile (libpthread-routines): Add cleanup_routine.
4133 Add more CFLAGS variables to compile with exceptions. Add comments
4134 why which file needs unwind tables.
4135 (tests) [have-forced-unwind==yes]: Add tst-cancelx* and tst-cleanupx*
4136 tests.
4137 * tst-cancelx1.c: New file.
4138 * tst-cancelx2.c: New file.
4139 * tst-cancelx3.c: New file.
4140 * tst-cancelx4.c: New file.
4141 * tst-cancelx5.c: New file.
4142 * tst-cancelx6.c: New file.
4143 * tst-cancelx7.c: New file.
4144 * tst-cancelx8.c: New file.
4145 * tst-cancelx9.c: New file.
4146 * tst-cancelx10.c: New file.
4147 * tst-cancelx11.c: New file.
4148 * tst-cancelx12.c: New file.
4149 * tst-cancelx13.c: New file.
4150 * tst-cancelx14.c: New file.
4151 * tst-cancelx15.c: New file.
4152 * tst-cleanupx0.c: New file.
4153 * tst-cleanupx0.expect: New file.
4154 * tst-cleanupx1.c: New file.
4155 * tst-cleanupx2.c: New file.
4156 * tst-cleanupx3.c: New file.
4157
4158 * tst-cleanup0.c: Make standard compliant.
4159 * tst-cleanup1.c: Likewise.
4160
4161 * sysdeps/unix/sysv/linux/sem_timedwait.c: Add cancellation support.
4162 * sysdeps/unix/sysv/linux/sem_wait.c: Likewise.
4163 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: Likewise.
4164 * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S: Likewise.
4165 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Likewise.
4166 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Likewise.
4167 * sysdeps/i386/tcb-offsets.sym: Add RESULT, CANCELHANDLING, and
4168 CLEANUP_JMP_BUF.
4169 * sysdeps/x86_64/tcb-offsets.sym: Likewise.
4170 * tst-cancel12.c: New file.
4171 * tst-cancel13.c: New file.
4172 * tst-cancel14.c: New file.
4173 * tst-cancel15.c: New file.
4174 * Makefile (tests): Add tst-cancel12, tst-cancel13, tst-cancel14,
4175 and tst-cancel15.
4176
4177 * tst-cancel1.c: Add some comments.
4178
4179 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Compute relative
4180 timeout correctly.
4181
7a8a8e21
UD
41822003-06-06 Ulrich Drepper <drepper@redhat.com>
4183
4184 * Makefile (CFLAGS-pthread_cancel.c): Define.
4185
4ad0bbf4
UD
41862003-06-05 Ulrich Drepper <drepper@redhat.com>
4187
4188 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_rwlock_t):
4189 Change type of __writer element to int.
4190 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
4191 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
4192 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
4193 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
4194 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
4195 * sysdeps/i386/tcb-offsets.sym: Replace SELF entry with TID entry.
4196 * sysdeps/x86_64/tcb-offsets.sym: Likewise.
4197 * pthread_rwlock_trywrlock.c: Store TID not self pointer in __writer.
4198 Compare with TID to determine deadlocks.
4199 * sysdeps/pthread/pthread_rwlock_rdlock.c: Likewise.
4200 * sysdeps/pthread/pthread_rwlock_timedrdlock.c: Likewise.
4201 * sysdeps/pthread/pthread_rwlock_timedwrlock.: Likewise.
4202 * sysdeps/pthread/pthread_rwlock_wrlock.c: Likewise.
4203 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Likewise.
4204 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
4205 Likewise.
4206 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
4207 Likewise.
4208 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
4209 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S: Likewise.
4210 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S:
4211 Likewise.
4212 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S:
4213 Likewise.
4214 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S: Likewise.
4215 * Makefile (tests): Add tst-rwlock12.
4216 * tst-rwlock12.c: New file.
4217
332faa96
JJ
42182003-06-05 Jakub Jelinek <jakub@redhat.com>
4219
4220 * sysdeps/unix/sysv/linux/lowlevellock.c (__lll_lock_wait,
4221 __lll_timedlock_wait, lll_unlock_wake_cb, __lll_timedwait_tid):
4222 Remove bogus hidden_proto.
4223 * sysdeps/unix/sysv/linux/s390/libc-lowlevellock.c (___lll_lock):
4224 Likewise.
4225 * sysdeps/unix/sysv/linux/s390/lowlevellock.c (___lll_lock,
4226 lll_unlock_wake_cb, ___lll_timedwait_tid): Likewise.
4227 * sysdeps/unix/sysv/linux/s390/lowlevelmutex.c (___lll_mutex_lock,
4228 ___lll_mutex_timedlock): Likewise.
4229
29d9e2fd
UD
42302003-06-04 Ulrich Drepper <drepper@redhat.com>
4231
4232 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
4233 (__pthread_cond_signal): Add some code to eventually handle
4234 cond_lock!=0.
4235
6f1acb30
UD
42362003-06-01 Ulrich Drepper <drepper@redhat.com>
4237
4238 * Makefile (tests): Add tst-exec4.
4239 (tst-exec4-ARGS): Define.
4240 * tst-exec4.c: New file.
4241
49b65043
UD
42422003-05-31 Ulrich Drepper <drepper@redhat.com>
4243
31195be2
UD
4244 * sysdeps/unix/sysv/linux/lowlevellock.c (__lll_timedlock_wait):
4245 Also fail if tv_nsec < 0.
4246 (__lll_timedwait_tid): Likewise.
4247 * sysdeps/unix/sysv/linux/sem_timedwait.c (sem_timedwait): Likewise.
4248 * sysdeps/unix/sysv/linux/i386/lowlevellock.h (lll_timedwait_tid):
4249 Likewise.
4250 * sysdeps/unix/sysv/linux/s390/lowlevellock.c (___lll_timedwait_tid):
4251 Likewise.
4252 * sysdeps/unix/sysv/linux/s390/lowlevelmutex.c (__lll_mutex_timedlock):
4253 Likewise.
4254 * sysdeps/unix/sysv/linux/s390/sem_timedwait.c (sem_timedwait):
4255 Likewise.
80b54217
UD
4256 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (lll_timedwait_tid):
4257 Likewise.
4258 * sysdeps/unix/sysv/linux/sh/lowlevellock.h (lll_timedwait_tid):
4259 Likewise.
31195be2 4260
dcfc8224
UD
4261 * Makefile (tests): Add tst-sem8 and tst-sem9.
4262 * tst-sem8.c: New file.
4263 * tst-sem9.c: New file.
4264 * sem_open.c: Fix creation of in_use record if the file exists but
4265 no internal record.
4266
49b65043
UD
4267 * posix-timer.h: Remove old, unused timer_id2ptr and timer_ptr2id
4268 definitions.
4269
4270 * sysdeps/pthread/timer_create.c (timer_create): In case
4271 evp==NULL, assign timer ID to sival_ptr.
4272
4273 * descr.h (struct pthread_unwind_buf): Change type of prev element to
4274 struct pthread_unwind_buf *.
4275 (struct pthread): Likewise for cleanup_jmp_buf element.
4276
4277 * cleanup.c (__pthread_register_cancel): Add cast to avoid warning.
4278 * cleanup_defer.c (__pthread_register_cancel_defer): Likewise.
4279 * unwind.c (__pthread_unwind_next): Likewise.
4280
50794a45
UD
42812003-05-30 Ulrich Drepper <drepper@redhat.com>
4282
5d4f57bd
UD
4283 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h
4284 (lll_futex_timed_wait): Use int for futex value parameter.
4285 (lll_futex_wake): Likewise.
4286 (lll_futex_requeue): Likewise.
4287
4288 * sysdeps/unix/sysv/linux/lowlevellock.c (__lll_lock_wait):
4289 Replace one memory operation with one register operation.
4290
4291 * tst-join4.c (do_test): Fix error message.
4292
7ab7ea33
UD
4293 * tst-rwlock6.c (do_test): Use correct format specifier.
4294
4295 * sysdeps/unix/sysv/linux/i386/i486/lowlevelmutex.S
4296 (__lll_mutex_lock_wait): Replace one memory operation with one
4297 register operation.
4298 * sysdeps/unix/sysv/linux/x86_64/lowlevelmutex.S
4299 (__lll_mutex_lock_wait): Likewise.
4300
50794a45
UD
4301 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h
4302 (__lll_mutex_cond_lock): Add one to value parameter of
4303 __lll_lock_wait to reflect reality in the futex syscall.
4304 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h
4305 (lll_mutex_cond_lock): Likewise.
4306
5a70784e
JJ
43072003-05-30 Jakub Jelinek <jakub@redhat.com>
4308
4309 * sysdeps/unix/sysv/linux/s390/lowlevellock.h (__lll_mutex_cond_lock):
4310 New function.
4311 (lll_mutex_cond_lock): Define.
4312
e7c5ac68
UD
43132003-05-29 Ulrich Drepper <drepper@redhat.com>
4314
586d1748
UD
4315 * Makefile (tests): Add tst-signal6.
4316 * tst-signal6.c: New file.
4317
b8ba4a27
UD
4318 * sysdeps/unix/sysv/linux/s390/lowlevellock.h
4319 (__lll_mutex_unlock_force): New function
4320 (lll_mutex_unlock_force): Use __lll_mutex_unlock_force.
4321
65d46efe
UD
4322 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h
4323 (__lll_mutex_unlock_force): New function.
4324 (lll_mutex_unlock_force): Use __lll_mutex_unlock_force.
4325
4326 * tst-rwlock7.c (do_test): Use correct format specifier.
4327
e7c5ac68
UD
4328 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (lll_futex_requeue):
4329 Find break parameter in correct asm argument.
4330
284bdc42
UD
43312003-05-27 Jakub Jelinek <jakub@redhat.com>
4332
4333 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (lll_futex_clobbers):
4334 Remove out4.
4335 (lll_futex_requeue): Fix __o3 constraint, return negative errno if
4336 error occured.
4337 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h (pthread_cond_t):
4338 Add __mutex.
4339 * sysdeps/unix/sysv/linux/s390/lowlevellock.h (FUTEX_REQUEUE,
4340 lll_futex_requeue, lll_mutex_unlock_force): Define.
4341
e7c5ac68
UD
43422003-05-30 Jakub Jelinek <jakub@redhat.com>
4343
4344 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h
4345 (pthread_cond_t): Add __mutex.
4346 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h (FUTEX_REQUEUE,
4347 lll_futex_requeue, lll_mutex_unlock_force): Define.
4348
ea2630c6
UD
43492003-05-28 Kaz Kojima <kkojima@rr.iij4u.or.jp>
4350
4351 * sysdeps/sh/tcb-offsets.sym: Define MUTEX_FUTEX.
4352 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h (pthread_cond_t):
42d86dd6 4353 Add __mutex field.
ea2630c6
UD
4354 * sysdeps/unix/sysv/linux/sh/lowlevellock.h (SYSCALL_WITH_INST_PAD):
4355 Define.
4356 (lll_futex_wait, lll_futex_wake): Define.
4357 * sysdeps/unix/sysv/linux/sh/sh4/lowlevellock.h: New file.
4358 * sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S: Try using
4359 FUTEX_REQUEUE instead of FUTEX_WAIT.
4360 * sysdeps/unix/sysv/linux/sh/pthread_cond_signal.S: Likewise.
4361 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Remember
4362 mutex which was used in condvar structure. Call
4363 __pthread_mutex_cond_lock instead of __pthread_mutex_lock_internal.
4364 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Likewise.
4365
4366 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: Don't
4367 include tcb-offsets.h. Read wakeup value in locked region.
4368 Use the value of gbr register as THREAD_ID.
4369 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: Likewise.
4370 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S: Likewise.
4371 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S: Likewise.
4372
4373 * sysdeps/unix/sysv/linux/sh/sem_trywait.S: Remove futex related
4374 macros.
4375
5a77f150
UD
43762003-05-28 Ulrich Drepper <drepper@redhat.com>
4377
4378 * sysdeps/pthread/pthread_cond_broadcast.c
4379 (__pthread_cond_broadcast): Fix typo: MAX_INT -> INT_MAX.
4380
7661d9f7
UD
43812003-05-26 Ulrich Drepper <drepper@redhat.com>
4382
4383 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S: Fix
4384 typo in register name.
4385 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S: Use parameters
4386 correctly. Actually use requeue. Little optimization.
4387 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Store
4388 mutex address early. Handle cancellation state as 32-bit value.
4389 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
4390 Remove unnecessary label.
4391
69431c9a
UD
43922003-05-25 Ulrich Drepper <drepper@redhat.com>
4393
4394 * sysdeps/pthread/pthread_cond_broadcast.c: Try using FUTEX_REQUEUE
4395 instead of FUTEX_WAIT.
4396 * sysdeps/pthread/pthread_cond_signal.c: Likewise.
4397 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S: Likewise.
4398 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S: Likewise.
4399 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S: Likewise.
4400 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S: Likewise.
4401 * sysdeps/pthread/pthread_cond_timedwait.c: Remember mutex which was
4402 used in condvar structure. Call __pthread_mutex_cond_lock instead
4403 of __pthread_mutex_lock_internal.
4404 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
4405 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
4406 * sysdeps/pthread/pthread_cond_wait.c: Likewise.
4407 (__condvar_cleanup): Always call __pthread_mutex_cond_lock.
4408 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
4409 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
4410 * sysdeps/unix/sysv/linux/Makefile (libpthread-sysdep_routines):
4411 Add pthread_mutex_cond_lock.
4412 * sysdeps/unix/sysv/linux/lowlevelcond.sym: Add dep_mutex.
4413 * sysdeps/unix/sysv/linux/pthread_cond_mutex_lock.c: New file.
4414 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Define
4415 lll_mutex_cond_lock.
4416 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h: Likewise.
4417 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
248a3490 4418 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_cond_t):
69431c9a 4419 Add __mutex field.
248a3490 4420 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
69431c9a
UD
4421 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
4422
4423 * sysdeps/i386/tcb-offsets.sym: Define MUTEX_FUTEX.
4424 * sysdeps/x86_64/tcb-offsets.sym: Likewise.
4425
4426 * pthreadP.h: Declare __pthread_mutex_cond_lock.
4427 * pthread_mutex_lock.c: Define LLL_MUTEX_LOCK if not already defined.
4428 Use it instead of lll_mutex_lock. If __pthread_mutex_lock is a
4429 macro don't define aliases.
4430
4431 * cancellation.c: Remove __pthread_enable_asynccancel_2.
4432 * pthreadP.h: Remove declaration of __pthread_enable_asynccancel_2.
4433 * sysdeps/pthread/pthread_cond_timedwait.c: Use
4434 __pthread_enable_asynccancel instead of __pthread_enable_asynccancel_2.
4435 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
4436 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
4437 * sysdeps/pthread/pthread_cond_wait.c: Likewise.
4438 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
4439 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
4440
fddfebbd
UD
44412003-05-17 Ulrich Drepper <drepper@redhat.com>
4442
4443 * sem_open.c: Fix one endless loop. Implement correct semantics
4444 wrt opening the same semaphore more then once.
4445 * sem_close.c: Adjust for sem_open change.
4446 * semaphoreP.h: Include <semaphore.h>. Define struct inuse_sem.
4447 Declare __sem_mappings, __sem_mappings_lock, __sem_search.
4448 * Makefile (tests): Add tst-sem7.
4449 * tst-sem7.c: New file.
4450
1eefffb0
RM
44512003-05-16 Roland McGrath <roland@redhat.com>
4452
4453 * sysdeps/unix/sysv/linux/register-atfork.c (libc_freeres_fn): Fix
4454 uninitialized variable braino.
4455
6e66dc78
UD
44562003-05-16 Ulrich Drepper <drepper@redhat.com>
4457
23ae6451
UD
4458 * sysdeps/unix/sysv/linux/timer_gettime.c (timer_gettime): Correct
4459 test for syscall availability.
4460
4461 * sysdeps/unix/sysv/linux/timer_settime.c (timer_settime): Set
4462 __no_posix_timers to -1 if the syscalls don't exist.
4463
7ac5b8e2
UD
4464 * pthread_join.c (pthread_join): Set tid field of the joined
4465 thread to -1. This isn't necessary but helps to recognize some
4466 error conditions with almost no cost.
4467
4468 * allocatestack.c (FREE_P): Also negative values indicate an
4469 unused stack.
4470
6e66dc78
UD
4471 * unwind.c: Include <unistd.h>.
4472
855dba3c
UD
44732003-05-14 Ulrich Drepper <drepper@redhat.com>
4474
4475 * Makefile ($(objpfx)$(multidir)): Add rule to create the directory.
4476
81f3ac4c
UD
44772003-05-14 Jakub Jelinek <jakub@redhat.com>
4478
4479 * Makefile (crti-objs, crtn-objs): New variables.
4480 (omit-deps, extra-objs): Add crtn.
4481 ($(objpfx)libpthread.so): Depend on both crti and crtn
4482 and links to them in multidir.
4483 ($(objpfx)crtn.S, $(objpfx)crtn.o): New rules.
4484
7158eae4
UD
44852003-05-12 Steven Munroe <sjmunroe@us.ibm.com>
4486
4487 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h
4488 (lll_mutex_unlock): Use atomic_exchange_rel.
4489
edf205d5
UD
44902003-05-11 Ulrich Drepper <drepper@redhat.com>
4491
4492 * cond-perf.c (cons): Add missing locking around setting of alldone.
4493
a3f979a7
UD
44942003-05-10 Ulrich Drepper <drepper@redhat.com>
4495
4496 * sysdeps/unix/sysv/linux/i386/i486/sem_trywait.S: Remove futex
4497 related macros.
4498 * sysdeps/unix/sysv/linux/x86_64/sem_trywait.S: Likewise.
4499
880867a4
UD
45002003-05-09 Ulrich Drepper <drepper@redhat.com>
4501
949ec764
UD
4502 * tst-sem6.c: New file.
4503 * Makefile (tests): Add tst-sem6.
4504
4505 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (___lll_mutex_unlock):
4506 Use atomic_exchange_rel instead of atomic_exchange.
4507 * sysdeps/unix/sysv/linux/lowlevellock.c (lll_unlock_wake_cb):
4508 Likewise.
4509
4510 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Improve quality of
4511 code for lll_futex_wait and lll_futex_wake in static apps. Use
4512 vsyscall is possible.
4513
4514 * sysdeps/unix/sysv/linux/pthread_getaffinity.c: New file.
4515 * sysdeps/unix/sysv/linux/pthread_setaffinity.c: New file.
4516 * sysdeps/pthread/pthread.h: Declare pthread_getaffinity_np and
4517 pthread_setaffinity_np.
4518 * Versions [libpthread] (GLIBC_2.3.3): Add pthread_getaffinity_np
4519 and pthread_setaffinity_np.
4520 * Makefile (libpthread-routines): Add pthread_getaffinity and
4521 pthread_setaffinity.
4522
880867a4
UD
4523 * allocatestack.c (allocate_stack): If ARCH_RETRY_MMAP is defined,
4524 use it in case mmap to allocate the stack fails.
4525 * sysdeps/unix/sysv/linux/x86_64/Makefile: Don't define
4526 ARCH_MAP_FLAGS here.
4527 * sysdeps/x86_64/pthreaddef.h: Define ARCH_MAP_FLAGS and
4528 ARCH_RETRY_MMAP.
4529
92d83c72
UD
45302003-05-08 Ulrich Drepper <drepper@redhat.com>
4531
4532 * sysdeps/unix/sysv/linux/fork.c: Complete rewrite of the atfork
4533 handler implementation. It is now lockless in fork().
4534 * sysdeps/unix/sysv/linux/register-atfork.c: Likewise.
4535 * sysdeps/unix/sysv/linux/unregister-atfork.c: Likewise.
4536 * sysdeps/unix/sysv/linux/fork.h: Don't include <link.h>. Don't
4537 declare the __fork_*_lists.
4538 (struct fork_handler): Include pointers to all three functions.
4539 Add next, refcntr and need_signal elements.
4540 (__fork_handlers): New declaration.
4541 (__register_atfork_malloc): Remove declaration.
4542 (HAVE_register_atfork_malloc): Remove definition.
4543 * sysdeps/unix/sysv/linux/libc_pthread_init.c: Remove
4544 __pthread_child_handler variable.
4545 (__libc_pthread_init): Use __register_atfork instead of explicitly
4546 adding to the list.
4547 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Define lll_futex_wait
4548 and lll_futex_wake.
4549 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
4550
4551 * unwind.c (unwind_cleanup): Print error message and then abort. This
4552 function must never be reached.
4553
4554 * cond-perf.c: New file.
4555
be4d8038
UD
45562003-05-05 Ulrich Drepper <drepper@redhat.com>
4557
4558 * sysdeps/i386/tls.h (TLS_INIT_TP): Include \n in error message.
4559
c6696b79
RM
45602003-05-04 Roland McGrath <roland@redhat.com>
4561
4562 * Makefile ($(objpfx)../libc.so): New target.
4563
7da168bf
UD
45642003-05-02 Ulrich Drepper <drepper@redhat.com>
4565
4566 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h
4567 (pthread_condattr_t): Size is only an int, don't use long for
4568 alignment.
4569 (pthread_mutexattr_t): Likewise.
7da168bf
UD
4570 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
4571 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
4572 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
4573
9a7178d6
UD
45742003-05-01 Ulrich Drepper <drepper@redhat.com>
4575
4576 * sysdeps/i386/tls.h: Define THREAD_ID.
4577 * sysdeps/ia64/tls.h: Likewise.
4578 * sysdeps/powerpc/tls.h: Likewise.
4579 * sysdeps/s390/tls.h: Likewise.
4580 * sysdeps/sh/tls.h: Likewise.
4581 * sysdeps/x86_64/tls.h: Likewise.
4582 * pthread_mutex_lock.c: Use THREAD_ID instead of THREAD_SELF to
4583 record ownership.
4584 * pthread_mutex_timedlock.c: Likewise.
4585 * pthread_mutex_trylock.c: Likewise.
4586 * pthread_mutex_unlock.c: Likewise.
4587 * pthread_rwlock_trywrlock.c: Likewise.
4588 * sysdeps/pthread/pthread_rwlocklock_rdlock.c: Likewise.
4589 * sysdeps/pthread/pthread_rwlock_timedrdlock.c: Likewise.
4590 * sysdeps/pthread/pthread_rwlock_timedwrlock.c: Likewise.
4591 * sysdeps/pthread/pthread_rwlock_wrlock.c: Likewise.
4592
4593 * sysdeps/pthread/createthread.c (create_thread): Use CLONE_SYSVSEM
4594 flag.
4595
a234e27d
UD
45962003-04-29 Jakub Jelinek <jakub@redhat.com>
4597
4598 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h
4599 (__SIZEOF_PTHREAD_COND_T): Define to 48.
4600 (pthread_rwlock_t): Add 16 bytes of pad instead of 8 before __flags.
4601 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h (pthread_cond_t):
4602 Make __align long long instead of long.
4603 (pthread_rwlock_t): Formatting.
4604 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h
4605 (pthread_rwlock_t): Formatting.
4606 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h
4607 (pthread_cond_t): Make __align long long instead of long.
4608 (pthread_rwlock_t): Move __flags field to the same position as in
4609 linuxthreads.
4610
f025c136
UD
46112003-04-30 Ulrich Drepper <drepper@redhat.com>
4612
4613 * tst-rwlock6.c (do_test): Use correct printf format specifiers.
4614 * tst-rwlock7.c (do_test): Likewise.
4615
7531ab9e
RM
46162003-04-26 Roland McGrath <roland@redhat.com>
4617
4618 * Makefile ($(test-modules)): Depend on $(common-objpfx)shlib.lds.
4619
299601a1
UD
46202003-04-22 Jakub Jelinek <jakub@redhat.com>
4621
299601a1
UD
4622 * allocatestack.c (TLS_TPADJ): Add TLS_PRE_TCB_SIZE instead of
4623 sizeof (struct pthread).
4624 (allocate_stack): Subtract TLS_PRE_TCB_SIZE bytes instead of
468777e1 4625 1 struct pthread.
299601a1
UD
4626 * sysdeps/powerpc/tls.h (TLS_INIT_TCB_SIZE, TLS_TCB_SIZE): Define
4627 to 0.
4628 (TLS_INIT_TCB_ALIGN, TLS_TCB_ALIGN): Define to alignment of
4629 struct pthread.
4630 (TLS_PRE_TCB_SIZE): Increase to cover tcbhead_t preceeded by pad
4631 to 32-bit bytes.
4632 (INSTALL_DTV, GET_DTV, THREAD_DTV): tcbhead_t is immediately before
4633 tcbp.
4634 (TLS_INIT_TP, THREAD_SELF, INIT_THREAD_SELF): Don't add TLS_TCB_SIZE
4635 unneccessarily.
4636 (NO_TLS_OFFSET): Define.
299601a1
UD
4637 * sysdeps/unix/sysv/linux/powerpc/createthread.c (TLS_VALUE): Don't
4638 add TLS_TCB_SIZE unnecessarily.
299601a1 4639
950094f8
RM
46402003-04-22 Roland McGrath <roland@redhat.com>
4641
4642 * Makeconfig (shared-thread-library): Reverse link order to work
4643 around linker bug.
4644
dc2f6455
UD
46452003-04-22 Ulrich Drepper <drepper@redhat.com>
4646
4647 * semaphore.h: Fix typo in comment.
4648
e7608d77
UD
46492003-04-21 Ulrich Drepper <drepper@redhat.com>
4650
6a87ee19
UD
4651 * sysdeps/pthread/sigfillset.c: New file.
4652
e7608d77
UD
4653 * init.c (__pthread_initialize_minimal): Don't block SIGTIMER.
4654 * pthreadP.h: Make SIGTIMER and SIGCANCEL the same.
4655 * sysdeps/pthread/pthread_sigmask.c: Remove handling of SIGTIMER.
4656 * sysdeps/pthread/sigaction.c: Likewise.
4657 * sysdeps/pthread/sigprocmask.c: New file.
4658 * sysdeps/unix/sysv/linux/allocrtsig.c (current_rtmin): Define as
4659 __SIGRTMIN+1.
4660 * sysdeps/unix/sysv/linux/timer_routines.c (timer_helper_thread):
4661 Block SIGTIMER. Also handle SI_TKILL events and terminate thread
4662 in this case.
4663
0b3df49e
UD
46642003-04-19 Ulrich Drepper <drepper@redhat.com>
4665
58a7a325
UD
4666 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h
4667 (DL_SYSINFO_IMPLEMENTATION): Add .eh_frame information.
4668
0b3df49e
UD
4669 * sysdeps/unix/sysv/linux/unregister-atfork.c
4670 (__unregister_atfork): Don't free memory not allocated dynamically.
4671
4672 * semaphore.h: Remove __THROW marker from cancellation points.
4673 * nptl/sysdeps/pthread/pthread.h: Likewise.
4674
7d74651e
UD
46752003-04-18 Ulrich Drepper <drepper@redhat.com>
4676
76a67697
UD
4677 * sysdeps/pthread/pthread.h: Don't mark pthread_testcancel,
4678 pthread_cancel, pthread_setcancelstate, and pthread_setcanceltype with
7d74651e
UD
4679 __THROW.
4680
dd9d6538
JJ
46812003-04-16 Jakub Jelinek <jakub@redhat.com>
4682
4683 * tst-cancel4.c (do_test): Use %zd instead of %d when printing cnt.
4684
4ab6f47c
RM
46852003-04-15 Roland McGrath <roland@redhat.com>
4686
4687 * forward.c (__pthread_unwind): Tweak to avoid warning.
4688
162434a6
UD
46892003-04-15 Ulrich Drepper <drepper@redhat.com>
4690
4691 * pthreadP.h: Move THREAD_ATOMIC_* replacements to the top.
4692
35909161
UD
46932003-04-14 Ulrich Drepper <drepper@redhat.com>
4694
18ddd3aa 4695 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Don't
35909161
UD
4696 overflow CFA advance instructions.
4697 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
4698
18a8e730
UD
46992003-04-14 Jakub Jelinek <jakub@redhat.com>
4700
bd4f43b4
UD
4701 * sysdeps/i386/tls.h: Rename LOCK to LOCK_PREFIX.
4702 * sysdeps/i386/pthread_spin_lock.c: Likewise.
4703 * sysdeps/x86_64/tls.h: Likewise. Define LOCK_PREFIX if not already
4704 defined.
4705
18a8e730
UD
4706 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Use
4707 DW_CFA_advance_loc2 for .Laddl-.Lsubl.
4708 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Use
4709 DW_CFA_advance_loc for .Laddl-.Lsubl.
4710
08c765fa
UD
47112003-04-13 Ulrich Drepper <drepper@redhat.com>
4712
18a8e730
UD
4713 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Don't use
4714 position-independent unwind data for static libraries.
4715 Add missing unwind info. Add comments.
4716
ad2be852
UD
4717 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Add unwind info.
4718 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
4719 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
08c765fa
UD
4720 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
4721
177d1ad3
UD
47222003-04-12 Ulrich Drepper <drepper@redhat.com>
4723
08c765fa
UD
4724 * Makefile: Make sure all cancellation points are compiled with
4725 exception and asynchronous unwind tables.
4726
177d1ad3
UD
4727 * sysdeps/x86_64/tls.h (THREAD_SETMEM): Word around compiler bug
4728 which mishandles loading of global object addresses in PIC.
4729 (THREAD_SETMEM_NC): Likewise.
4730
09d65ff3
UD
47312003-04-11 Ulrich Drepper <drepper@redhat.com>
4732
4733 * pthread.h: Define new data structure for cleanup buffer. Declare
4734 new cleanup handler interfaces.
4735 * descr.h: Include <unwind.h> if necessary. Define pthread_unwind_buf.
4736 (struct pthread): Add cleanup_jmp_buf pointer. Define
4737 HAVE_CLEANUP_JMP_BUF and not HAVE_CANCELBUF.
4738 * pthreadP.h: Declare __pthread_unwind. Define __do_cancel to use
4739 it. Declare old cleanup handler installation functions.
4740 * cleanup.c: Rewrite. Install handler for unwind-based cleanup
4741 handling.
4742 * cleanup_defer.c: Likewise.
4743 * cleanup_compat.c: New file. Old cleanup code.
4744 * cleanup_def_compat.c: New file. Old cleanup code.
4745 * pthread_create.c (start_thread): Initialize cleanup_jmp_buf element
4746 if own thread descriptor.
4747 * unwind.c: New file.
4748 * forward.c: Add __pthread_unwind.
4749 * init.c (pthread_functions): Add __pthread_unwind.
4750 * sysdeps/pthread/pthread-functions.s (struct pthread_functions):
4751 Add ptr___pthread_unwind.
4752 * Versions [GLIBC_2.3.3] (libpthread): Export new cleanup handling
4753 and unwind function.
4754 * Makefile (libpthread-routines): Add cleanup_compat,
4755 cleanup_def_compat, and unwind. Define CFLAGS to enable unwind
4756 table generation if necessary.
4757 * version.c: Record whether unwind support is compiled in.
4758 * sysdeps/pthread/configure.in: Add checks for unwind unterfaces.
4759 * sysdeps/pthread/bits/libc-lock.h: Add prototypes of the old cleanup
4760 handler interfaces.
4761 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Add quite a bit of
4762 complication to generate unwind information for syscall wrappers.
68107ec0 4763 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h: Likewise.
09d65ff3
UD
4764 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Define
4765 __cleanup_fct_attribute.
4766
4767 * Makefile: Add rules to build and run tst-cleanup0.
4768 * tst-cleanup0.c: New file.
4769 * tst-cleanup0.expect: New file.
4770
4771 * pthread_create.c (deallocate_tsd): Don't take parameter. Adjust
4772 caller. Optimize to avoid often unecessary local variable.
4773
0dc44b51
RM
47742003-04-11 Roland McGrath <roland@redhat.com>
4775
4776 * Makefile ($(objpfx)multidir.mk): New target, generated makefile that
4777 sets variable `multidir'; include that.
4778 (generated): Add it.
4779 ($(objpfx)$(multidir)/crti.o): New target.
4780 [$(multidir) != .] (generated-dirs, extra-objs, omit-deps): Add it.
4781
84a80719
UD
47822003-04-11 Ulrich Drepper <drepper@redhat.com>
4783
4784 * tst-attr2.c (do_test): Add cast to avoid warning.
4785 * tst-mutex4.c (do_test): Likewise.
4786
88ff4759
UD
47872003-04-10 Ulrich Drepper <drepper@redhat.com>
4788
4789 * sysdeps/unix/sysv/linux/fork.c (__libc_fork): Reset CPU clocks
4790 in child.
4791
b2041097
UD
47922003-04-09 Ulrich Drepper <drepper@redhat.com>
4793
4794 * Makefile (tests): Add tst-detach1.
4795 * tst-detach1.c: New file.
4796
f9657e88
UD
47972003-04-08 Ulrich Drepper <drepper@redhat.com>
4798
9afe4964
UD
4799 * sysdeps/pthread/pthread.h: Remove duplicate
4800 pthread_cleanup_{push,pop} definitions.
4801
f9657e88
UD
4802 * tst-barrier2.c: Eliminate warnings.
4803 * tst-cancel4.c: Likewise.
4804 * tst-cond4.c: Likewise.
4805 * tst-cond6.c: Likewise.
4806 * tst-detach1.c: Likewise.
4807 * tst-rwlock4.c: Likewise.
4808 * tst-rwlock6.c: Likewise.
4809 * tst-rwlock7.c: Likewise.
4810 * tst-sem3.c: Likewise.
4811 * tst-spin2.c: Likewise.
4812 * tst-umask1.c: Likewise.
4813
69b35e86
UD
48142003-04-07 Ulrich Drepper <drepper@redhat.com>
4815
4816 * pthread_detach.c (pthread_detach): Fix test for invalid TID.
4817
c70ad7d7
UD
48182003-04-06 Ulrich Drepper <drepper@redhat.com>
4819
4820 * descr.h (struct pthread): Move cancelhandling member to the front.
4821
54e0138f
UD
48222003-04-05 Ulrich Drepper <drepper@redhat.com>
4823
4824 * sysdeps/unix/sysv/linux/register-atfork.c: Define malloc_prepare,
4825 malloc_parent, and malloc_child statically.
4826 (__register_atfork_malloc): New function.
4827 (free_mem): Don't free any of the malloc_* variables on the list.
4828 * sysdeps/unix/sysv/linux/fork.h: Declare __register_atfork_malloc.
4829 Define HAVE_register_atfork_malloc.
4830
b22d701b
UD
48312003-04-04 Ulrich Drepper <drepper@redhat.com>
4832
4833 * sysdeps/pthread/createthread.c (create_thread): Add some more
4834 comments explaining when to set multiple_threads and when not.
4835
4836 * pthreadP.h: Define THREAD_ATOMIC_CMPXCHG_VAL and
4837 THREAD_ATOMIC_BIT_SET if not already defined.
4838 * sysdeps/i386/tls.h: Define THREAD_ATOMIC_CMPXCHG_VAL and
4839 THREAD_ATOMIC_BIT_SET:
4840 * sysdeps/x86_64/tls.h: Likewise.
4841 * cleanup_defer.c (_pthread_cleanup_push_defer): Rewrite to use
4842 THREAD_ATOMIC_CMPXCHG_VAL.
4843 (_pthread_cleanup_pop_restore): Likewise.
4844 * cancellation.c (__pthread_enable_asynccancel): Likewise.
4845 (__pthread_enable_asynccancel_2): Likewise.
4846 (__pthread_disable_asynccancel): Likewise.
4847 * libc-cancellation.c (__libc_enable_asynccancel): Likewise.
4848 (__libc_disable_asynccancel): Likewise.
4849 * init.c (sigcancel_handler): Likewise.
4850 * pthread_setcancelstate.c (__pthread_setcancelstate): Likewise.
4851 * pthread_setcanceltype.c (__pthread_setcanceltype): Likewise.
4852
86246935
UD
48532003-04-03 Ulrich Drepper <drepper@redhat.com>
4854
4855 * init.c (sigcancel_handler): Don't set EXITING_BIT here.
4856 * libc-cancellation.c (__libc_enable_asynccancel): Likewise.
4857 * pthreadP.h (__do_cancel): Set EXITING_BIT here.
4858 * Makefile (tests): Add tst-cancel11.
4859 * tst-cancel11.c: New file.
4860
6b4686a5
UD
48612003-04-01 Ulrich Drepper <drepper@redhat.com>
4862
4863 * pthread_create.c (deallocate_tsd): Clear/free memory after the last
4864 round, not the first. Use specific_used flag instead of local
4865 found_nonzero variable. Use THREAD_[SG]ETMEM where possible.
4866 (__free_tcb): Don't call deallocate_tsd here.
4867 (start_thread): Call deallocate_tsd here.
4868 * pthread_setspecific.c: Set specific_used flag really only when
4869 needed.
0d73a73b 4870 * Makefile (tests): Add tst-tsd3.c and tst-tsd4.
6b4686a5 4871 * tst-tsd3.c: New file.
0d73a73b 4872 * tst-tsd4.c: New file.
6b4686a5 4873
42b2395d
UD
48742003-03-31 Ulrich Drepper <drepper@redhat.com>
4875
211d90c5
UD
4876 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (__lll_mutex_lock):
4877 Use atomic_exchange_and_add instead of __lll_add.
4878 (__lll_mutex_timedlock): Likewise.
4879 Patch by Ian Wienand.
4880
48812003-03-24 Steven Munroe <sjmunroe@us.ibm.com>
4882
4883 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h
4884 (SINGLE_THREAD_P): Fix typo.
4885 * tst-cancel-wrappers.sh: Handle '.'ed symbols.
4886
48872003-03-31 Ulrich Drepper <drepper@redhat.com>
4888
4889 * Makefile (tests): Add tst-align.
4890 * tst-align.c: New file.
4891 * sysdeps/i386/Makefile: Define CFLAGS-tst-align.
211d90c5 4892
42b2395d
UD
4893 * sysdeps/i386/tls.h (CALL_THREAD_FCT): Align stack of called
4894 function correctly.
4895
211d90c5
UD
4896 * tst-tsd2.c: Add casts to avoid warnings.
4897
163b180f
UD
48982003-03-30 Ulrich Drepper <drepper@redhat.com>
4899
4900 * descr.h (struct pthread): Move most often used elements to the front.
4901
ea473bad
UD
49022003-03-29 Ulrich Drepper <drepper@redhat.com>
4903
4904 * Makefile (libpthread-routines): Add pthread_atfork.
4905 (libpthread-static-only-routines): Add pthread_atfork.
4906
dd731d53
UD
49072003-03-28 Kaz Kojima <kkojima@rr.iij4u.or.jp>
4908
4909 * sysdeps/sh/tls.h: Include nptl/descr.h after the definition
4910 of TLS_DTV_AT_TP.
4911 (INSTALL_DTV): Add parens.
4912 (THREAD_GETMEM, THREAD_GETMEM_NC, THREAD_SETMEM, THREAD_SETMEM_NC):
4913 Use passed descr instead of THREAD_SELF.
4914 * sysdeps/unix/sysv/linux/sh/lowlevelmutex.S
4915 (__lll_mutex_timedlock_wait): Correct expected value after
4916 spurious wakeup.
4917 * sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S:
4918 Release lock before waking up the waiters.
4919 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Correct exit
4920 criteria. Reorderstruct passed to cleanup handler. Fix
4921 handling of cancellation and failung pthread_mutex_unlock call.
4922 Use __pthread_enable_asynccancel_2 instead of
4923 __pthread_enable_asynccancel.
4924 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise.
4925 Return result of lock re-get if it fails.
4926 * sysdeps/unix/sysv/linux/sh/pthread_once.S: Fix wrong argument
4927 for __pthread_cleanup_push.
4928 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: Fix
4929 completely broken rwlock implementation.
4930 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: Likewise.
4931 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S: Likewise.
4932 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S: Likewise.
4933 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S: Likewise.
4934 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: Likewise.
4935 * sysdeps/unix/sysv/linux/sh/sem_post.S: Fix error value. Use
4936 versioned_symbol macro.
4937 * sysdeps/unix/sysv/linux/sh/sem_trywait.S: Use versioned_symbol macro.
4938 * sysdeps/unix/sysv/linux/sh/sem_wait.S: Likewise.
4939
c75d02f0
UD
49402003-03-27 Ulrich Drepper <drepper@redhat.com>
4941
5f5004df
UD
4942 * sysdeps/unix/sysv/linux/kernel-posix-timers.h: Don't declare
4943 __timer_helper_thread. Declare __start_helper_thread, __helper_once,
4944 and __helper_tid.
4945 (struct timer): Remove th and bar field.
4946 * sysdeps/unix/sysv/linux/timer_create.c (timer_create): Remove
4947 debugging code. Create only one helper thread.
4948 * sysdeps/unix/sysv/linux/timer_delete.c (timer_delete): Don't kill
4949 helper thread.
4950 * sysdeps/unix/sysv/linux/timer_routines.c (timer_helper_thread):
4951 Renamed. Define statically. Use thread info from siginfo.
4952 (__helper_once): New variable.
4953 (__helper_tid): New variable.
4954 (__reset_helper_control): New function.
4955 (__start_helper_thread): New function.
4956
18d009ca
UD
4957 * pthread_create.c (start_thread): Don't use setjmp inside
4958 __builtin_expect to work around gcc bug.
4959
c75d02f0
UD
4960 * sysdeps/unix/sysv/linux/timer_delete.c (timer_delete): Even if
4961 timer_delete syscall fails, but not with ENOSYS, set
4962 __no_posix_timers.
4963
4964 * sysdeps/unix/sysv/linux/timer_settime.c [!__ASSUME_POSIX_TIMERS]
4965 (timer_settime): Fix typo.
28cf3058
UD
4966 * sysdeps/unix/sysv/linux/timer_getoverr.c
4967 [!__ASSUME_POSIX_TIMERS] (timer_getoverrun): Likewise.
c75d02f0 4968
049ac259
JJ
49692003-03-27 Jakub Jelinek <jakub@redhat.com>
4970
4971 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Fix
4972 offset of cleanupbuf.__prev.
4973
f93d39dd
JJ
49742003-03-26 Jakub Jelinek <jakub@redhat.com>
4975
4976 * sysdeps/unix/sysv/linux/timer_getoverr.c: Fix typo in name
4977 of included file.
4978
f064e4c5
UD
49792003-03-26 Ulrich Drepper <drepper@redhat.com>
4980
4981 * sysdeps/unix/sysv/linux/timer_create.c (timer_create): If EVP ==
4982 NULL provide default definition to syscall.
4983
83e886a3
RM
49842003-03-25 Roland McGrath <roland@redhat.com>
4985
4986 * sysdeps/pthread/posix-timer.h (TIMER_MAX): Define if not defined.
4987 (timer_id2ptr): Fix typo.
4988
09402f5b
UD
49892003-03-25 Ulrich Drepper <drepper@redhat.com>
4990
4991 * pthreadP.h: Define SIGCANCEL and SIGTIMER.
4992 * sysdeps/i386/pthreaddef.h: Remove SIGCANCEL definition.
4993 * sysdeps/ia64/pthreaddef.h: Likewise.
4994 * sysdeps/powerpc/pthreaddef.h: Likewise.
4995 * sysdeps/s390/pthreaddef.h: Likewise.
4996 * sysdeps/sh/pthreaddef.h: Likewise.
4997 * sysdeps/x86_64/pthreaddef.h: Likewise.
4998 * init.c (__pthread_initialize_minimal): Block SIGTIMER.
4999 * sysdeps/pthread/sigaction.c: Also prevent SIGTIMER handler from
5000 being changed.
5001 * sysdeps/pthread/pthread_sigmask.c (pthread_sigmask): Make sure
5002 SIGTIMER is not unblocked.
5003 * sysdeps/unix/sysv/linux/allocrtsig.c (current_rtmin): One more
5004 RT signal taken.
5005 * sysdeps/unix/sysv/linux/pthread_kill.c: Do not allow SIGTIMER to
5006 be send.
5007 * sysdeps/pthread/posix-timer.h (timer_id2ptr, timer_ptr2id): Just
5008 pass pointer through as ID.
5009 * sysdeps/unix/sysv/linux/bits/local_lim.h (TIMER_MAX): Removed.
5010 * sysdeps/unix/sysv/linux/kernel-posix-timers.h: New file.
5011 * sysdeps/unix/sysv/linux/timer_create.c: New file.
5012 * sysdeps/unix/sysv/linux/timer_delete.c: New file.
5013 * sysdeps/unix/sysv/linux/timer_getoverr.c: New file.
5014 * sysdeps/unix/sysv/linux/timer_gettime.c: New file.
5015 * sysdeps/unix/sysv/linux/timer_routines.c: New file.
5016 * sysdeps/unix/sysv/linux/timer_settime.c: New file.
5017 * sysdeps/unix/sysv/linux/ia64/Versions: New file.
5018 * sysdeps/unix/sysv/linux/ia64/timer_create.c: New file.
5019 * sysdeps/unix/sysv/linux/ia64/timer_delete.c: New file.
5020 * sysdeps/unix/sysv/linux/ia64/timer_getoverr.c: New file.
5021 * sysdeps/unix/sysv/linux/ia64/timer_gettime.c: New file.
5022 * sysdeps/unix/sysv/linux/ia64/timer_settime.c: New file.
5023 * sysdeps/unix/sysv/linux/powerpc/powerpc64/Versions: New file.
5024 * sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_create.c: New file.
5025 * sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_delete.c: New file.
5026 * sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_getoverr.c: New file.
5027 * sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_gettime.c: New file.
5028 * sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_settime.c: New file.
5029 * sysdeps/unix/sysv/linux/s390/s390-64/Versions: New file.
5030 * sysdeps/unix/sysv/linux/s390/s390-64/timer_create.c: New file.
5031 * sysdeps/unix/sysv/linux/s390/s390-64/timer_delete.c: New file.
5032 * sysdeps/unix/sysv/linux/s390/s390-64/timer_getoverr.c: New file.
5033 * sysdeps/unix/sysv/linux/s390/s390-64/timer_gettime.c: New file.
5034 * sysdeps/unix/sysv/linux/s390/s390-64/timer_settime.c: New file.
5035 * sysdeps/unix/sysv/linux/x86_64/Versions: New file.
5036 * sysdeps/unix/sysv/linux/x86_64/compat-timer.h: New file.
5037 * sysdeps/unix/sysv/linux/x86_64/timer_create.c: New file.
5038 * sysdeps/unix/sysv/linux/x86_64/timer_delete.c: New file.
5039 * sysdeps/unix/sysv/linux/x86_64/timer_getoverr.c: New file.
5040 * sysdeps/unix/sysv/linux/x86_64/timer_gettime.c: New file.
5041 * sysdeps/unix/sysv/linux/x86_64/timer_settime.c: New file.
5042
5043 * pthreadP.h: Remove FRAME_LEFT definition.
5044 * cleanup.c (_pthread_cleanup_push): Don't check for reference to
5045 already left frame. Programs which have this problem are not POSIX
5046 compliant.
5047 * cleanup_defer.c (_pthread_cleanup_push_defer): Likewise.
5048
5e826ab5
UD
50492003-03-24 Ulrich Drepper <drepper@redhat.com>
5050
5051 * sysdeps/pthread/tst-timer.c: Check return values of the
5052 functions we test.
5053
b910f788
RM
50542003-03-23 Roland McGrath <roland@redhat.com>
5055
3045a1fe
RM
5056 * tst-tls3.c (do_test) [! HAVE___THREAD]: Don't test anything.
5057 * tst-tls3mod.c: Likewise.
5058 * tst-tls1.c: Likewise.
5059 * tst-tls2.c: Likewise.
5060
85047fe3
RM
5061 * tst-mutex5.c (do_test): Unlock before destroy, otherwise we invoke
5062 undefined behavior.
5063
b910f788
RM
5064 * tst-join5.c (tf1, tf2): Add a cast.
5065
5066 * Makeconfig (includes): Append -I$(..)nptl to this variable.
5067
5068 * tst-barrier2.c (do_test) [! _POSIX_THREAD_PROCESS_SHARED]:
5069 Don't test anything.
5070 * tst-cond4.c: Likewise.
5071 * tst-cond6.c: Likewise.
5072 * tst-flock2.c: Likewise.
5073 * tst-mutex4.c: Likewise.
5074 * tst-rwlock4.c: Likewise.
5075 * tst-signal1.c: Likewise.
5076 * tst-spin2.c: Likewise.
5077 * tst-cond11.c [! _POSIX_CLOCK_SELECTION]: Likewise.
5078
5079 * tst-mutex4.c: Use test-skeleton.c.
5080 * tst-spin2.c: Likewise.
5081 * tst-sysconf.c: Likewise.
5082 * tst-barrier2.c: Likewise.
5083 * tst-cond4.c: Likewise.
5084 * tst-cond6.c: Likewise.
5085 * tst-rwlock4.c: Likewise.
5086 * tst-unload.c: Likewise.
5087 * tst-flock2.c (do_test): Use return instead of exit.
5088
4baa087a
RM
50892003-03-22 Jakub Jelinek <jakub@redhat.com>
5090
5091 * sysdeps/unix/sysv/linux/fork.c (__fork): Add libc_hidden_def.
5092
5a3ab2fc
UD
50932003-03-21 Ulrich Drepper <drepper@redhat.com>
5094
9f07eae2
UD
5095 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h
5096 (__lll_mutex_trylock): Use atomic_compare_and_exchange_val_acq
5097 instead of __lll_compare_and_swap.
5098 * sysdeps/unix/sysv/linux/ia64/pthread_once.c (__pthread_once):
5099 Likewise.
5100 Removed definition if __lll_compare_and_swap.
5101
5a3ab2fc
UD
5102 * cancellation.c: Adjust for new form of compare&exchange macros.
5103 * cleanup_defer.c: Likewise.
5104 * init.c: Likewise.
5105 * libc-cancellation.c: Likewise.
5106 * old_pthread_cond_broadcast.c: Likewise.
5107 * old_pthread_cond_signal.c: Likewise.
5108 * old_pthread_cond_timedwait.c: Likewise.
5109 * old_pthread_cond_wait.c: Likewise.
5110 * pthread_cancel.c: Likewise.
5111 * pthread_create.c: Likewise.
5112 * pthread_detach.c: Likewise.
5113 * pthread_join.c: Likewise.
5114 * pthread_key_delete.c: Likewise.
5115 * pthread_setcancelstate.c: Likewise.
5116 * pthread_setcanceltype.c: Likewise.
5117 * pthread_timedjoin.c: Likewise.
5118 * pthread_tryjoin.c: Likewise.
5119 * sysdeps/pthread/createthread.c: Likewise.
5120
b1aea098
UD
51212003-03-20 Ulrich Drepper <drepper@redhat.com>
5122
5123 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h: Include <atomic.h>.
4baa087a 5124 Remove __lll_add, __lll_dec_if_positive, and __lll_test_and_set
b1aea098
UD
5125 definitions. Replace uses with calls to atomic_* functions.
5126 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Likewise.
5127 * sysdeps/unix/sysv/linux/lowlevellock.c: Replace __lll_add and
5128 __lll_test_and_set calls with atomic_exchange_and_add and
5129 atomic_exchange calls respectively.
5130 * sysdeps/unix/sysv/linux/sem_post.c: Likewise.
5131 * sysdeps/unix/sysv/linux/sem_timedwait.c: Likewise.
5132 * sysdeps/unix/sysv/linux/sem_trywait.c: Likewise.
5133 * sysdeps/unix/sysv/linux/sem_wait.c: Likewise.
5134 * sysdeps/unix/sysv/linux/ia64/pthread_once.c: Likewise.
5135 * sysdeps/unix/sysv/linux/ia64/sem_port.c: Likewise.
5136 * sysdeps/unix/sysv/linux/powerpc/pthread_once.c: Likewise.
5137
5138 * allocatestack.c (allocate_stack): Assume atomic_exchange_and_add
5139 returns the old value.
5140
100a7100
RM
51412003-03-20 Martin Schwidefsky <sky@mschwid3.boeblingen.de.ibm.com>
5142
5143 * sysdeps/s390/pthread_spin_lock.c (pthread_spin_lock): Use type
5144 int for variable OLDVAL and correct inline assembler contraint.
5145 * sysdeps/s390/pthread_spin_trylock.c (pthread_spin_trylock): Use
5146 type int for variable OLD.
5147
5148 * sysdeps/s390/tls.h (TLS_MULTIPLE_THREADS_IN_TCB): Define it
5149 only for s390-32.
5150 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h
5151 (SINGLE_THREAD_P): Use global variable __local_multiple_threads
5152 instead of multiple_threads field in the TCB.
5153
95767b36
UD
51542003-03-19 Ulrich Drepper <drepper@redhat.com>
5155
4009bf40
UD
5156 * sysdeps/i386/i686/bits/atomic.h: Removed.
5157 * sysdeps/i386/i586/bits/atomic.h: Removed.
5158 * sysdeps/i386/i486/bits/atomic.h: Removed. Moved to glibc.
5159 * sysdeps/x86_64/bits/atomic.h: Removed. Moved to glibc.
5160 * sysdeps/s390/bits/atomic.h: Removed. Moved to glibc.
5161 * sysdeps/sh/bits/atomic.h: Removed. Moved to glibc.
5162 * sysdeps/ia64/bits/atomic.h: Removed. Moved to glibc.
5163 * sysdeps/powerpc/bits/atomic.h: Removed. Moved to glibc.
5164 * atomic.h: Removed. Moved to glibc.
5165
560a784f
UD
5166 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Add
5167 support for clock selection.
5168
95767b36
UD
5169 * sysdeps/pthread/pthread_cond_broadcast.c: Release lock before
5170 signalling waiters.
5171
043ad426
RM
51722003-03-18 Roland McGrath <roland@redhat.com>
5173
94659495
RM
5174 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h (__lll_test_and_set):
5175 Add __lll_rel_instr first. Add memory clobber.
5176 (lll_mutex_unlock): Use __lll_test_and_set.
5177 From Paul Mackerras <paulus@samba.org>.
5178
5179 * sysdeps/powerpc/tls.h (TLS_MULTIPLE_THREADS_IN_TCB): Define
5180 unconditionally.
5181 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h
5182 (SINGLE_THREAD_P): Add `header.' prefix.
5183 From Paul Mackerras <paulus@samba.org>.
5184
043ad426
RM
5185 * Versions (libpthread: GLIBC_2.3.2): Move pthread_tryjoin_np and
5186 pthread_timedjoin_np to ...
5187 (libpthread: GLIBC_2.3.3): ... here.
5188 (libpthread: GLIBC_2.2): Move pthread_barrierattr_getpshared there too.
5189
5190 * sysdeps/pthread/pthread_cond_timedwait.c (__pthread_cond_timedwait):
5191 Avoid shadowing VAL variable.
5192
5193 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h (__lll_test_and_set):
5194 New macro.
5195
86a9ee5e
UD
51962003-03-18 Ulrich Drepper <drepper@redhat.com>
5197
ac9e0aa1
UD
5198 * Makefile (tests): Add tst-cond11.
5199 * tst-cond11.c: New file.
5200
a14b373c
UD
5201 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Reorder
5202 struct passed to cleanup handler to eliminate one more
5203 instruction.
5204 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
5205
24a49f38
UD
5206 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h
5207 (pthrad_cond_t): Replace __unused field with __clock.
5208
5209 * sysdeps/pthread/pthread_cond_wait.c: Release condvar lock before
5210 waken all waiters in cleanup handler.
5211 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
5212 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
5213
86a9ee5e
UD
5214 * pthread_condattr_getclock.c: New file.
5215 * pthread_condattr_setclock.c: New file.
5216 * sysdeps/pthread/pthread.h: Declare these new functions.
5217 * Versions [GLIBC_2.3.3] (libpthread): Add the new functions.
5218 * Makefile (libpthread-routines): Add the new functions.
5219 * sysdeps/unix/sysv/linux/internaltypes.h (struct pthread_condattr):
5220 Renamed field to value. Document use of the bits.
5221 * pthread_condattr_getpshared.c: Adjust for struct pthread_condattr
5222 change.
5223 * pthread_condattr_setpshared.c: Likewise.
d5cb8389 5224 * pthread_cond_init.c (__pthread_cond_init): Initialized __clock field.
86a9ee5e
UD
5225 * sysdeps/unix/sysv/linux/lowlevelcond.sym: Add cond_clock symbol.
5226 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_cond_t):
5227 Add __clock field.
5228 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
5229 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
5230 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
5231 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Likewise.
5232 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S:
5233 Implement clock selection.
5234 * sysdeps/pthread/pthread_cond_timedwait.c: Likewise.
5235 * pthread-errnos.sym: Add ENOSYS.
5236 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define
5237 _POSIX_CLOCK_SELECTION.
5238 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
5239
5240 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Remove
5241 invalid .size directive.
5242
98054a05
RM
52432003-03-17 Roland McGrath <roland@redhat.com>
5244
5245 * sysdeps/unix/sysv/linux/lowlevellock.c (__lll_lock_wait):
5246 Formatting tweaks.
5247
001bea71
UD
52482003-03-17 Ulrich Drepper <drepper@redhat.com>
5249
4773086e
UD
5250 * sysdeps/unix/sysv/linux/ia64/pthread_once.c: Use __builtin_expect.
5251 Use __lll_add instead of spelling it out. Use protected symbol names.
5252 * sysdeps/unix/sysv/linux/ia64/sem_post.c: Use __builtin_expect.
5253 Use __lll_add.
5254 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (__lll_compare_and_swap):
5255 Renamed from lll_compare_and_swap. Use new name where necessary.
5256 (__lll_add): Defined.
5257 (__lll_dec_if_positive): Defined.
5258 (__lll_test_and_set): Defined.
5259 * sysdeps/ia64/pthread_spin_init.c: Removed.
5260 * sysdeps/unix/sysv/linux/ia64/lowlevelmutex.c: Removed.
5261 * sysdeps/unix/sysv/linux/ia64/sem_trywait.c: Removed.
5262 * sysdeps/unix/sysv/linux/ia64/sem_wait.c: Removed.
5263 * sysdeps/unix/sysv/linux/ia64/lowlevellock.c: Removed.
5264 * sysdeps/unix/sysv/linux/ia64/libc-lowlevellock.c: Removed.
5265 * sysdeps/unix/sysv/linux/ia64/libc-lowlevelmutex.c: Removed.
5266 * sysdeps/unix/sysv/linux/ia64/sem_timedwait.c: Removed.
001bea71
UD
5267 * sysdeps/ia64/bits/atomic.h: Add __builtin_expect where appropriate.
5268 * sysdeps/ia64/pthread_spin_unlock.c (pthread_spin_unlock): Use
5269 __sync_lock_release_si.
5270 Patch by Jakub Jelinek.
5271
5272 * sysdeps/unix/sysv/linux/lowlevellock.c (__lll_timedlock_wait):
5273 Fix timeout handling.
5274 (__lll_timedwait_tid): Likewise.
5275 (lll_unlock_wake_cb): Wake up other waiters if necessary.
5276 Patch by Jakub Jelinek.
5277
5278 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Pretty printing.
5279
de4471dd
RM
52802003-03-17 Roland McGrath <roland@redhat.com>
5281
5282 PowerPC port contributed by Paul Mackerras <paulus@samba.org>.
5283 * sysdeps/pthread/pthread_spin_init.c: New file.
5284 * sysdeps/pthread/pthread_spin_unlock.c: New file.
5285 * sysdeps/powerpc/Makefile: New file.
5286 * sysdeps/powerpc/pthread_spin_lock.c: New file.
5287 * sysdeps/powerpc/pthread_spin_trylock.c: New file.
5288 * sysdeps/powerpc/pthreaddef.h: New file.
5289 * sysdeps/powerpc/tcb-offsets.sym: New file.
5290 * sysdeps/powerpc/td_ta_map_lwp2thr.c: New file.
5291 * sysdeps/powerpc/tls.h: New file.
5292 * sysdeps/powerpc/bits/atomic.h: New file.
5293 * sysdeps/unix/sysv/linux/libc-lowlevelmutex.c: New file.
5294 * sysdeps/unix/sysv/linux/libc-lowlevellock.c: New file.
5295 * sysdeps/unix/sysv/linux/lowlevellock.c: New file.
98054a05 5296
de4471dd
RM
5297 * sysdeps/unix/sysv/linux/lowlevelmutex.c: New file.
5298 * sysdeps/unix/sysv/linux/sem_post.c: New file.
5299 * sysdeps/unix/sysv/linux/sem_timedwait.c: New file.
5300 * sysdeps/unix/sysv/linux/sem_trywait.c: New file.
5301 * sysdeps/unix/sysv/linux/sem_wait.c: New file.
5302 * sysdeps/unix/sysv/linux/powerpc/Makefile: New file.
5303 * sysdeps/unix/sysv/linux/powerpc/createthread.c: New file.
5304 * sysdeps/unix/sysv/linux/powerpc/fork.c: New file.
5305 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: New file.
5306 * sysdeps/unix/sysv/linux/powerpc/pt-vfork.S: New file.
5307 * sysdeps/unix/sysv/linux/powerpc/pthread_once.c: New file.
5308 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: New file.
5309 * sysdeps/unix/sysv/linux/powerpc/bits/semaphore.h: New file.
5310 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h: New file.
5311 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h: New file.
5312
5313 * sysdeps/unix/sysv/linux/ia64/lowlevellock.c: Use __gettimeofday,
5314 not gettimeofday.
5315 * sysdeps/unix/sysv/linux/ia64/lowlevelmutex.c: Likewise.
5316 * sysdeps/unix/sysv/linux/ia64/sem_timedwait.c: Likewise.
5317 * sysdeps/unix/sysv/linux/s390/lowlevellock.c: Likewise.
5318 * sysdeps/unix/sysv/linux/s390/lowlevelmutex.c: Likewise.
5319 * sysdeps/unix/sysv/linux/s390/sem_timedwait.c: Likewise.
5320
5778033f
UD
53212003-03-17 Ulrich Drepper <drepper@redhat.com>
5322
5323 * sysdeps/pthread/pthread_cond_wait.c: Correct exit criteria.
5324 * sysdeps/pthread/pthread_cond_timedwait.c: Likewise.
5325 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
5326 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
5327 Patch by Ewald Snel <ewald@rambo.its.tudelft.nl>.
5328
796038f8
RM
53292003-03-16 Roland McGrath <roland@redhat.com>
5330
5331 * tst-fork4.c: Include <string.h>.
5332 * tst-signal2.c: Likewise.
5333 * tst-mutex5.c (do_test): exit -> return.
5334 * tst-mutex2.c: Include <stdlib.h>.
5335
51d0678c
UD
53362003-03-16 Ulrich Drepper <drepper@redhat.com>
5337
5778033f
UD
5338 * sysdeps/unix/sysv/linux/i386/i486/lowlevelmutex.S
5339 (__lll_mutex_timedlock_wait): Correct expected value after
5340 spurious wakeup. Otherwise we would never wait again.
5341
b6e2f87a
UD
5342 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Work around red
5343 zone versus inline asm stupidity. Use correct instructions.
5344
51d0678c
UD
5345 * tst-rwlock6.c: Add some more status output.
5346
8112cc70
RM
53472003-03-15 Roland McGrath <roland@redhat.com>
5348
5349 * sysdeps/pthread/configure.in: New file.
5350 * sysdeps/pthread/configure: New file (generated).
5351
49773c19
UD
53522003-03-15 Ulrich Drepper <drepper@redhat.com>
5353
5354 * allocatestack.c (allocate_stack): Store the exact stack size of
5355 user allocated stacks.
5356
eec0ca9f
JJ
53572003-03-15 Jakub Jelinek <jakub@redhat.com>
5358
5359 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h
5360 (SINGLE_THREAD): Use `header' prefix instead of `header.data'.
5361 * sysdeps/sh/tcb-offsets.sym (MULTIPLE_THREADS_OFFSET): Likewise.
5362 * sysdeps/sh/tls.h (TLS_MULTIPLE_THREADS_IN_TCB): Define.
5363 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h (SINGLE_THREAD_P):
5364 Use `header.' prefix.
5365 * sysdeps/ia64/tcb-offsets.sym (MULTIPLE_THREADS_OFFSET): Likewise.
5366
a87731e2
UD
53672003-03-15 Ulrich Drepper <drepper@redhat.com>
5368
5369 * sysdeps/x86_64/pthreaddef.h (CURRENT_STACK_FRAME): Don't use
5370 __builtin_frame_address, use stack pointer.
5371
5372 * sysdeps/unix/sysv/linux/jmp-unwind.c: Use CURRENT_STACK_FRAME
5373 instead of __builtin_frame_pointer.
5374
e22a221d
UD
53752003-03-14 Ulrich Drepper <drepper@redhat.com>
5376
92ed3daf
UD
5377 * tst-basic1.c (do_test): Add cast to avoid warning.
5378 * tst-basic2.c (do_test): Likewise.
5379
9b89567d
UD
5380 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Use correct
5381 amount of stack correction.
5382
e22a221d
UD
5383 * tst-fork4.c: Use test-skeleton.c.
5384
2e49caba
RM
53852003-03-14 Roland McGrath <roland@redhat.com>
5386
5387 * init.c: Fix typo "#eli" for "#else".
5388
415ef7d8
RM
53892003-03-14 Steven Munroe <sjmunroe@us.ibm.com>
5390
5391 * allocatestack.c (__stack_user): Use hidden_data_def.
5392 * pthread_create.c (__pthread_keys): Likewise.
5393
5394 * init.c [__powerpc__] (__NR_set_tid_address): Define it.
5395
52287505
RM
53962003-03-14 Roland McGrath <roland@redhat.com>
5397
415ef7d8
RM
5398 * tst-fork4.c: New file.
5399 * Makefile (tests): Add it.
5400
52287505
RM
5401 * descr.h (struct pthread): Move the union out of [!TLS_DTV_AT_TP], so
5402 we always define the padding space.
5403 [!TLS_DTV_AT_TP]: Give tcbhead_t field a name, `header', since GCC
5404 stopped supporting its own extensions fully.
5405 [TLS_MULTIPLE_THREADS_IN_TCB]: Put `multiple_threads' inside a wrapper
5406 struct also called `header', so `header.multiple_threads' is the field
5407 name to use on all machines.
5408 * allocatestack.c (allocate_stack): Use `header.' prefix.
5409 * sysdeps/pthread/createthread.c (create_thread): Likewise.
5410 * pthread_create.c (__pthread_create_2_1): Likewise.
5411 * sysdeps/i386/tls.h (INSTALL_NEW_DTV, THREAD_DTV): Likewise.
5412 (THREAD_SELF): Likewise.
5413 * sysdeps/x86_64/tls.h: Likewise.
5414 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h
5415 (SINGLE_THREAD_P): Likewise.
5416 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h
5417 (SINGLE_THREAD_P): Likewise.
5418 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h
5419 (SINGLE_THREAD_P): Likewise.
5420
5421 * sysdeps/s390/td_ta_map_lwp2thr.c (td_ta_map_lwp2thr): Use REGS[18]
5422 value directly.
5423
c44bf9aa
UD
54242003-03-14 Ulrich Drepper <drepper@redhat.com>
5425
e22a221d
UD
5426 * pthread_create.c (start_thread): Use CALL_THREAD_FCT if defined.
5427 * sysdeps/i386/tls.h: Define CALL_THREAD_FCT.
5428
0eb18281
UD
5429 * pthread_create.c (start_thread): setjmp is expected to return 0.
5430
c44bf9aa
UD
5431 * sysdeps/x86_64/tls.h (THREAD_GETMEM): Mark asms volatile.
5432 (THREAD_GETMEM_NC): Likewise.
5433
564cd8b6
UD
54342003-03-13 Ulrich Drepper <drepper@redhat.com>
5435
5436 * allocatestack.c (allocate_stack): If MULTI_PAGE_ALIASING is defined
5437 and the size of the stack which must be allocated is a multiple,
5438 allocate one more page.
5439 * sysdeps/i386/i686/Makefile: Don't define COLORING_INCREMENT, but
5440 MULTI_PAGE_ALIASING.
5441
6461e577
RM
54422003-03-13 Roland McGrath <roland@redhat.com>
5443
5444 * pthread_create.c (start_thread): Set EXITING_BIT after the
5445 event-reporting (and destructors), not before.
5446
b5ec5617
UD
54472003-03-13 Jakub Jelinek <jakub@redhat.com>
5448
6461e577
RM
5449 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (lll_futex_timed_wait,
5450 lll_futex_wake): Declare register variables as long int instead of
5451 unsigned long int. Patch by Ian Wienand <ianw@gelato.unsw.edu.au>.
5452 Make syscall arguments clobbered by the syscall.
5453 (lll_futex_wait): Define using lll_futex_timed_wait.
5454
5455 * sysdeps/ia64/td_ta_map_lwp2thr.c (td_ta_map_lwp2thr): Cast regs[13]
5456 to void *.
5457
5458 * sysdeps/unix/sysv/linux/fork.c (__libc_fork): Only declare and set
5459 PPID if [! NDEBUG].
5460
5461 * allocatestack.c (nptl_ncreated): Only declare if
5462 COLORING_INCREMENT != 0.
5463
5464 * pthreadP.h (__pthread_enable_asynccancel_2): New prototype.
5465 (__libc_enable_asynccancel_2): Remove prototype.
5466
b5ec5617
UD
5467 * sysdeps/unix/sysv/linux/ia64/fork.c (ARCH_FORK): Swap ptid and
5468 ctid to match kernel.
5469
d0369fb8
UD
54702003-03-12 Ulrich Drepper <drepper@redhat.com>
5471
7588880f
UD
5472 * sysdeps/unix/sysv/linux/Makefile (sysdep_routines): Add
5473 libc_multiple_threads.
5474 * sysdeps/unix/sysv/linux/libc_pthread_init.c: Move definition of
5475 __libc_multiple_threads to...
5476 * sysdeps/unix/sysv/linux/libc_multiple_threads.c: ...here. New file.
5477
5478 * sysdeps/unix/sysv/linux/x86_64/sem_post.S: Remove unnecessary
5479 versioning.
5480 * sysdeps/unix/sysv/linux/x86_64/sem_trywait.S: Likewise.
5481 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Likewise.
5482
5483 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S
5484 (__pthread_once_internal): Define.
5485
5486 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S: Use shlib-compat.h
5487 macros instead of .symver directly.
5488 * sysdeps/unix/sysv/linux/i386/i486/sem_trywait.S: Likewise.
5489 * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S: Likewise.
5490
d0369fb8
UD
5491 * sysdeps/x86_64/tls.h [__ASSEMBLER__]: Include tcb-offsets.h.
5492 * sysdeps/x86_64/tcb-offsets.sym: New file.
5493 * sysdeps/x86_64/Makefile: New file.
5494
5495 * sysdeps/i386/tcb-offsets.sym: Add SELF.
5496 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Use SELF
5497 to access own pthread_t in TCB.
5498 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
5499 Likewise.
5500 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
5501 Likewise.
5502 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
5503
0bb2ac85
RM
55042003-03-12 Roland McGrath <roland@redhat.com>
5505
5506 * pthread-errnos.sym: New file.
5507 * Makefile (gen-as-const-headers): New variable, list that file.
5508 * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S: Include generated
5509 header <pthread-errnos.h> instead of defining errno values here.
5510 * sysdeps/unix/sysv/linux/i386/i486/sem_trywait.S: Likewise.
5511 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: Likewise.
5512 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S: Likewise.
5513 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
5514 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
5515 Likewise.
5516 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
5517 Likewise.
5518 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Likewise.
5519 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
5520 * sysdeps/unix/sysv/linux/i386/i486/lowlevelmutex.S: Likewise.
5521 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Likewise.
5522 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Likewise.
5523 * sysdeps/unix/sysv/linux/x86_64/sem_trywait.S: Likewise.
5524 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Likewise.
5525 * sysdeps/unix/sysv/linux/x86_64/sem_post.S: Likewise.
5526 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
5527 * sysdeps/unix/sysv/linux/x86_64/lowlevelmutex.S: Likewise.
5528 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Likewise.
5529 * sysdeps/unix/sysv/linux/sh/sem_trywait.S: Likewise.
5530 * sysdeps/unix/sysv/linux/sh/sem_timedwait.S: Likewise.
5531 * sysdeps/unix/sysv/linux/sh/sem_post.S: Likewise.
5532 * sysdeps/unix/sysv/linux/sh/sem_wait.S: Likewise.
5533 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: Likewise.
5534 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S: Likewise.
5535 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S: Likewise.
5536 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise.
5537 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: Likewise.
5538 * sysdeps/unix/sysv/linux/sh/lowlevellock.S: Likewise.
5539 * sysdeps/unix/sysv/linux/sh/lowlevelmutex.S: Likewise.
5540 * sysdeps/i386/i486/pthread_spin_trylock.S: Likewise.
5541 * sysdeps/x86_64/pthread_spin_trylock.S: Likewise.
5542 * sysdeps/sh/pthread_spin_trylock.S: Likewise.
5543 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S: Likewise.
5544 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S: Likewise.
5545
5546 * sysdeps/unix/sysv/linux/fork.c: Add an assert to check that
5547 CLONE_CHILD_SETTID worked.
5548
35e148cb
UD
55492003-03-12 Ulrich Drepper <drepper@redhat.com>
5550
d0369fb8
UD
5551 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S: New
5552 file.
5553 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S: New
5554 file.
5555
5556 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h
5557 (pthread_cond_t): Add padding.
5558
da49194d
UD
5559 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S: New file.
5560 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S: New file.
5561 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_unlock.S: New file.
5562
35e148cb
UD
5563 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S
5564 (__pthread_rwlock_timedwrlock): Add missing opcode suffix.
5565 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S
5566 (__pthread_rwlock_timedrdlock): Likewise.
5567 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S
5568 (__pthread_rwlock_wrlock): Likewise.
5569 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S
5570 (__pthread_rwlock_rdlock): Likewise.
5571
5572 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: New file.
5573
5574 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Return
5575 result of lock re-get if it fails.
5576
3e976b96
UD
55772003-03-11 Ulrich Drepper <drepper@redhat.com>
5578
5a03acfe
UD
5579 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Fix asm syntax.
5580 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
5581 * sysdeps/unix/sysv/linux/x86_64/lowlevelmutex.S: Likewise.
5582 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S: Likewise.
5583 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
5584 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Likewise.
5585 * sysdeps/unix/sysv/linux/x86_64/sem_post.S: Likewise.
5586 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Likewise.
5587 * sysdeps/unix/sysv/linux/x86_64/sem_trywait.S: Likewise.
5588 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Likewise.
5589
5590 * sysdeps/x86_64/tls.h (THREAD_SELF, THREAD_GETMEM, THREAD_GETMEM_NC,
5591 THREAD_SETMEM, THREAD_SETMEM_NC): Correct asm syntax.
5592
5593 * allocatestack.c [! TLS_MULTIPLE_THREADS_IN_TCB] (allocate_stack):
5594 Initialize *__libc_multiple_threads_ptr not __libc_multiple_threads.
5595 * sysdeps/pthread/createthread.c [! TLS_MULTIPLE_THREADS_IN_TCB]
5596 (create_thread): Likewise.
5597 Define __pthread_multiple_threads and __libc_multiple_threads_ptr.
5598 * init.c (__pthread_initialize_minimal_internal): Initialize
5599 __libc_multiple_threads_ptr if necessary.
5600 * pthreadP.h: Adjust prototype for __libc_pthread_init. Declare
5601 __pthread_multiple_threads and __libc_multiple_threads_ptr.
5602 * sysdeps/unix/sysv/linux/libc_pthread_init.c: Define
5603 __libc_multiple_threads.
5604 (__libc_pthread_init): Return pointer to __libc_pthread_init if
5605 necessary.
5606
5607 * sysdeps/i386/tls.h (THREAD_SETMEM): Fix one-byte variant.
5608 (THREAD_SETMEM_NC): Likewise.
5609
5610 * sysdeps/x86_64/pthread_spin_trylock.c: Removed.
5611 * sysdeps/x86_64/pthread_spin_trylock.S: New file.
5612 * sysdeps/x86_64/pthread_spin_unlock.c: Removed.
5613 * sysdeps/x86_64/pthread_spin_unlock.S: New file.
5614
5615 * sysdeps/i386/i486/pthread_spin_trylock.S (pthread_spin_trylock):
5616 Eliminate one entire instruction.
5617
32a589b1
UD
5618 * cancellation.c (__pthread_enable_asynccancel_2): New function.
5619 * pthreadP.h: Declare __pthread_enable_asynccancel_2.
5620 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
5621 (__pthread_cond_timedwait): Use __pthread_enable_asynccancel_2
5622 instead of __pthread_enable_asynccancel.
5623 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S
5624 (__pthread_cond_wait): Likewise.
5625 * sysdeps/pthread/pthread_cond_timedwait.c
5626 (__pthread_cond_timedwait): Likewise.
5627 * sysdeps/pthread/pthread_cond_wait.c (__pthread_cond_wait): Likewise.
5628
3e976b96
UD
5629 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S
5630 (__condvar_cleanup): Wake up all waiters in case we got signaled
5631 after being woken up but before disabling asynchronous
5632 cancellation.
5633 * sysdeps/pthread/pthread_cond_wait.c (__condvar_cleanup): Likewise.
5634 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
5635 (__condvar_cleanup): Likewise.
5636
5637 * init.c (__NR_set_tid_address): If already defined, don't redefine.
5638 Make it an error if architecture has no #if case. Add x86-64.
5639
5640 * sysdeps/unix/sysv/linux/x86_64/Makefile: Add flags for
5641 pt-initfini.s generation.
5642
5643 * sysdeps/x86_64/tls.h: Include <asm/prctl.h>.
5644 (TLS_INIT_TP): Fix typo.
5645
6c477888
UD
56462003-03-11 Jakub Jelinek <jakub@redhat.com>
5647
5648 * sysdeps/ia64/bits/atomic.h (atomic_exchange_and_add): Swap 2nd and
5649 3rd argument of __arch_compare_and_exchange_{32,64}_val_acq.
5650
5651 * sysdeps/unix/sysv/linux/ia64/sem_post.c: Include semaphore.h.
5652 * sysdeps/unix/sysv/linux/ia64/sem_timedwait.c: Likewise.
5653 * sysdeps/unix/sysv/linux/ia64/sem_trywait.c: Likewise.
5654 * sysdeps/unix/sysv/linux/ia64/sem_wait.c: Likewise.
5655 * sysdeps/unix/sysv/linux/s390/sem_post.c: Likewise.
5656 * sysdeps/unix/sysv/linux/s390/sem_timedwait.c: Likewise.
5657 * sysdeps/unix/sysv/linux/s390/sem_trywait.c: Likewise.
5658 * sysdeps/unix/sysv/linux/s390/sem_wait.c: Likewise.
5659
ea694823
UD
56602003-03-11 Ulrich Drepper <drepper@redhat.com>
5661
6c477888
UD
5662 * sysdeps/pthread/pthread_cond_timedwait.c
5663 (__pthread_cond_timedwait): Return the result of the final
5664 locking. If it succeeds, the regular function return value.
5665
5666 * sysdeps/pthread/pthread_cond_wait.c (__pthread_cond_wait):
5667 Return result of the final locking.
5668 * version.c (__nptl_main): Work around problems with the strange
5669 INTERNAL_SYSCALL macro on ppc32.
5670 * init.c (__pthread_initialize_minimal_internal): Unblock
5671 SIGCANCEL in case the parent blocked it.
5672 Reported by Paul Mackerras <paulus@samba.org>.
5673
ea694823
UD
5674 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S: New file.
5675 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S: New file.
5676 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: New file.
5677
b33e6163
RM
56782003-03-11 Jakub Jelinek <jakub@redhat.com>
5679
5680 * sysdeps/pthread/pthread_cond_timedwait.c
5681 (__pthread_cond_timedwait): Unlock and fail if
5682 __pthread_mutex_unlock_internal failed.
5683
5684 * sysdeps/pthread/createthread.c (ARCH_CLONE): Define if not defined.
5685 (create_thread): Only assert PD->tcb != NULL under [TLS_TCB_AT_TP].
5686 Use ARCH_CLONE.
5687 * allocatestack.c (ALLOCATE_STACK_PARMS): New macro.
5688 [NEED_SEPARATE_REGISTER_STACK] (STACK_VARIABLES,
5689 STACK_VARIABLES_ARGS, STACK_VARIABLES_PARMS, ALLOCATE_STACK_PARMS,
5690 ALLOCATE_STACK): New macros.
5691 (TLS_TPADJ): New macro.
5692 (get_cached_stack, queue_stack, __deallocate_stack): Use TLS_TPADJ.
5693 (allocate_stack): Handle TLS_DTV_AT_TP and
5694 NEED_SEPARATE_REGISTER_STACK. Use TLS_TPADJ.
5695 * pthread_create.c (__pthread_create_2_1) [! TLS_TCB_AT_TP]:
5696 Don't set PD->self.
5697 * init.c [__ia64__] (__NR_set_tid_address): Define.
5698
5699 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: New file.
5700 * sysdeps/unix/sysv/linux/ia64/bits/semaphore.h: New file.
5701 * sysdeps/unix/sysv/linux/ia64/fork.c: New file.
5702 * sysdeps/unix/sysv/linux/ia64/createthread.c: New file.
5703 * sysdeps/unix/sysv/linux/ia64/libc-lowlevellock.c: New file.
5704 * sysdeps/unix/sysv/linux/ia64/libc-lowlevelmutex.c: New file.
5705 * sysdeps/unix/sysv/linux/ia64/lowlevellock.c: New file.
5706 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h: New file.
5707 * sysdeps/unix/sysv/linux/ia64/lowlevelmutex.c: New file.
5708 * sysdeps/unix/sysv/linux/ia64/pt-initfini.c: New file.
5709 * sysdeps/unix/sysv/linux/ia64/pt-vfork.S: New file.
5710 * sysdeps/unix/sysv/linux/ia64/pthread_once.c: New file.
5711 * sysdeps/unix/sysv/linux/ia64/sem_post.c: New file.
5712 * sysdeps/unix/sysv/linux/ia64/sem_timedwait.c: New file.
5713 * sysdeps/unix/sysv/linux/ia64/sem_trywait.c: New file.
5714 * sysdeps/unix/sysv/linux/ia64/sem_wait.c: New file.
5715 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h: New file.
5716 * sysdeps/ia64/bits/atomic.h: New file.
5717 * sysdeps/ia64/Makefile: New file.
5718 * sysdeps/ia64/pthread_spin_init.c: New file.
5719 * sysdeps/ia64/pthread_spin_lock.c: New file.
5720 * sysdeps/ia64/pthread_spin_trylock.c: New file.
5721 * sysdeps/ia64/pthread_spin_unlock.c: New file.
5722 * sysdeps/ia64/pthreaddef.h: New file.
5723 * sysdeps/ia64/tcb-offsets.sym: New file.
5724 * sysdeps/ia64/td_ta_map_lwp2thr.c: New file.
5725 * sysdeps/ia64/tls.h: New file.
5726
5727 * sysdeps/s390/pthreaddef.h (__exit_thread_inline): Pass 1 argument
5728 to syscall instead of no arguments.
5729
2b30b2e5
UD
57302003-03-10 Ulrich Drepper <drepper@redhat.com>
5731
db5f2fc9
UD
5732 * sysdeps/unix/sysv/linux/x86_64/sem_post.S: New file.
5733 * sysdeps/unix/sysv/linux/x86_64/sem_trywait.S: New file.
5734 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S: New file.
5735 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: New file.
5736
5737 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S: Fix error value in
5738 unused code.
5739
6a4263e3
UD
5740 * sysdeps/unix/sysv/linux/x86_64/pthread_barrier_wait.S: New file
5741
3de7c2a9
UD
5742 * sysdeps/unix/sysv/linux/Makefile (gen-as-const-headers): Add
5743 lowlevelbarrier.sym.
5744 * sysdeps/unix/sysv/linux/lowlevelbarrier.sym: New file.
5745 * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S:
5746 Include lowlevelbarrier.h and don't define offsets locally.
6a4263e3 5747 * sysdeps/unix/sysv/linux/sh/pthread_barrier_wait.S: Likewise.
3de7c2a9 5748
2a544d82
UD
5749 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h
5750 (__lll_mutex_lock_wait): Reverse order of first two parameters.
5751 (__lll_mutex_timedlock_wait): Likewise.
5752 (lll_mutex_lock): Adjust asm for that.
5753 (lll_mutex_timedlock): Likewise. Mark cx, cc, r10 as clobbered.
5754 (lll_lock): Adjust asm for operand order change.
5755 * sysdeps/unix/sysv/linux/x86_64/lowlevelmutex.S: New file.
5756 * sysdeps/unix/sysv/linux/x86_64/libc-lowlevelmutex.S: New file.
5757
ec06436c
UD
5758 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (__lll_lock_wait):
5759 Reverse order of parameters.
5760 (__lll_timedwait_tid): Remove regparms attribute.
5761 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: New file.
5762 * sysdeps/unix/sysv/linux/x86_64/libc-lowlevellock.S: New file.
5763
3273832c
UD
5764 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
5765 (__lll_timedwait_tid): Remove one unnecessary instruction.
5766
51f32ab8
UD
5767 * sysdeps/unix/sysv/linux/sh/lowlevelmutex.S: Define
5768 __lll_mutex_timedlock_wait only for NOT_IN_libc.
5769 * sysdeps/unix/sysv/linux/sh/libc-lowlevelmutex.S: Include
5770 lowlevelmutex.S.
5771
5772 * sysdeps/unix/sysv/linux/sh/lowlevellock.S: Define
5773 lll_unlock_wake_cb, __lll_wait_tid, and __lll_timedwait_tid only
5774 for NOT_IN_libc.
5775 * sysdeps/unix/sysv/linux/sh/libc-lowlevellock.S: Include
5776 lowlevellock.S.
5777
fad48d9e
UD
5778 * sysdeps/unix/sysv/linux/i386/i486/lowlevelmutex.S: Don't define
5779 LOCK is already defined. Don't define __lll_mutex_timedlock_wait
5780 for libc.so.
5781 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevelmutex.S: Only
5782 define LOCK here (if UP is not defined). The actual code is in
5783 lowlevelmutex.S.
5784
9356d063
UD
5785 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Don't define
5786 LOCK is already defined. Don't define lll_unlock_wake_cb and
5787 __lll_timedwait_tid for libc.so.
5788 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Only
5789 define LOCK here (if UP is not defined). The actual code is in
5790 lowlevellock.S.
5791
ebf0cbc5 5792 * sysdeps/unix/sysv/linux/i386/lowlevelsem.h: Not needed anymore.
106f6f9d
UD
5793 * sysdeps/unix/sysv/linux/s390/lowlevelsem.h: Likewise.
5794 * sysdeps/unix/sysv/linux/s390/sem_post.c: Include lowlevellock.h
5795 instead of lowlevelsem.h.
5796 * sysdeps/unix/sysv/linux/s390/sem_timedwait.c: Likewise.
5797 * sysdeps/unix/sysv/linux/s390/sem_trywait.c: Likewise.
5798 * sysdeps/unix/sysv/linux/s390/sem_wait.c: Likewise.
0be8ee21 5799
c915e5ad
UD
5800 * sysdeps/unix/sysv/linux/Makefile (gen-as-const-headers): Add
5801 lowlevelrwlock.sym.
5802 * sysdeps/unix/sysv/linux/lowlevelrwlock.sym: New file.
5803 * sysdeps/unix/sysv/linux/i386/lowlevelrwlock.h: Removed.
146fa1ee 5804 * sysdeps/unix/sysv/linux/sh/lowlevelrwlock.h: Removed.
c915e5ad 5805
4c3c2e8a
UD
5806 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (lll_trylock): Fix
5807 register loading.
5808 * sysdeps/unix/sysv/linux/i386/lowlevellock.h (lll_trylock): Undo
5809 last changed. D'oh.
5810
2b30b2e5
UD
5811 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: New file.
5812
5813 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Remove declaration
5814 of __libc_locking_needed.
5815 (lll_trylock): Initialize %eax to zero.
5816
2b30b2e5
UD
5817 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Update
5818 pthread_cond_t definition.
5819
e48f9638
RM
58202003-03-10 Roland McGrath <roland@redhat.com>
5821
5822 * sysdeps/unix/sysv/linux/lowlevelcond.sym: New file.
5823 * sysdeps/unix/sysv/linux/Makefile (gen-as-const-headers): Add it.
5824 * sysdeps/unix/sysv/linux/sh/lowlevelcond.h: File removed.
5825 * sysdeps/unix/sysv/linux/i386/lowlevelcond.h: Likewise.
5826 * sysdeps/unix/sysv/linux/x86_64/lowlevelcond.h: Likewise.
5827
5828 * allocatestack.c (allocate_stack) [!TLS_MULTIPLE_THREADS_IN_TCB]:
5829 Instead of setting PD->multiple_threads, set globals
5830 __pthread_multiple_threads and __libc_multiple_threads.
5831 * sysdeps/pthread/createthread.c (create_thread): Likewise.
5832 * sysdeps/i386/tls.h (TLS_MULTIPLE_THREADS_IN_TCB): Define it.
5833 * sysdeps/s390/tls.h (TLS_MULTIPLE_THREADS_IN_TCB): Likewise.
5834
5835 * descr.h (struct pthread): Conditionalize first member on
5836 [!TLS_DTV_AT_TP]. Replace the `header' member with an anonymous union
5837 containing an anonymous tcbhead_t. Move `list' member out.
5838 [TLS_MULTIPLE_THREADS_IN_TCB]: Define a `multiple_threads' member.
5839 * allocatestack.c: Remove use of `header.data.' prefix.
5840 * pthread_create.c: Likewise.
5841 * init.c (__pthread_initialize_minimal_internal): Likewise.
5842 * sysdeps/pthread/createthread.c (create_thread): Likewise.
5843 * sysdeps/i386/tls.h (INSTALL_DTV): Add parens.
5844 (THREAD_SELF, THREAD_DTV, INSTALL_NEW_DTV): No `header.data.' prefix.
5845 * sysdeps/x86_64/tls.h: Likewise.
5846 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h
5847 (SINGLE_THREAD_P): Likewise.
5848 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h
5849 (SINGLE_THREAD_P): Likewise.
5850 * sysdeps/i386/tls.h (tcbhead_t): Remove `list' member.
5851 * sysdeps/s390/tls.h (tcbhead_t): Likewise.
5852
c37cae9e
UD
58532003-03-09 Ulrich Drepper <drepper@redhat.com>
5854
d38c777e
RM
5855 * sysdeps/unix/sysv/linux/x86_64/lowlevelcond.h: New file.
5856
7b44a5e0 5857 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h: New file.
2b30b2e5 5858 * sysdeps/unix/sysv/linux/x86_64/fork.c: New file.
7b44a5e0 5859
c2e5e085
UD
5860 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Fix many
5861 leftovers from the ia32 code.
5862
5863 * sysdeps/unix/sysv/linux/i386/pthread_once.S: Remove unneccessary
5864 memory load.
5865 (clear_once_control): Don't load %esi.
5866
5867 * sysdeps/x86_64/tls.h: Remove all traces of segment descriptor
5868 handling.
5869
5870 * sysdeps/unix/sysv/linux/x86_64/fork.c: New file.
5871
cd4b2a55
UD
5872 * sysdeps/unix/sysv/linux/s390/createthread.c: Moved to...
5873 * sysdeps/unix/sysv/linux/createthread.c: ...here.
5874
c37cae9e
UD
5875 * Makefile (tests): Add tst-cond10.
5876 * tst-cond10.c: New file.
5877
d130a341
UD
58782003-03-08 Ulrich Drepper <drepper@redhat.com>
5879
ccf1d573
UD
5880 * tst-tls2.c (do_test): Add TEMP_FAILURE_RETRY around sem_wait call.
5881 * tst-signal3.c (do_test): Likewise.
5882 * tst-sem5.c (do_test): Likewise.
5883 * tst-kill6.c (do_test): Likewise.
5884 * tst-tls3.c (do_test): Likewise. Include <errno.h>.
5885
5886 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Use add/sub instead
5887 of inc/dec.
5888 * sysdeps/unix/sysv/linux/i386/lowlevelsem.h: Likewise.
5889 * sysdeps/unix/sysv/linux/i386/pthread_once.S: Likewise
5890 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: Likewise.
5891 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S: Likewise.
5892 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
5893 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S: Likewise.
5894 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
5895 Likewise.
5896 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
5897 Likewise.
5898 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Likewise.
5899 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
5900 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
5901 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S: Likewise.
5902 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S: Likewise.
5903 * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S: Likewise.
5904 * sysdeps/unix/sysv/linux/i386/i486/lowlevelmutex.S: Likewise.
5905 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Likewise.
5906
d130a341
UD
5907 * allocatestack.c (allocate_stack): If mprotect() fails free the
5908 TLS memory.
5909
bc6389ad
UD
59102003-03-07 Ulrich Drepper <drepper@redhat.com>
5911
41d4d223
UD
5912 * sysdeps/i386/i486/bits/atomic.h: Fix a few unused definitions.
5913
5914 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Remove all trace of
5915 lll_wake_tid. This was used only to work around kernel limits in
5916 the early days.
5917 * sysdeps/unix/sysv/linux/s390/lowlevellock.h: Likewise.
5918 * sysdeps/unix/sysv/linux/sh/libc-lowlevellock.S: Likewise.
5919 * sysdeps/unix/sysv/linux/sh/lowlevellock.S: Likewise.
5920 * sysdeps/unix/sysv/linux/sh/lowlevellock.h: Likewise.
5921
bc6389ad
UD
5922 * init.c (__static_tls_align_m1): Renamed from __static_tls_align.
5923 (__pthread_initialize_minimal_internal): Change initialization of
5924 __static_tls_align_m1 appropriately.
5925 * pthreadP.h (__static_tls_align_m1): Renamed from
5926 __static_tls_align.
5927 * allocatestack.c (allocate_stack): Use __static_tls_align_m1
5928 instead of __static_tls_align-1.
5929
cc775edf
UD
59302003-03-04 Ulrich Drepper <drepper@redhat.com>
5931
0de28d5c 5932 * sysdeps/unix/sysv/linux/x86_64/Makefile: New file.
6245b6ae 5933
518b5308
UD
5934 * pthread_create.c: Define __pthread_keys using nocommon
5935 attribute, not by placing it explicitly in bss.
5936 Remove DEFINE_DEALLOC definition. Not needed anymore.
5937
5938 * allocatestack.c: Define ARCH_MAP_FLAGS if not already defined.
5939 Use it in mmap call to allocate stacks.
5940
5941 * sysdeps/pthread/createthread.c (create_thread): Fix comment.
5942
cc775edf
UD
5943 * pthread_create.c (start_thread): Use THREAD_SETMEM to store
5944 result of the thread function.
5945
4f6f0a8f
UD
59462003-03-03 Ulrich Drepper <drepper@redhat.com>
5947
f04a2721
UD
5948 * sysdeps/unix/sysv/linux/s390/dl-sysdep.h: Removed. The generic
5949 version is just fine.
5950
4f6f0a8f
UD
5951 * sysdeps/unix/sysv/linux/libc_pthread_init.c
5952 (__pthread_child_handler): Renamed from pthread_child_handler,
5953 exported, and marked hidden. Change all users.
5954 * sysdeps/unix/sysv/linux/register-atfork.c (free_mem): Do not
5955 free __pthread_child_handler from child list.
5956
7ce5c164
UD
59572003-03-03 Martin Schwidefsky <schwidefsky@de.ibm.com>
5958
5959 * atomic.h (atomic_exchange_and_add): Return newval, not oldval.
5960
5961 * sysdeps/pthread/pthread_cond_timedwait.c (__pthread_cond_timedwait):
5962 Fix handling of cancellation and failing pthread_mutex_unlock call.
5963 * sysdeps/pthread/pthread_cond_wait.c (__condvar_cleanup): Likewise.
5964 (__pthread_cond_wait): Likewise.
5965
5966 * sysdeps/pthread/pthread_rwlock_timedrdlock.c
5967 (pthread_rwlock_timedrdlock): Fix clobber of result variable by
5968 lll_futex_timed_wait call.
5969 * sysdeps/pthread/pthread_rwlock_timedwrlock.c
5970 (pthread_rwlock_timedwrlock): Likewise.
5971
5972 * sysdeps/unix/sysv/linux/s390/libc-lowlevellock.c (___lll_lock):
5973 Don't define lll_unlock_wake_cb and ___lll_timedwait_tid in libc.so.
5974 * sysdeps/unix/sysv/linux/s390/lowlevellock.c: Remove XXX comments.
5975
5976 * sysdeps/unix/sysv/linux/s390/sem_post.c (__new_sem_post): Fix
5977 check of lll_futex_wake return value.
5978
ea6a015b
RM
59792003-03-03 Roland McGrath <roland@redhat.com>
5980
5981 * forward.c: Fix typo in __pthread_attr_init_2_0 compat_symbol decl.
5982
5983 * sysdeps/pthread/pthread-functions.h (struct pthread_functions):
5984 Argument to ptr___pthread_cleanup_upto is __jmp_buf, not jmp_buf.
5985 * sysdeps/unix/sysv/linux/jmp-unwind.c: Likewise.
5986
4adacf57
UD
59872003-03-02 Ulrich Drepper <drepper@redhat.com>
5988
1be3d664
UD
5989 * sysdeps/pthread/timer_create.c (timer_create): Return correct
5990 error for CPU clocks.
5991
885bafa1
UD
5992 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define
5993 _POSIX_MONOTONIC_CLOCK.
5994 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
5995
4adacf57
UD
5996 * tst-cancel4.c (tf_sleep): Lower sleep time a bit to not upset
5997 recent kernels.
5998
86bfff4d
UD
59992003-03-01 Ulrich Drepper <drepper@redhat.com>
6000
6001 * descr.h (struct pthread): Move cleanup field to the front.
6002
d1149385
RM
60032003-03-01 Roland McGrath <roland@redhat.com>
6004
6005 * sem_open.c (sem_open): Braino fix.
6006
bd8bb78b
UD
60072003-03-01 Ulrich Drepper <drepper@redhat.com>
6008
748bec08
UD
6009 * sysdeps/i386/tcb-offsets.sym: Add CLEANUP and CLEANUP_PREV.
6010 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Inline
6011 __pthread_cleanup_pop functionality.
6012 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
6013
bd8bb78b
UD
6014 * descr.h (struct pthread): Move tid field to the front now that
6015 it is often used.
6016
6017 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevelmutex.S
6018 (__lll_mutex_timedlock_wait): Remove.
6019 (__lll_mutex_unlock_wake): Don't save, load, and restore %esi.
6020 * sysdeps/unix/sysv/linux/i386/i486/lowlevelmutex.S
6021 (__lll_mutex_unlock_wake): Don't save, load, and restore %esi.
6022 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
6023 (lll_unlock_wake_cb): Don't save and restore %esi.
6024 (__lll_unlock_wake): Add alignment. Don't save, load, and restore
6025 %esi.
6026 (__lll_timedwait_tid): Add alignment.
6027 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S
6028 (__lll_unlock_wake): Add alignment. Don't save, load, and restore
6029 %esi.
6030 (__lll_timedwait_tid): Removed.
6031 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S
6032 (__pthread_cond_broadcast): Don't save, load, and restore %esi.
6033 * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S
6034 (pthread_barrier_wait): Don't save, load, and restore %esi for
6035 last thread.
6036 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
6037 (__pthread_cond_signal): Don't save, load, and restore %esi.
6038 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S
6039 (__pthread_rwlock_unlock): Don't save, load, and restore %esi.
6040 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S (__new_sem_post):
6041 Don't save, load, and restore %esi.
6042
d2637c70
UD
60432003-02-27 Ulrich Drepper <drepper@redhat.com>
6044
567fb22a
UD
6045 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S:
6046 Release lock before waking up the waiters.
6047
427f5fa1
UD
6048 * tst-exit1.c (do_test): Don't start more than one thread in parallel.
6049
a2d83cfb
UD
6050 * tst-rwlock9.c (writer_thread): Correct adding TIMEOUT.
6051 (reader_thread): Likewise.
6052
d2637c70
UD
6053 * sysdeps/pthread/pthread_rwlock_unlock.c
6054 (__pthread_rwlock_unlock): Release internal lock early. Don't try
6055 to wake up readers if there are none.
6056
6057 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S:
6058 Release internal lock before wake threads.
6059
b1531183
UD
60602003-02-26 Ulrich Drepper <drepper@redhat.com>
6061
dbf6131c
UD
6062 * Makefile (tests): Add tst-rwlock10 and tst-rwlock11.
6063 * tst-rwlock8.c: Initialize lock with INIT. Allow INIT to be
6064 predefined.
6065 * tst-rwlock9.c: Likewise.
6066 * tst-rwlock10.c: New file.
6067 * tst-rwlock11.c: New file.
6068
695799fe
UD
6069 * Makefile (tests): Add tst-dlsym1.
6070 * tst-dlsym1.c: New file.
6071
b1531183
UD
6072 * init.c (__pthread_initialize_minimal_internal): Set
6073 GL(dl_error_catch_tsd) to __libc_dl_error_tsd.
6074 * Versions (libc:GLIBC_PRIVATE): Export __libc_dl_error_tsd.
6075
3724f268
UD
60762003-02-24 Ulrich Drepper <drepper@redhat.com>
6077
3857ca78
UD
6078 * sem_open.c (sem_open): Fix handling of O_CREAT without O_EXCL.
6079
80d80779
UD
6080 * tst-cond2.c: Fix sychronization with child.
6081
86371308
UD
6082 * tst-rwlock8.c (reader_thread): Remove unused variable.
6083
ffeb4481
UD
6084 * Makefile: Add rules to build and run tst-tls3.
6085 * tst-tls3.c: New file.
6086 * tst-tls3mod.c: New file.
6087
3724f268
UD
6088 * Makefile (tests): Add tst-rwlock8 and tst-rwlock9.
6089 * tst-rwlock8.c: New file.
6090 * tst-rwlock9.c: New file.
6091 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Fix
6092 complete broken rwlock implementation.
6093 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
6094 Likewise.
6095 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
6096 Likewise.
6097 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S: Likewise.
6098 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
18a53579
UD
6099 * sysdeps/pthread/pthread_rwlock_rdlock.c: Likewise.
6100 * sysdeps/pthread/pthread_rwlock_timedrdlock.c: Likewise.
6101 * sysdeps/pthread/pthread_rwlock_timedwrlock.c: Likewise.
6102 * sysdeps/pthread/pthread_rwlock_unlock.c: Likewise.
6103 * sysdeps/pthread/pthread_rwlock_wrlock.c: Likewise.
3724f268 6104
8915cc40
RM
61052003-02-23 Roland McGrath <roland@redhat.com>
6106
6107 * Makefile (nptl-version): Change regexp so case sensitivity is ok.
6108
fd1a0d0c
UD
61092003-02-23 Ulrich Drepper <drepper@redhat.com>
6110
ecf28959
UD
6111 * Makefile (tests): Add tst-context1.
6112 * tst-context1.c: New file.
6113
5e47b76b
UD
6114 * Makefile (tests): Add tst-tls1 and tst-tls2.
6115 * tst-tls1.c: New file.
6116 * tst-tls2.c: New file.
6117
5a6bbb41
UD
6118 * libc-cancellation.c (__libc_enable_asynccancel): Correct test
6119 for failed cmpxchg.
6120
fd1a0d0c
UD
6121 * pthread_create.c (start_thread): Set EXITING_BIT early.
6122
6123 * sysdeps/i386/tls.h (THREAD_GETMEM): Mark asm as volatile.
6124 (THREAD_GETMEM_NC): Likewise.
6125
757f9fcb
UD
61262003-02-22 Ulrich Drepper <drepper@redhat.com>
6127
b1b8e747
UD
6128 * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S: Shave
6129 off 3 more bytes by using offset-less instructions when possible.
6130
c780aa21 6131 * Makefile: Add dependency for $(objpfx)version.d.
757f9fcb
UD
6132
6133 * eintr.c (eintr_source): Add unnecessary return but the compiler
6134 insists.
6135
6136 * tst-kill3.c: Include <unistd.h>.
6137
5148559c
RM
61382003-02-21 Roland McGrath <roland@redhat.com>
6139
6140 * pthread_create.c (start_thread): Call __libc_thread_freeres.
6141
ab2d98e3
UD
61422003-02-21 Ulrich Drepper <drepper@redhat.com>
6143
71028edd
UD
6144 * Makefile (tests): Add tst-eintr1.
6145 (distribute): Add eintr.c.
6146 * tst-eintr1.c: New file.
6147 * eintr.c: New file.
6148
e814f748
UD
6149 * pthread_cancel.c (pthread_cancel): Use tkill directly.
6150
6151 * sysdeps/unix/sysv/linux/pthread_kill.c (__pthread_kill):
6152 Disallow sending SIGCANCEL.
6153
ab2d98e3 6154 * Makefile (tests): Remove tst-basic7. Add tst-kill1, tst-kill2,
9c03686d 6155 tst-kill3, tst-kill4, tst-kill5, tst-kill6.
e814f748
UD
6156 * tst-kill1.c: New file.
6157 * tst-kill2.c: New file.
6158 * tst-kill3.c: New file.
6159 * tst-kill5.c: New file.
9c03686d 6160 * tst-kill6.c: New file.
e814f748
UD
6161 * tst-basic7.c: Renamed to...
6162 * tst-kill4.c: ...this.
ab2d98e3 6163
59fed0e2
RM
61642003-02-21 Roland McGrath <roland@redhat.com>
6165
6166 * Makefile (install-lib-ldscripts): New variable.
6167
49dc759f
UD
61682003-02-21 Ulrich Drepper <drepper@redhat.com>
6169
8c2e9a29
UD
6170 * pthreadP.h: Define INVALID_TD_P and INVALID_NOT_TERMINATED_TD_P.
6171 * pthread_cancel.c: Use INVALID_TD_P.
6172 * pthread_detach.c: Likewise.
6173 * pthread_getschedparam.c: Likewise.
6174 * pthread_setschedparam.c: Likewise.
6175 * sysdeps/pthread/pthread_getcpuclockid.c: Likewise.
6176 * sysdeps/unix/sysv/linux/pthread_kill.c: Likewise.
6177 * pthread_join.c: Use INVALID_NOT_TERMINATED_TD_P.
6178 * pthread_timedjoin.c: Likewise.
6179
6180 * tst-basic7.c: Include <signal.h>.
6181
49dc759f
UD
6182 * pthread_join.c (pthread_join): Limited checking for invalid
6183 descriptors.
6184 * pthread_timedjoin.c (pthread_timedjoin_np): Likewise.
6185
df5803bf
UD
61862003-02-20 Ulrich Drepper <drepper@redhat.com>
6187
c5acd3d7
UD
6188 * pthread_create.c (deallocate_tsd): Reset found_nonzero at the
6189 beginning of the loop. Clear the entire first block of TSD.
df5803bf
UD
6190 * Makefile (tests): Add tst-key4.
6191 * tst-key4.c: New file.
6192
729924a0
UD
61932003-02-18 Ulrich Drepper <drepper@redhat.com>
6194
2f7dc594
UD
6195 * Makefile (tests): Add tst-basic7.
6196 * tst-basic7.c: New file.
6197
ba25bb0f
UD
6198 * pthread_create.c (deallocate_tsd): Mark as internal_function.
6199 Add some more __builtin_expect.
6200
12fd3c5f 6201 * pthreadP.h: Define dummy version of DEBUGGING_P.
729924a0 6202
5430d926
UD
62032003-02-17 Ulrich Drepper <drepper@redhat.com>
6204
b0db7fbe
UD
6205 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Remnove
6206 _POSIX_THREAD_PRIORITY_SCHEDULING.
6207 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Remove
6208 _XOPEN_REALTIME_THREADS.
6209 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Likewise.
6210
6211 * sysdeps/unix/sysv/linux/pthread_kill.c (__pthread_kill): The
6212 kernel returns EINVAL for PID <= 0, work around it.
6213
ecfda9bd
UD
6214 * Makefile (tests): Add tst-signal5.
6215 * tst-signal5.c: New file.
6216
7d78ab99
UD
6217 * sysdeps/unix/sysv/linux/bits/local_lim.h: Define TTY_NAME_MAX
6218 and LOGIN_NAME_MAX.
6219
371a2972
UD
6220 * tst-cancel1.c (tf): Block all signals.
6221
5430d926
UD
6222 * Makefile (tests): Add tst-basic6.
6223 * tst-basic6.c: New file.
6224
6225 * tst-basic1.c: Add test for process ID.
6226
6227 * Makefile (tests): Add tst-cancel10.
6228 * tst-cancel10.c: New file.
6229
6230 * Makefile (tests): Add tst-signal4.
6231 * tst-signal4.c: New file.
6232
6233 * sysdeps/pthread/pthread_sigmask.c (pthread_sigmask): Use
6234 __sigismember instead of sigismember. Add __builtin_expect.
6235
1564916a
UD
62362003-02-16 Ulrich Drepper <drepper@redhat.com>
6237
179ff175
UD
6238 * tst-attr1.c (do_test): Add tests for pthread_setcanceltype,
6239 pthread_setcancelstate, and pthread_rwlock_setpshared.
6240
e4335f9a
UD
6241 * tst-cancel7.c (do_test): Make sure the pid file exists before
6242 canceling the thread.
6243
0a37669a
UD
6244 * tst-rwlock6.c: More pthread_rwlock_timedwrlock and
6245 pthread_rwlock_timedrdlock tests.
6246 * tst-rwlock7.c: More pthread_rwlock_timedwrlock tests.
6247 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
6248 Check for invalid tv_nsec field.
6249 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
6250 Likewise.
6251
6252 * pthread_mutex_trylock.c (__pthread_mutex_trylock): Protect
6253 recursive mutex of overflow.
6254
6255 * tst-attr1.c (do_test): Add test for pthread_mutexattr_setpshared.
6256
e4335f9a 6257 * libc-cancellation.c (__libc_enable_asynccancel): Rewrite to avoid
1564916a
UD
6258 going into an endless loop.
6259 * Makefile (tests): Add tst-cancel9.
6260 * tst-cancel9.c: New file.
6261
6262 * pthread_cancel.c (pthread_cancel): Use the result of __pthread_kill.
6263
b270b548
UD
62642003-02-15 Ulrich Drepper <drepper@redhat.com>
6265
1c82b97f
UD
6266 * tst-mutex5.c (do_test): Add more timedlock tests.
6267
b2f05465 6268 * tst-mutex2.c: Tests of trylock and unlock with ERROR mutexes.
c3bb9ee1
UD
6269 * tst-mutex3.c (do_test): Add tests for trylock with RECURSIVE mutexes.
6270
e798b60f
UD
6271 * sysdeps/unix/sysv/linux/pthread_kill.c (__pthread_kill): Don't
6272 use INLINE_SYSCALL. Error number is returned, not -1.
6273
90491dc4
UD
6274 * pthreadP.h: Mark declarations of __find_in_stack_list, __free_tcb,
6275 and __deallocate_stack with internal_function.
6276 * pthread_create.c: Adjust definitions appropriately.
6277 * allocatestack.c: Likewise.
6278
6279 * pthread_join.c: Add one more __builtin_expect.
6280 * pthread_timedjoin.c: Likewise.
6281
6282 * pthread_getspecific.c (__pthread_getspecific): Clear data->data
6283 not data of sequence number does not match.
6284 Add one __builtin_expect.
6285
c6247c9d
UD
6286 * Makefile (tests): Add tst-clock1.
6287 * tst-clock1.c: New file.
6288
b270b548
UD
6289 * pthread_setconcurrency.c (pthread_setconcurrency): Fail for
6290 negative arguments.
6291 * Makefile (tests): Add tst-basic5.
6292 * tst-basic5.c: New file.
6293
700bf7af
UD
62942003-02-14 Ulrich Drepper <drepper@redhat.com>
6295
757de559
UD
6296 * Makefile (tests): Add tst-basic4.
6297 * tst-basic4.c: New file.
6298
47202270
UD
6299 * pthreadP.h: Add declaraction for __nptl_nthreads.
6300 * pthread_create.c: Define __nptl_nthreads
6301 (start_thread): Increment __nptl_nthreads at beginning. Decrement
b270b548 6302 after thread is done. If then zero, call exit(0).
47202270
UD
6303 * sysdeps/pthread/pthread-functions.h (struct pthread_functions):
6304 Add ptr_nthreads. Define HAVE_PTR_NTHREADS.
6305 * init.c (pthread_functions): Initialize ptr_nthreads.
6306 * allocatestack.c (nptl_nthreads): Remove definition and all uses.
6307 (__reclaim_stacks): Decrement __nptl_nthreads.
6308 * sysdeps/pthread/Makefile [$(subdir)==csu] (CFLAGS-libc-start.c):
6309 Define.
6310 * Makefile (tests): Add tst-basic3.
6311 * tst-basic3.c: New file.
6312
e320ef46
UD
6313 * descr.h: Define CANCELING_BIT and CANCELING_BITMASK. Introduce
6314 after CANCELTYPE_BIT, move the other bits up. Update CANCEL_RESTMASK.
6315 * init.c (sigcancel_handler): Also set CANCELING_BITMASK bit in newval.
6316 * pthread_cancel.c (pthread_cancel): Likewise. Also set CANCELING_BIT
6317 if asynchronous canceling is enabled.
6318 * pthread_join.c (pthread_join): When recognizing circular joins,
6319 take into account the other thread might be already canceled.
6320 * Makefile (tests): Add tst-join5.
6321 * tst-join5.c: New file.
6322
700bf7af
UD
6323 * Makefile (tests): Add tst-join4.
6324 * tst-join4.c: New file.
6325
63262003-02-13 Ulrich Drepper <drepper@redhat.com>
6327
6328 * tst-cond4.c (main): Add test of pthread_attr_getpshared.
6329
dac0f772
UD
63302003-02-13 Martin Schwidefsky <schwidefsky@de.ibm.com>
6331
6332 * sysdeps/s390/tls.h (THREAD_GETMEM, THREAD_GETMEM_NC, THREAD_SETMEM,
6333 THREAD_SETMEM_NC): Use passed descr instead of THREAD_SELF.
6334 * sysdeps/unix/sysv/linux/s390/jmp-unwind.c (_longjmp_unwind): Avoid
6335 warning.
6336 * sysdeps/unix/sysv/linux/s390/lowlevellock.c: Include <sys/time.h>
6337 to avoid warning.
6338 * sysdeps/unix/sysv/linux/s390/sem_post.c (__new_sem_post): Return
6339 error if lll_futex_wake failed.
6340
e8cda341
UD
63412003-02-13 Ulrich Drepper <drepper@redhat.com>
6342
a7720b5e
UD
6343 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Fix
6344 handling of cancellation and failung pthread_mutex_unlock call.
6345 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
6346 * Makefile (tests): Add tst-cond8 and tst-cond9.
6347 * tst-cond8.c: New file.
6348 * tst-cond9.c: New file.
6349
a1ea4c06
UD
6350 * tst-cond7.c (do_test): Unlock the mutex before canceling the thread.
6351
6352 * sysdeps/pthread/pthread.h: Add missing initializers. Protect
6353 non-standard initializers with __USE_GNU.
6354
e8cda341
UD
6355 * Makefile (tests): Add tst-cleanup3.
6356 * tst-cleanup3.c: New file.
6357
2067577c
UD
63582003-02-12 Ulrich Drepper <drepper@redhat.com>
6359
89e78a95
UD
6360 * Makefile (tests): Add tst-attr1 and tst-attr2.
6361 * tst-attr1.c: New file.
6362 * tst-attr2.c: New file.
6363
dfdd294a
UD
6364 * Makefile: Add rules to build and run tst-atfork2 test.
6365 * tst-atfork2.c: New file.
6366 * tst-atfork2mod.c: New file.
6367
6368 * sysdeps/unix/sysv/linux/unregister-atfork.c
6369 (__unregister_atfork): Free the memory allocated for the handlers
6370 after removing them from the lists.
6371
6372 * sysdeps/unix/sysv/linux/register-atfork.c: Define memeory
6373 cleanup function.
6374
6375 * tst-atfork1.c (do_test): Wait for the child we forked.
6376 Report error in child.
6377
6378 * sysdeps/unix/sysv/linux/fork.c (__libc_fork): Fix comment.
6379
2067577c
UD
6380 * sysdeps/pthread/Makefile: Define CFLAGS-confstr.c.
6381
2a8a8a84
UD
63822003-02-10 Ulrich Drepper <drepper@redhat.com>
6383
d9dd121e
UD
6384 * Makefile (tests): Add tst-cancel8.
6385 * tst-cancel8.c: New file.
6386
2a8a8a84
UD
6387 * sysdeps/unix/sysv/linux/i386/pthread_once.S (clear_once_control): Fix
6388 clearing of control variable.
defd1870 6389 * Makefile (tests): Add tst-once3 and tst-once4.
2a8a8a84 6390 * tst-once3.c: New file.
defd1870 6391 * tst-once4.c: New file.
2a8a8a84 6392
a54e8d33
UD
63932003-02-08 kaz Kojima <kkojima@rr.iij4u.or.jp>
6394
6395 * sysdeps/sh/Makefile: New file.
6396 * sysdeps/sh/bits/atomic.h: New file.
6397 * sysdeps/sh/pthread_spin_init.c: New file.
6398 * sysdeps/sh/pthread_spin_lock.c: New file.
6399 * sysdeps/sh/pthread_spin_trylock.S: New file.
6400 * sysdeps/sh/pthread_spin_unlock.S: New file.
6401 * sysdeps/sh/pthreaddef.h: New file.
6402 * sysdeps/sh/tcb-offsets.sym: New file.
6403 * sysdeps/sh/td_ta_map_lwp2thr.c: New file.
6404 * sysdeps/sh/tls.h: New file.
6405 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: New file.
6406 * sysdeps/unix/sysv/linux/sh/bits/semaphore.h: New file.
6407 * sysdeps/unix/sysv/linux/sh/createthread.c: New file.
6408 * sysdeps/unix/sysv/linux/sh/fork.c: New file.
6409 * sysdeps/unix/sysv/linux/sh/libc-lowlevellock.S: New file.
6410 * sysdeps/unix/sysv/linux/sh/libc-lowlevelmutex.S: New file.
6411 * sysdeps/unix/sysv/linux/sh/lowlevel-atomic.h: New file.
6412 * sysdeps/unix/sysv/linux/sh/lowlevelcond.h: New file.
6413 * sysdeps/unix/sysv/linux/sh/lowlevellock.S: New file.
6414 * sysdeps/unix/sysv/linux/sh/lowlevellock.h: New file.
6415 * sysdeps/unix/sysv/linux/sh/lowlevelmutex.S: New file.
6416 * sysdeps/unix/sysv/linux/sh/lowlevelrwlock.h: New file.
6417 * sysdeps/unix/sysv/linux/sh/pt-initfini.c: New file.
6418 * sysdeps/unix/sysv/linux/sh/pt-vfork.S: New file.
6419 * sysdeps/unix/sysv/linux/sh/pthread_barrier_wait.S: New file.
6420 * sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S: New file.
6421 * sysdeps/unix/sysv/linux/sh/pthread_cond_signal.S: New file.
6422 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: New file.
6423 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: New file.
6424 * sysdeps/unix/sysv/linux/sh/pthread_once.S: New file.
6425 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: New file.
6426 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S: New file.
6427 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S: New file.
6428 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S: New file.
6429 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: New file.
6430 * sysdeps/unix/sysv/linux/sh/sem_post.S: New file.
6431 * sysdeps/unix/sysv/linux/sh/sem_timedwait.S: New file.
6432 * sysdeps/unix/sysv/linux/sh/sem_trywait.S: New file.
6433 * sysdeps/unix/sysv/linux/sh/sem_wait.S: New file.
6434 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h: New file.
6435
696e556e
UD
64362003-02-08 Ulrich Drepper <drepper@redhat.com>
6437
6438 * tst-cond2.c: Rearrange code to not rely on behavior undefined
6439 according to POSIX.
6440
6441 * tst-basic2.c (do_test): Lock mutex before creating the thread.
6442
fef710d6
UD
64432003-02-07 Ulrich Drepper <drepper@redhat.com>
6444
c6180643
UD
6445 * sysdeps/x86_64/tls.h: Remove unnecessary macros, left over from x86.
6446 (TLS_GET_FS): New #define.
6447 (TLS_SET_FS): New #define.
6448 Correct value of __NR_set_thread_area.
6449
fef710d6
UD
6450 * sysdeps/x86_64/td_ta_map_lwp2thr.c: New file.
6451
11090a99
UD
64522003-02-06 Ulrich Drepper <drepper@redhat.com>
6453
65c68990
UD
6454 * Makefile (tests): Add tst-popen1.
6455 * tst-popen1.c: New file.
6456
11090a99
UD
6457 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Remove wrong
6458 but inactive generalization.
6459 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
6460 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S: Likewise.
6461 Minor optimization, remove one instruction.
6462 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S: Likewise.
6463
a88c9263
UD
64642003-02-04 Martin Schwidefsky <schwidefsky@de.ibm.com>
6465
6466 * sysdeps/unix/sysv/linux/s390/fork.c: Correct order of parameters.
6467
64682003-01-31 Martin Schwidefsky <schwidefsky@de.ibm.com>
6469
6470 * init.c (__NR_set_tid_address): Add #ifdef for s390.
6471 * sysdeps/pthread/pthread_barrier_wait.c: New file.
6472 * sysdeps/pthread/pthread_cond_broadcast.c: New file.
6473 * sysdeps/pthread/pthread_cond_signal.c: New file.
6474 * sysdeps/pthread/pthread_cond_timedwait.c: New file.
6475 * sysdeps/pthread/pthread_cond_wait.c: New file.
6476 * sysdeps/pthread/pthread_rwlock_rdlock.c: New file.
6477 * sysdeps/pthread/pthread_rwlock_timedrdlock.c: New file.
6478 * sysdeps/pthread/pthread_rwlock_timedwrlock.c: New file.
6479 * sysdeps/pthread/pthread_rwlock_unlock.c: New file.
6480 * sysdeps/pthread/pthread_rwlock_wrlock.c: New file.
6481 * sysdeps/s390/Makefile: New file.
6482 * sysdeps/s390/bits/atomic.h: New file.
6483 * sysdeps/s390/pthread_spin_init.c: New file.
6484 * sysdeps/s390/pthread_spin_lock.c: New file.
6485 * sysdeps/s390/pthread_spin_trylock.c: New file.
6486 * sysdeps/s390/pthread_spin_unlock.c: New file.
6487 * sysdeps/s390/pthreaddef.h: New file.
6488 * sysdeps/s390/tcb-offsets.sym: New file.
6489 * sysdeps/s390/td_ta_map_lwp2thr.c: New file.
6490 * sysdeps/s390/tls.h: New file.
6491 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: New file.
6492 * sysdeps/unix/sysv/linux/s390/bits/semaphore.h: New file.
6493 * sysdeps/unix/sysv/linux/s390/createthread.c: New file.
6494 * sysdeps/unix/sysv/linux/s390/dl-sysdep.h: New file.
6495 * sysdeps/unix/sysv/linux/s390/fork.c: New file.
6496 * sysdeps/unix/sysv/linux/s390/jmp-unwind.c: New file.
6497 * sysdeps/unix/sysv/linux/s390/libc-lowlevellock.c: New file.
6498 * sysdeps/unix/sysv/linux/s390/libc-lowlevelmutex.c: New file.
6499 * sysdeps/unix/sysv/linux/s390/lowlevellock.c: New file.
6500 * sysdeps/unix/sysv/linux/s390/lowlevellock.h: New file.
6501 * sysdeps/unix/sysv/linux/s390/lowlevelmutex.c: New file.
6502 * sysdeps/unix/sysv/linux/s390/lowlevelsem.h: New file.
6503 * sysdeps/unix/sysv/linux/s390/pthread_once.c: New file.
6504 * sysdeps/unix/sysv/linux/s390/s390-32/pt-initfini.c: New file.
6505 * sysdeps/unix/sysv/linux/s390/s390-32/pt-vfork.S: New file.
6506 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h: New file.
6507 * sysdeps/unix/sysv/linux/s390/s390-64/pt-initfini.c: New file.
6508 * sysdeps/unix/sysv/linux/s390/s390-64/pt-vfork.S: New file.
6509 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h: New file.
6510 * sysdeps/unix/sysv/linux/s390/sem_post.c: New file.
6511 * sysdeps/unix/sysv/linux/s390/sem_timedwait.c: New file.
6512 * sysdeps/unix/sysv/linux/s390/libc-lowlevellock.c: New file.
6513 * sysdeps/unix/sysv/linux/s390/sem_wait.c: New file.
6514
6f1cff95
UD
65152003-02-04 Ulrich Drepper <drepper@redhat.com>
6516
ec609a8e
UD
6517 * atomic.h: Add a couple more default implementations.
6518 (atomic_compare_and_exchange_acq): Use
d45e8740
UD
6519 __arch_compare_and_exchange_32_acq in return value definition. It
6520 always exists.
6521 (atomic_bit_set): Renamed from atomic_set_bit.
0289bef9 6522 Add missing atomic_ prefixes.
e3ec8904 6523
6f1cff95
UD
6524 * sysdeps/pthread/bits/libc-lock.h (__libc_once): In case no
6525 thread library is available, use correct value to mark initialized
6526 once variable.
6527
4f088329
UD
65282003-02-03 Ulrich Drepper <drepper@redhat.com>
6529
6f1cff95
UD
6530 * allocatestack.c (allocate_stack): Use __getpagesize instead of
6531 __sysconf to determine pagesize.
6532
3e4fc359 6533 * pthread_create.c: Include <atomic.h>.
4f088329
UD
6534 * allocatestack.c (allocate_stack): Implement coloring of the
6535 allocated stack memory. Rename pagesize to pagesize_m1. It's the
6536 size minus one. Adjust users.
3e4fc359 6537 * sysdeps/i386/i686/Makefile: New file.
4f088329 6538
2f42e8be
UD
65392003-02-02 Ulrich Drepper <drepper@redhat.com>
6540
4301f7e2
UD
6541 * allocatestack.c: Improve comment throughout the file.
6542
2f42e8be 6543 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
a37818b3 6544 (__lll_lock_wait): Add branch prediction.
2f42e8be
UD
6545 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S
6546 (__lll_lock_wait): Likewise.
6547 (lll_unlock_wake_cb): Removed.
6548
4a7d6545
UD
65492003-01-31 Ulrich Drepper <drepper@redhat.com>
6550
6551 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Remove
6552 _POSIX_THREAD_PRIORITY_SCHEDULING.
6553
886d5973
UD
65542003-01-30 Jakub Jelinek <jakub@redhat.com>
6555
6556 * sysdeps/pthread/pthread-functions.h (struct pthread_functions):
6557 Fix return type of ptr___pthread_getspecific.
6558
e474ca78
UD
65592003-01-29 Ulrich Drepper <drepper@redhat.com>
6560
6561 * Makefile (tests): Add tst-umask1.
6562 (tst-umask1-ARGS): Define.
6563 * tst-umask1.c: New file.
6564
e6ebd2e4
UD
65652003-01-28 Ulrich Drepper <drepper@redhat.com>
6566
6cf26f41
UD
6567 * Makefile (libpthread-routines): Remove lowlevelrwlock. Add
6568 pthread_rwlock_rdlock, pthread_rwlock_timedrdlock,
6569 pthread_rwlock_wrlock, pthread_rwlock_timedwrlock, and
6570 pthread_rwlock_unlock.
6571 * sysdeps/unix/sysv/linux/i386/i486/lowlevelrwlock.S: Removed
6572 * sysdeps/unix/sysv/linux/i386/i586/lowlevelrwlock.S: Removed
6573 * sysdeps/unix/sysv/linux/i386/i686/lowlevelrwlock.S: Removed
6574 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: New file.
6575 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
6576 New file.
6577 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: New file.
6578 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
6579 New file.
6580 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S: New file.
6581 * sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_rdlock.S: New file.
6582 * sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_timedrdlock.S:
6583 New file.
6584 * sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_wrlock.S: New file.
6585 * sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_timedwrlock.S:
6586 New file.
6587 * sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_unlock.S: New file.
6588 * sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_rdlock.S: New file.
6589 * sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_timedrdlock.S:
6590 New file.
6591 * sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_wrlock.S: New file.
6592 * sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_timedwrlock.S:
6593 New file.
6594 * sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_unlock.S: New file.
6595
1d087a7e
UD
6596 * Makefile (libpthread-routines): Remove lowlevelcond and
6597 lowlevelsem. Add sem_wait, sem_trywait, sem_timedwait, sem_post,
6598 pthread_cond_wait, pthread_cond_timedwait, pthread_cond_signal,
6599 and pthread_cond_broadcast.
4a99d160
UD
6600 * sysdeps/unix/sysv/linux/i386/i486/lowlevelsem.S: Removed
6601 * sysdeps/unix/sysv/linux/i386/i486/lowlevelcond.S: Removed
6602 * sysdeps/unix/sysv/linux/i386/i586/lowlevelsem.S: Removed
6603 * sysdeps/unix/sysv/linux/i386/i586/lowlevelcond.S: Removed
6604 * sysdeps/unix/sysv/linux/i386/i686/lowlevelsem.S: Removed
6605 * sysdeps/unix/sysv/linux/i386/i686/lowlevelcond.S: Removed
6606 * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S: New file.
6607 * sysdeps/unix/sysv/linux/i386/i486/sem_trywait.S: New file.
6608 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: New file.
6609 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S: New file.
6610 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: New file.
6611 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: New file.
6612 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S: New file.
6613 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S: New file.
6614 * sysdeps/unix/sysv/linux/i386/i586/sem_wait.S: New file.
6615 * sysdeps/unix/sysv/linux/i386/i586/sem_trywait.S: New file.
6616 * sysdeps/unix/sysv/linux/i386/i586/sem_timedwait.S: New file.
6617 * sysdeps/unix/sysv/linux/i386/i586/sem_post.S: New file.
6618 * sysdeps/unix/sysv/linux/i386/i586/pthread_cond_wait.S: New file.
6619 * sysdeps/unix/sysv/linux/i386/i586/pthread_cond_timedwait.S: New file.
6620 * sysdeps/unix/sysv/linux/i386/i586/pthread_cond_signal.S: New file.
6621 * sysdeps/unix/sysv/linux/i386/i586/pthread_cond_broadcast.S: New file.
6622 * sysdeps/unix/sysv/linux/i386/i686/sem_wait.S: New file.
6623 * sysdeps/unix/sysv/linux/i386/i686/sem_trywait.S: New file.
6624 * sysdeps/unix/sysv/linux/i386/i686/sem_timedwait.S: New file.
6625 * sysdeps/unix/sysv/linux/i386/i686/sem_post.S: New file.
6626 * sysdeps/unix/sysv/linux/i386/i686/pthread_cond_wait.S: New file.
6627 * sysdeps/unix/sysv/linux/i386/i686/pthread_cond_timedwait.S: New file.
6628 * sysdeps/unix/sysv/linux/i386/i686/pthread_cond_signal.S: New file.
6629 * sysdeps/unix/sysv/linux/i386/i686/pthread_cond_broadcast.S: New file.
6630 * sysdeps/unix/sysv/linux/i386/lowlevelcond.h: New file.
1d087a7e 6631
e6ebd2e4
UD
6632 * sysdeps/unix/sysv/linux/i386/createthread.c: Define
6633 PREPARE_CREATE and TLS_VALUE with x86-specific bits. All the rest
6634 of the code is moved to ...
6635 * sysdeps/pthread/createthread.c: ...here. New file.
6636
a15698cb
UD
66372003-01-27 Ulrich Drepper <drepper@redhat.com>
6638
0566b130
UD
6639 * sysdeps/unix/sysv/linux/i386/i486/lowlevelsem.S
6640 (__new_sem_post): Clear %eax before returning.
6641 Reported by MAEDA Naoaki <maeda.naoaki@jp.fujitsu.com>.
6642
e6fb8846
UD
6643 * Makefile (tests): Add tst-cleanup2.
6644 * tst-cleanup2.c: New file.
6645
a15698cb
UD
6646 * sysdeps/pthread/bits/libc-lock.h (__libc_cleanup_region_start):
6647 Interpret first parameter correctly.
6648
8824b0a1
UD
66492003-01-17 Ulrich Drepper <drepper@redhat.com>
6650
6651 * Makefile (headers): Add bits/semaphore.h.
6652
850dcfca
UD
66532003-01-16 Jakub Jelinek <jakub@redhat.com>
6654
6655 * sysdeps/i386/tls.h (INIT_SYSINFO): Initialize _head->sysinfo even
6656 if not SHARED.
6657
574b892e
UD
66582003-01-14 Ulrich Drepper <drepper@redhat.com>
6659
a8d87c92
UD
6660 * sem_open.c (sem_open): Return SEM_FAILED if existing semaphore
6661 must be used and mapping failed.
6662 Reported by Luke Elliott <luke.elliott@activfinancial.com>.
6663
574b892e
UD
6664 * Makefile (CFLAGS-pthread_self.os): Define this, not
6665 CFLAGS-pthread_self.c.
6666
fb48047a
UD
66672003-01-13 Ulrich Drepper <drepper@redhat.com>
6668
47805511
UD
6669 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Don't export
6670 lll_unlock_wake_cb.
6671
fb48047a
UD
6672 * Makefile (libpthread-routines): Add version. Add rules to build
6673 version.os and banner.h.
6674 * version.c: New file.
6675
115bb61d
UD
66762003-01-13 Jakub Jelinek <jakub@redhat.com>
6677
6678 * pthread_mutex_lock.c (__pthread_mutex_lock_internal): Make
6679 the alias unconditional.
6680 * pthread_mutex_unlock.c (__pthread_mutex_unlock_internal): Likewise.
6681
66822003-01-13 Ulrich Drepper <drepper@redhat.com>
6683
6684 * Makefile (CFLAGS-pthread_self.c): New definition.
6685
6aca81bb
UD
66862003-01-06 Jakub Jelinek <jakub@redhat.com>
6687
6688 * sysdeps/pthread/pthread_sigmask.c (pthread_sigmask): Add
6689 INTERNAL_SYSCALL_DECL, add err argument to INTERNAL_SYSCALL* macros.
6690 * sysdeps/unix/sysv/linux/raise.c (raise): Likewise.
6691 * init.c (__pthread_initialize_minimal_internal): Likewise.
6692
e9c7764e
UD
66932003-01-07 Jakub Jelinek <jakub@redhat.com>
6694
b5facfda
UD
6695 * pthreadP.h (__pthread_cond_timedwait): Add prototype.
6696
e9c7764e
UD
6697 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h
6698 (RTLD_CORRECT_DYNAMIC_WEAK): Remove.
6699 (DL_SYSINFO_IMPLEMENTATION): Change into .text section and back.
6700 * sysdeps/unix/sysv/linux/i386/i686/dl-sysdep.h
6701 (RTLD_CORRECT_DYNAMIC_WEAK): Remove.
6702 (DL_SYSINFO_IMPLEMENTATION): Change into .text section and back.
6703
bef1e42f
UD
67042003-01-06 Jakub Jelinek <jakub@redhat.com>
6705
6706 * pthreadP.h (LIBC_CANCEL_HANDLED): Define.
6707 * pt-system.c (LIBC_CANCEL_HANDLED): Add.
6708 * tst-cancel-wrappers.sh: Remove all exceptions.
6709
bbd17455
UD
67102003-01-05 Ulrich Drepper <drepper@redhat.com>
6711
a73ab6df
UD
6712 * tst-cancel-wrappers.sh: Invoke gawk not awk since we use GNU awk
6713 features. Reported by Marijn Ros <marijn@mad.scientist.com>.
6714
bbd17455
UD
6715 * sysdeps/unix/sysv/linux/jmp-unwind.c: Include <pthread-functions.h>.
6716 Use __libc_pthread_functions array if SHARED.
6717
6718 * pthreadP.h: Move pthread_cond_2_0_t definition to...
6719 * sysdeps/unix/sysv/linux/internaltypes.h: ...here.
6720
6721 * sysdeps/pthread/bits/libc-lock.h (__libc_ptf_call): New #define.
6722 (__libc_rwlock_rdlock, __libc_rwlock_wrlock, __libc_rwlock_unlock,
6723 __libc_key_create, __libc_getspecific, __libc_setspecific): Use
6724 __libc_ptf_call instead of __libc_maybe_call.
6725 (PTF): New #define.
6726 (__libc_cleanup_region_start): Wrap function name with PTF call.
6727 (__libc_cleanup_region_end): Likewise.
6728 (__libc_cleanup_end): Likewise.
6729
6730 * pthread_getspecific.c: Add __pthread_getspecific_internal alias.
6731 * pthread_setspecific.c: Add __pthread_setspecific_internal alias.
6732 * pthread_key_create.c: Add __pthread_key_create_internal alias.
6733 * pthreadP.h: Add prototypes.
6734
6735 * sysdeps/unix/sysv/linux/i386/i486/lowlevelrwlock.S: Add
6736 __pthread_rwlock_rdlock, __pthread_rwlock_wrlock, and
6737 __pthread_rwlock_unlock aliases.
6738 * pthreadP.h: Add prototypes for new aliases.
6739
6740 * pthreadP.h (struct pthead_functions): Moved to...
6741 * sysdeps/pthread/pthread-functions.h: ...here. New file.
6742 * init.c (pthread_functions): Add initializers for new elements.
6743
6744 * cleanup_defer.c: Add __pthread_cleanup_push_defer and
6745 __pthread_cleanup_pop_restore aliases.
6746 * pthreadP.h: Add prototypes.
6747
6748 * cleanup.c: Rename _GI_pthread_cleanup_push to __pthread_cleanup_push
6749 and _GI_pthread_cleanup_pop to __pthread_cleanup_pop.
6750 * sysdeps/unix/sysv/linux/i386/i486/lowlevelcond.S: Adjust caller.
6751 * sysdeps/unix/sysv/linux/i386/pthread_once.S: Likewise.
6752 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Likewise.
6753 * pthreadP.h: Adjust prototypes and callers.
6754
d27a78be
UD
67552003-01-04 Ulrich Drepper <drepper@redhat.com>
6756
b74121ae
UD
6757 * Makefile (tests): Add tst-cancel7.
6758 (tst-cancel7-ARGS): New variable.
bbd17455 6759 * tst-cancel7.c: New file.
b74121ae 6760
29bc410c
UD
6761 * old_pthread_cond_broadcast.c: Optimize initialization a bit to work
6762 around gcc defficiencies.
6763 * old_pthread_cond_signal.c: Likewise.
6764 * old_pthread_cond_timedwait.c: Likewise.
6765 * old_pthread_cond_wait.c: Likewise.
6766
d27a78be
UD
6767 * pthreadP.h (pthread_cond_2_0_t): Remove unneeded lock element.
6768
733f25e6
UD
67692003-01-03 Ulrich Drepper <drepper@redhat.com>
6770
7edb2ae3
UD
6771 * Makefile (tests): Add tst-cond7.
6772 * tst-cond7.c: New file.
6773
b1151300
UD
6774 * sysdeps/unix/sysv/linux/i386/i486/lowlevelcond.S
6775 (condvar_cleanup): Get condvar address from the right place.
6776
733f25e6
UD
6777 * atomic.h: Correct definitions of atomic_full_barrier,
6778 atomic_read_barrier, atomic_write_barrier.
6779
6780 * old_pthread_cond_broadcast.c: Make memory allocate and initialization
6781 race-free.
6782 * old_pthread_cond_signal.c: Likewise.
6783 * old_pthread_cond_timedwait.c: Likewise.
6784 * old_pthread_cond_wait.c: Likewise.
6785
686b7223
UD
67862003-01-03 Jakub Jelinek <jakub@redhat.com>
6787
6788 * Makefile ($(objpfx)libpthread.so): Depend on ld.so.
6789
0e07706e
UD
67902003-01-03 Ulrich Drepper <drepper@redhat.com>
6791
997256dd
UD
6792 * pthreadP.h (pthread_cond_2_0_t): New type.
6793 (struct pthread_functions): Use new type for 2.0 condvar callbacks.
6794 Use new type for the 2.0 condvar function prototypes.
6795 * forward.c: Use pthread_cond_2_0_t for 2.0 condvar functions.
6796 * old_pthread_cond_init.c: Use pthread_cond_2_0_t for condvar
6797 parameter.
6798 * old_pthread_cond_destroy.c: Likewise.
6799 * old_pthread_cond_broadcast.c: Likewise. Lock appropriately.
6800 * old_pthread_cond_signal.c: Likewise.
6801 * old_pthread_cond_timedwait.c: Likewise.
6802 * old_pthread_cond_wait.c: Likewise.
6803
842d2817
UD
6804 * sysdeps/unix/sysv/linux/i386/i486/lowlevelcond.S
6805 (__pthread_cond_wait): Don't save cancellation mode and seq value
6806 in same location.
6807
0e07706e
UD
6808 * herrno.c (__h_errno_location): Don't define as weak.
6809
bf293afe
UD
68102003-01-02 Jakub Jelinek <jakub@redhat.com>
6811
6812 * Versions [libc] (GLIBC_2.3.2): Export pthread_cond_broadcast,
6813 pthread_cond_destroy, pthread_cond_init, pthread_cond_signal
6814 and pthread_cond_wait.
6815 * old_pthread_cond_broadcast.c (__old_pthread_cond_broadcast):
6816 Renamed to...
6817 (__pthread_cond_broadcast_2_0): ... this.
6818 * old_pthread_cond_destroy.c (__old_pthread_cond_destroy):
6819 Renamed to...
6820 (__pthread_cond_destroy_2_0): ... this.
6821 * old_pthread_cond_init.c (__old_pthread_cond_init):
6822 Renamed to...
6823 (__pthread_cond_init_2_0): ... this.
6824 * old_pthread_cond_signal.c (__old_pthread_cond_signal):
6825 Renamed to...
6826 (__pthread_cond_signal_2_0): ... this.
6827 * old_pthread_cond_wait.c (__old_pthread_cond_wait):
6828 Renamed to...
6829 (__pthread_cond_wait_2_0): ... this.
6830 * pthread_cond_destroy.c: Include shlib-compat.h.
6831 (pthread_cond_destroy): Change strong_alias into versioned_symbol.
6832 * pthread_cond_init.c: Include shlib-compat.h.
6833 (pthread_cond_init): Change strong_alias into versioned_symbol.
6834 * pthreadP.h (struct pthread_functions): Rename ptr_pthread_cond_*
6835 fields to ptr___pthread_cond_* and add ptr___pthread_cond_*_2_0
6836 fields.
6837 (__pthread_cond_broadcast_2_0, __pthread_cond_destroy_2_0,
6838 __pthread_cond_init_2_0, __pthread_cond_signal_2_0,
6839 __pthread_cond_wait_2_0): New prototypes.
6840 (__old_pthread_cond_broadcast, __old_pthread_cond_destroy,
6841 __old_pthread_cond_init, __old_pthread_cond_signal,
6842 __old_pthread_cond_wait): Removed.
6843 * init.c: Include shlib-compat.h.
6844 (pthread_functions): Guard ptr___pthread_attr_init_2_0
6845 initialization with SHLIB_COMPAT (GLIBC_2_0, GLIBC_2_1).
6846 Rename ptr_pthread_cond_* to ptr___pthread_cond_*, initialize
6847 ptr___pthread_cond_*_2_0 fields.
6848 * forward.c: Export both pthread_cond_*@@GLIBC_2.3.2 and
6849 pthread_cond_*@GLIBC_2.0 compatibility symbols.
6850
6851 * sysdeps/pthread/sigaction.c (SIGCANCEL): Only define if
6852 LIBC_SIGACTION was not yet defined.
6853 [!defined LIBC_SIGACTION]: Define LIBC_SIGACTION, #include self.
6854 [!defined LIBC_SIGACTION] (__sigaction): New function and
6855 libc_hidden_weak.
6856 [!defined LIBC_SIGACTION] (sigaction): New weak_alias.
6857 [defined LIBC_SIGACTION]: #include_next <sigaction.c>.
6858
68592003-01-02 Jakub Jelinek <jakub@redhat.com>
6860
6861 * Makefile (CFLAGS-pthread_atfork.c): Add -DNOT_IN_libc.
6862
05df18c3
UD
68632003-01-02 Ulrich Drepper <drepper@redhat.com>
6864
6865 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_cond_t):
6866 New, larger type definition.
6867 * sysdeps/unix/sysv/linux/i386/i486/lowlevelcond.S: New condvar
6868 implementation.
6869 * Versions [libpthread]: Add definitions for new pthread_cond_*
6870 interfaces for version GLIBC_2.3.2.
6871 * pthread_cond_init.c: Update initialization for new type definition.
6872 * Makefile (libpthread-routines): Remove pthread_cond_wait,
6873 pthread_cond_timedwait, pthread_cond_signal, and
6874 pthread_cond_broadcast. Add old_pthread_cond_init,
6875 old_pthread_cond_destroy, old_pthread_cond_wait,
6876 old_pthread_cond_timedwait, old_pthread_cond_signal, and
6877 old_pthread_cond_broadcast.
6878 * old_pthread_cond_broadcast.c: New file.
6879 * old_pthread_cond_destroy.c: New file.
6880 * old_pthread_cond_init.c: New file.
6881 * old_pthread_cond_signal.c: New file.
6882 * old_pthread_cond_timedwait.c: New file.
6883 * old_pthread_cond_wait.c: New file.
6884 * pthreadP.h: Add prototypes for the compatibility interfaces.
6885
6886 * pthread_cond_destroy.c: Don't include <errno.h>.
6887
fd8979e4
UD
68882003-01-01 Ulrich Drepper <drepper@redhat.com>
6889
6890 * sysdeps/unix/sysv/linux/i386/i486/lowlevelrwlock.S: Avoid
6891 unnecessary zero offset when addressing MUTEX.
6892
6d6ee629
UD
68932002-12-31 Ulrich Drepper <drepper@redhat.com>
6894
6895 * sysdeps/unix/sysv/linux/fork.h: Add libc_hidden_proto for
6896 __register_atfork.
6897 * sysdeps/unix/sysv/linux/register-atfork.c: Add libc_hidden_def
6898 for __register_atfork.
6899
a4baf360
UD
69002002-12-31 Jakub Jelinek <jakub@redhat.com>
6901
6902 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Use __ASSEMBLER__
6903 instead of ASSEMBLER test macro.
6904
6905 * sysdeps/unix/sysv/linux/allocrtsig.c (__libc_current_sigrtmin,
6906 __libc_current_sigrtmax): Add libc_hidden_def.
6907
6908 * sysdeps/pthread/list.h: Remove assert.h include.
6909
e9395a94
UD
69102002-12-31 Ulrich Drepper <drepper@redhat.com>
6911
6912 * sysdeps/pthread/pt-initfini.c (call_initialize_minimal): Use
6913 __pthread_initialize_minimal_internal not
6914 __pthread_initialize_minimal.
6915
89d6e444
UD
69162002-12-30 Ulrich Drepper <drepper@redhat.com>
6917
416d2de6
UD
6918 * sysdeps/pthread/pt-initfini.c (call_initialize_minimal): Mark
6919 __pthread_initialize_minimal as hidden.
6920
89d6e444
UD
6921 * init.c (__pthread_initialize_minimal_internal): Don't mark as
6922 constructor.
6923
69242002-12-31 Jakub Jelinek <jakub@redhat.com>
6925
6926 * Makefile ($(inst_libdir)/libpthread.so): Depend on
6927 $(common-objpfx)format.lds, include that into the output script.
6928 Fix comment.
6929 (extra-B-pthread.so): Change linuxthreads/ into nptl/.
6930
8cac677c
UD
69312002-12-28 Andreas Jaeger <aj@suse.de>
6932
6933 * sysdeps/unix/sysv/linux/xstatconv.c (xstat_conv): Adjust for
6934 nsec resolution changes.
6935 (xstat64_conv): Likewise.
6936 (xstat32_conv): Likewise.
6937 * sysdeps/unix/sysv/linux/kernel_stat.h: Add nsec resolution for
6938 struct kernel_stat.
6939 * sysdeps/unix/sysv/linux/bits/stat.h: Add nsec resolution for
6940 structs stat and stat64.
6941 * time/time.h (__timespec_defined): Define for __USE_MISC.
89d6e444 6942 * io/sys/stat.h [__USE_MISC]: Define __need_timespec for struct stat.
8cac677c 6943
49e9f864
UD
69442002-12-30 Jakub Jelinek <jakub@redhat.com>
6945
6946 * forward.c (FORWARD2): Renamed from FORWARD3. Remove unused export
6947 argument.
6948 (pthread_attr_init_2_0, pthread_attr_init_2_1): Use FORWARD macro.
6949 (pthread_exit): Use strong_alias to avoid warnings.
6950 * pthreadP.h (struct pthread_functions): Rename ptr_pthread_exit
6951 and ptr_pthread_attr_init_2_* to ptr___pthread_exit and
6952 ptr___pthread_attr_init_2_*.
6953 * init.c (pthread_functions): Adjust.
6954
bab09b26
UD
69552002-12-29 Ulrich Drepper <drepper@redhat.com>
6956
598d7a42
UD
6957 * forward.c: Make all functions available by default again. It
6958 caused too much trouble.
6959
bab09b26
UD
6960 * pt-siglongjmp.c: Removed.
6961
3b7ed871
UD
69622002-12-28 Jakub Jelinek <jakub@redhat.com>
6963
6964 * sysdeps/i386/tls.h: Include tcb-offsets.h in assembler.
6965 (SYSINFO_OFFSET, MULTIPLE_THREADS_OFFSET): Remove.
6966 * sysdeps/i386/Makefile: New file.
6967 * sysdeps/i386/tcb-offsets.sym: New file.
6968 * sysdeps/pthread/tcb-offsets.h: New file.
6969 * sysdeps/unix/sysv/linux/libc_pthread_init.c (__libc_pthread_init):
6970 Remove MULTIPLE_THREADS_OFFSET and SYSINFO_OFFSET checks.
6971
6972 * sysdeps/unix/sysv/linux/Versions [libc] (GLIBC_PRIVATE): Move
6973 __register_atfork...
6974 (GLIBC_2.3.2): ...here.
6975
69762002-12-28 Ulrich Drepper <drepper@redhat.com>
6977
6978 * sysdeps/pthread/pthread.h: Mark pthread_attr_getstackaddr and
6979 pthread_attr_setstackaddr with __attribute_deprecated__.
6980
270d9d47
UD
69812002-12-27 Jakub Jelinek <jakub@redhat.com>
6982
6983 * pt-system.c (system): Remove cancellation handling.
6984 * tst-cancel-wrappers.sh: Allow pt-system.o* to not use the
6985 cancellation routines.
6986
131fd126
UD
69872002-12-28 Ulrich Drepper <drepper@redhat.com>
6988
afb2e954
UD
6989 * descr.h: Include <dl-sysdep.h>.
6990 (struct pthread): Move header.data.list to the back of the struct.
131fd126
UD
6991 * sysdeps/i386/tls.h (tcbhead_t): Move list to the back of the struct.
6992 (MULTIPLE_THREADS_OFFSET): Adjust offset.
6993 (SYSINFO_OFFSEET): Likewise.
6994
69952002-12-27 Jakub Jelinek <jakub@redhat.com>
6996
6997 * sysdeps/unix/sysv/linux/i386/i686/dl-sysdep.h (USE_DL_SYSINFO):
6998 Define.
6999 (DL_SYSINFO_DEFAULT): Cast to uintptr_t to avoid warnings.
7000 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h (NEED_DL_SYSINFO,
7001 DL_SYSINFO_DEFAULT, DL_SYSINFO_IMPLEMENTATION): Define.
7002 (USE_DL_SYSINFO): Undef.
7003
70042002-12-22 Jakub Jelinek <jakub@redhat.com>
7005
7006 * Makefile (tests-reverse): Use $(objpfx)../libc.so instead of
7007 $(common-objpfx)libc.so.
7008 * tst-cancel4.c (tf_write, tf_writev): Increase buf sizes so that
7009 it is bigger than pipe buffer size even on arches with bigger
7010 page size.
7011 (tf_usleep): Cast usleep argument to useconds_t to avoid warnings.
7012
a218c9cf
UD
70132002-12-25 Ulrich Drepper <drepper@redhat.com>
7014
7015 * sysdeps/unix/sysv/linux/i386/i486/lowlevelsem.S: Implement
7016 correct errno access for case that USE___THREAD is not defined.
7017
015a2dc9
UD
70182002-12-24 Ulrich Drepper <drepper@redhat.com>
7019
7020 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h: Add missing #endif.
7021 Patch by Marijn Ros <marijn@mad.scientist.com>.
7022
5220f9ac
RM
70232002-12-22 Roland McGrath <roland@redhat.com>
7024
7025 * Makefile (omit-deps): Add $(unix-syscalls:%=ptw-%).
7026
1561bf63
UD
70272002-12-20 Ulrich Drepper <drepper@redhat.com>
7028
7029 * sysdeps/pthread/bits/stdio-lock.h (_IO_lock_inexpensive): Define.
7030
3325198e
UD
70312002-12-19 Ulrich Drepper <drepper@redhat.com>
7032
057c823f
UD
7033 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h: Don't define
7034 NEED_DL_SYSINFO since no processor < i686 had the sysenter opcode.
7035 * sysdeps/unix/sysv/linux/i386/i686/dl-sysdep.h: New file.
7036
097eca29
UD
7037 * sysdeps/unix/sysv/linux/i386/pthread_once.S: Use ENTER_KERNEL instead
7038 of int $0x80.
7039 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Likewise.
7040 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevelmutex.S: Likewise.
7041 * sysdeps/unix/sysv/linux/i386/i486/lowlevelcond.S: Likewise.
7042 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Likewise.
7043 * sysdeps/unix/sysv/linux/i386/i486/lowlevelmutex.S: Likewise.
7044 * sysdeps/unix/sysv/linux/i386/i486/lowlevelrwlock.S: Likewise.
7045 * sysdeps/unix/sysv/linux/i386/i486/lowlevelsem.S: Likewise.
7046 * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S: Likewise.
7047
7048 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Add support for using
7049 sysenter.
7050 * sysdeps/unix/sysv/linux/i386/lowlevelsem.h: Likewise.
7051
7052 * sysdeps/i386/tls.h: Unconditionally include <dl-sysdep.h>.
7053
5f5843e3
UD
7054 * allocatestack.c (allocate_stack) [NEED_DL_SYSINFO]: Set sysinfo
7055 in new TCB.
7056 * sysdeps/unix/sysv/linux/i386/createthread.c (create_thread): Check
7057 that sysinfo is properly initialized.
7058 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h: Define RTLD_PRIVATE_ERRNO
7059 to 1 only for ld.so.
7060
3325198e
UD
7061 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h: Define
7062 RTLD_CORRECT_DYNAMIC_WEAK.
7063
74e8f2dc
UD
70642002-12-19 Jakub Jelinek <jakub@redhat.com>
7065
7066 * forward.c (pthread_attr_init_2_0, pthread_attr_init_2_1):
7067 Use return 0 as 6th argument to FORWARD4.
7068 * pthread_equal.c: Include pthreadP.h instead of pthread.h.
7069
df45b31e
UD
70702002-12-18 Ulrich Drepper <drepper@redhat.com>
7071
7072 * descr.h (struct pthread) [NEED_DL_SYSINFO]: Add sysinfo member.
7073 * sysdeps/i386/tls.h (tcbhead_t): Add sysinfo member.
7074 Define SYSINFO_OFFSEET if NEED_DL_SYSINFO is defined.
7075 (INIT_SYSINFO): New #define.
7076 (TLS_TP_INIT): Use INIT_SYSINFO.
7077 * sysdeps/unix/sysv/linux/libc_pthread_init.c (__libc_pthread_init):
7078 At test to make sure SYSINFO_OFFSET value is correct.
7079 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h: New file.
7080
3d539579
UD
70812002-12-18 Jakub Jelinek <jakub@redhat.com>
7082
7083 * sysdeps/pthread/flockfile.c (flockfile): Change into weak alias.
7084 * sysdeps/unix/sysv/linux/raise.c (gsignal): Add weak alias to raise.
7085 * Versions [libc: GLIBC_2.0]: Add pthread_attr_init.
7086 [libpthread: GLIBC_2.1]: Remove __pthread_rwlock_init,
7087 __pthread_rwlock_destroy, __pthread_rwlock_rdlock,
7088 __pthread_rwlock_wrlock, __pthread_rwlock_unlock,
7089 __pthread_rwlock_tryrdlock and __pthread_rwlock_trywrlock.
7090
d7913e0e
UD
70912002-12-18 Ulrich Drepper <drepper@redhat.com>
7092
f051627f
UD
7093 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Use ENTER_KERNEL
7094 macro instead of using int $0x80 directly.
7095
d7913e0e
UD
7096 * sysdeps/pthread/bits/stdio-lock.h: New file.
7097 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevelmutex.S: New file.
7098 * sysdeps/unix/sysv/linux/i386/i586/libc-lowlevelmutex.S: New file.
7099 * sysdeps/unix/sysv/linux/i386/i686/libc-lowlevelmutex.S: New file.
7100 * Makefile (routines): Add libc-lowlevelmutex.
7101
7102 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Remove
7103 __i686.get_pc_thunk.dx.
7104
f077a4a9
UD
71052002-12-17 Jakub Jelinek <jakub@redhat.com>
7106
7107 * Makefile (libpthread-shared-only-routines): Add pt-allocrtsig.
7108 (tests): Depend on $(objpfx)tst-cancel-wrappers.out.
7109 ($(objpfx)tst-cancel-wrappers.out): New rule.
7110 * tst-cancel-wrappers.sh: New test.
7111 * tst-locale1.c: Include signal.h.
7112 (uselocale): Test static linking of __libc_current_sigrt*.
7113
71142002-12-17 Ulrich Drepper <drepper@redhat.com>
7115
7116 * Makefile (tests): Add tst-cancel6.
7117 * tst-cancel6.c: New file
7118
bd499a3b
UD
71192002-12-17 Jakub Jelinek <jakub@redhat.com>
7120
7121 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h (SINGLE_THREAD_P):
7122 Define meaningfully for assembler as well.
7123 * pthreadP.h (struct pthread_functions): Remove
7124 ptr_pthread_attr_init field. Add ptr_pthread_attr_init_2_0
7125 and ptr_pthread_attr_init_2_1 fields.
7126 * init.c (pthread_functions): Initialize ptr_pthread_attr_init_2_0
7127 and ptr_pthread_attr_init_2_1 instead of ptr_pthread_attr_init.
7128 * forward.c (FORWARD4): Renamed from FORWARD3. Add export argument.
7129 (FORWARD3): Define using FORWARD4.
7130 (pthread_attr_init): Provide both @GLIBC_2.0 and @@GLIBC_2.1
7131 versions.
7132 * pt-system.c: Remove duplicate stdlib.h include.
7133
0a1063f4
UD
71342002-12-16 Ulrich Drepper <drepper@redhat.com>
7135
87d60668
UD
7136 * sem_init.c: Define sem_init@GLIBC_2.0.
7137 * sem_destroy.c: Define sem_destroy@GLIBC_2.0.
7138 * sem_getvalue.c: Define sem_getvalue@GLIBC_2.0.
7139
0a1063f4
UD
7140 * flockfile.c: Moved to...
7141 * sysdeps/pthread/flockfile.c: ...here. New file.
7142 * funlockfile.c: Moved to...
7143 * sysdeps/pthread/funlockfile.c: ...here. New file.
7144 * ftrylockfile.c: Moved to...
7145 * sysdeps/pthread/ftrylockfile.c: ...here. New file.
7146
9634cf9d
UD
71472002-12-16 Jakub Jelinek <jakub@redhat.com>
7148
7149 * libc-cancellation.c: Guard both function with
7150 #if !defined NOT_IN_libc.
7151 * Makefile (libpthread-routines): Use ptw-, not pt- prefix for the
7152 automatically provided pthread wrappers.
7153 * pthreadP.h (LIBC_CANCEL_ASYNC, LIBC_CANCEL_RESET): Define to
7154 CANCEL_* if IS_IN_libpthread and to dummy versions if not in libc
7155 nor in libpthread.
7156 * pt-open.c: Removed.
7157 * pt-fcntl.c: Removed.
7158 * pt-fsync.c: Removed.
7159 * pt-lseek.c: Removed.
7160 * pt-msgrcv.c: Removed.
7161 * pt-msgsnd.c: Removed.
7162 * pt-msync.c: Removed.
7163 * pt-nanosleep.c: Removed.
7164 * pt-open64.c: Removed.
7165 * pt-pause.c: Removed.
7166 * pt-pread.c: Removed.
7167 * pt-pread64.c: Removed.
7168 * pt-pwrite.c: Removed.
7169 * pt-pwrite64.c: Removed.
7170 * pt-read.c: Removed.
7171 * pt-recv.c: Removed.
7172 * pt-recvfrom.c: Removed.
7173 * pt-recvmsg.c: Removed.
7174 * pt-send.c: Removed.
7175 * pt-sendto.c: Removed.
7176 * pt-sigtimedwait.c: Removed.
7177 * pt-sigwait.c: Removed.
7178 * pt-wait.c: Removed.
7179 * pt-waitpid.c: Removed.
7180 * pt-write.c: Removed.
7181 * pt-accept.c: Removed.
7182 * pt-close.c: Removed.
7183 * pt-connect.c: Removed.
7184 * pt-lseek64.c: Removed.
7185 * pt-sendmsg.c: Removed.
7186 * pt-tcdrain.c: Removed.
7187
6ee8d334
UD
71882002-12-15 Ulrich Drepper <drepper@redhat.com>
7189
81fa9371
UD
7190 * init.c (__pthread_initialize_minimal_internal): Renamed from
7191 __pthread_initialize_minimal. Make old name an alias. This
7192 converts a normal relocation into a relative relocation.
7193
f3015aa5
UD
7194 * pt-fcntl.c (__fcntl): Use fcntl64 syscall, not fcntl.
7195
4cbc1950
UD
7196 * Versions [libpthread: GLIBC_2.3.2]: Remove creat, poll, pselect,
7197 readv, select, sigpause, sigsuspend, sigwaitinfo, waitid, writev.
7198 * Makefile (libpthread-routines): Remove pt-creat, pt-poll,
7199 pt-pselect, pt-readv, pt-select, pt-sigpause, pt-sigsuspend,
7200 pt-sigwaitinfo, pt-waitid, and pt-writev.
7201 * pt-creat.c: Removed.
7202 * pt-poll.c: Removed.
7203 * pt-pselect.c: Removed.
7204 * pt-readv.c: Removed.
7205 * pt-select.c: Removed.
7206 * pt-sigpause.c: Removed.
7207 * pt-sigsuspend.c: Removed.
7208 * pt-sigwaitinfo.c: Removed.
7209 * pt-waitid.c: Removed.
7210 * pt-writev.c: Removed.
7211
8454830b
UD
7212 * init.c (pthread_functions): New variable.
7213 (__pthread_initialize_minimal): Pass pointer to pthread_functions
7214 (or NULL) to __libc_pthread_init.
7215 * forward.c: Rewrite to use __libc:pthread_functions array to get
7216 function addresses.
7217 * sysdeps/unix/sysv/linux/fork.h: Remove __libc_pthread_init
7218 prototype.
7219 * sysdeps/unix/sysv/linux/libc_pthread_init.c (__libc_pthread_init):
7220 Take new parameter. Copy content of variable pointed to by it
7221 to __libc_pthread_init.
7222
7223 * pthreadP.h (struct pthread_functions): New type.
7224 (__libc_pthread_init): Declare.
7225
7226 * pthread_attr_destroy.c: Add namespace protected alias.
7227 * pthread_attr_getdetachstate.c: Likewise.
7228 * pthread_attr_getinheritsched.c: Likewise.
7229 * pthread_attr_getschedparam.c: Likewise.
7230 * pthread_attr_getschedpolicy.c: Likewise.
7231 * pthread_attr_getscope.c: Likewise.
7232 * pthread_attr_setdetachstate.c: Likewise.
7233 * pthread_attr_setinheritsched.c: Likewise.
7234 * pthread_attr_setschedparam.c: Likewise.
7235 * pthread_attr_setschedpolicy.c: Likewise.
7236 * pthread_attr_setscope.c: Likewise.
7237 * pthread_cond_broadcast.c: Likewise.
7238 * pthread_cond_destroy.c: Likewise.
7239 * pthread_cond_init.c: Likewise.
7240 * pthread_cond_signal.c: Likewise.
7241 * pthread_cond_wait.c: Likewise.
7242 * pthread_condattr_destroy.c: Likewise.
7243 * pthread_condattr_init.c: Likewise.
7244 * pthread_equal.c: Likewise.
7245 * pthread_exit.c: Likewise.
7246 * pthread_getschedparam.c: Likewise.
7247 * pthread_self.c: Likewise.
7248 * pthread_setcancelstate.c: Likewise.
7249 * pthread_setschedparam.c: Likewise.
7250 * pthread_mutex_destroy.c: Likewise.
7251 * pthread_mutex_init.c: Likewise.
7252 * pthreadP.h: Add prototypes for the aliases.
7253
0d5f4929
UD
7254 * sysdeps/unix/sysv/linux/i386/createthread.c (create_thread): Set
7255 multiple_threads member in correct TCB to 1.
7256
6ee8d334
UD
7257 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Define
7258 SINGLE_THREAD_P. If in libc or libpthread examine multiple_thread
7259 member of thread decriptor, otherwise return unconditionally 1.
7260
2fb6444d
UD
72612002-12-14 Ulrich Drepper <drepper@redhat.com>
7262
7263 * sysdeps/unix/sysv/linux/i386/pt-socket.S: Changes folded into the
7264 regular Linux version. Remove file.
7265 * sysdeps/unix/sysv/linux/connect.S: Likewise. Remove file.
7266 * sysdeps/unix/sysv/linux/llseek.c: Likewise. Remove file.
7267 * sysdeps/unix/sysv/linux/msgrcv.c: Likewise. Remove file.
7268 * sysdeps/unix/sysv/linux/msgsnd.c: Likewise. Remove file.
7269 * sysdeps/unix/sysv/linux/open64.c: Likewise. Remove file.
7270 * sysdeps/unix/sysv/linux/poll.c: Likewise. Remove file.
7271 * sysdeps/unix/sysv/linux/pread.c: Likewise. Remove file.
7272 * sysdeps/unix/sysv/linux/pread64.c: Likewise. Remove file.
7273 * sysdeps/unix/sysv/linux/pselect.c: Likewise. Remove file.
7274 * sysdeps/unix/sysv/linux/pwrite.c: Likewise. Remove file.
7275 * sysdeps/unix/sysv/linux/pwrite64.c: Likewise. Remove file.
7276 * sysdeps/unix/sysv/linux/readv.c: Likewise. Remove file.
7277 * sysdeps/unix/sysv/linux/recv.S: Likewise. Remove file.
7278 * sysdeps/unix/sysv/linux/recvfrom.S: Likewise. Remove file.
7279 * sysdeps/unix/sysv/linux/recvmsg.S: Likewise. Remove file.
7280 * sysdeps/unix/sysv/linux/send.S: Likewise. Remove file.
7281 * sysdeps/unix/sysv/linux/sendmsg.S: Likewise. Remove file.
7282 * sysdeps/unix/sysv/linux/sendto.S: Likewise. Remove file.
7283 * sysdeps/unix/sysv/linux/sigpause.c: Likewise. Remove file.
7284 * sysdeps/unix/sysv/linux/sigsuspend.c: Likewise. Remove file.
7285 * sysdeps/unix/sysv/linux/sigtimedwait.c: Likewise. Remove file.
7286 * sysdeps/unix/sysv/linux/sigwait.c: Likewise. Remove file.
7287 * sysdeps/unix/sysv/linux/sigwaitinfo.c: Likewise. Remove file.
7288 * sysdeps/unix/sysv/linux/system.c: Likewise. Remove file.
7289 * sysdeps/unix/sysv/linux/tcdrain.c: Likewise. Remove file.
7290 * sysdeps/unix/sysv/linux/wait.c: Likewise. Remove file.
7291 * sysdeps/unix/sysv/linux/waitid.c: Likewise. Remove file.
7292 * sysdeps/unix/sysv/linux/waitpid.c: Likewise. Remove file.
7293 * sysdeps/unix/sysv/linux/writev.c: Likewise. Remove file.
7294 * sysdeps/unix/sysv/linux/i386/fcntl.c: Likewise. Remove file.
7295
86b2dc40
UD
72962002-12-14 Jakub Jelinek <jakub@redhat.com>
7297
7298 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: New file.
7299 * sysdeps/unix/sysv/linux/open.c: Removed.
7300 * sysdeps/unix/sysv/linux/fsync.c: Removed.
7301 * sysdeps/unix/sysv/linux/lseek.c: Removed.
7302 * sysdeps/unix/sysv/linux/msync.c: Removed.
7303 * sysdeps/unix/sysv/linux/read.c: Removed.
7304 * sysdeps/unix/sysv/linux/close.c: Removed.
7305 * sysdeps/unix/sysv/linux/creat.c: Removed.
7306 * sysdeps/unix/sysv/linux/nanosleep.c: Removed.
7307 * sysdeps/unix/sysv/linux/pause.c: Removed.
7308 * sysdeps/unix/sysv/linux/select.c: Removed.
7309 * sysdeps/unix/sysv/linux/write.c: Removed.
7310
9d263d72
UD
73112002-12-14 Ulrich Drepper <drepper@redhat.com>
7312
7313 * sysdeps/unix/sysv/linux/i386/pt-socket.S: Check multiple_threads
7314 element in TCB to see whether locking is needed.
7315
7316 * sysdeps/unix/sysv/linux/libc_pthread_init.c: Check that
7317 MULTIPLE_THREADS_OFFSET value is correct.
7318
7319 * sysdeps/unix/sysv/linux/close.c: New file.
7320 * sysdeps/unix/sysv/linux/connect.S: New file.
7321 * sysdeps/unix/sysv/linux/creat.c: New file.
7322 * sysdeps/unix/sysv/linux/fsync.c: New file.
7323 * sysdeps/unix/sysv/linux/llseek.c: New file.
7324 * sysdeps/unix/sysv/linux/lseek.c: New file.
7325 * sysdeps/unix/sysv/linux/msgrcv.c: New file.
7326 * sysdeps/unix/sysv/linux/msgsnd.c: New file.
7327 * sysdeps/unix/sysv/linux/msync.c: New file.
7328 * sysdeps/unix/sysv/linux/nanosleep.c: New file.
7329 * sysdeps/unix/sysv/linux/open.c: New file.
7330 * sysdeps/unix/sysv/linux/open64.c: New file.
7331 * sysdeps/unix/sysv/linux/pause.c: New file.
7332 * sysdeps/unix/sysv/linux/poll.c: New file.
7333 * sysdeps/unix/sysv/linux/pread.c: New file.
7334 * sysdeps/unix/sysv/linux/pread64.c: New file.
7335 * sysdeps/unix/sysv/linux/pselect.c: New file.
7336 * sysdeps/unix/sysv/linux/pwrite.c: New file.
7337 * sysdeps/unix/sysv/linux/pwrite64.c: New file.
7338 * sysdeps/unix/sysv/linux/readv.c: New file.
7339 * sysdeps/unix/sysv/linux/recv.S: New file.
7340 * sysdeps/unix/sysv/linux/recvfrom.S: New file.
7341 * sysdeps/unix/sysv/linux/recvmsg.S: New file.
7342 * sysdeps/unix/sysv/linux/select.c: New file.
7343 * sysdeps/unix/sysv/linux/send.S: New file.
7344 * sysdeps/unix/sysv/linux/sendmsg.S: New file.
7345 * sysdeps/unix/sysv/linux/sendto.S: New file.
7346 * sysdeps/unix/sysv/linux/sigpause.c: New file.
7347 * sysdeps/unix/sysv/linux/sigsuspend.c: New file.
7348 * sysdeps/unix/sysv/linux/sigtimedwait.c: New file.
7349 * sysdeps/unix/sysv/linux/sigwait.c: New file.
7350 * sysdeps/unix/sysv/linux/sigwaitinfo.c: New file.
7351 * sysdeps/unix/sysv/linux/system.c: New file.
7352 * sysdeps/unix/sysv/linux/tcdrain.c: New file.
7353 * sysdeps/unix/sysv/linux/wait.c: New file.
7354 * sysdeps/unix/sysv/linux/waitid.c: New file.
7355 * sysdeps/unix/sysv/linux/waitpid.c: New file.
7356 * sysdeps/unix/sysv/linux/writev.c: New file.
7357 * sysdeps/unix/sysv/linux/i386/fcntl.c: New file.
7358
7359 * pt-readv.c: Fix comment.
7360
73612002-12-14 Jakub Jelinek <jakub@redhat.com>
7362
7363 * tst-cleanup1.c: Include stdlib.h.
7364
7365 * tst-cancel5.c: New test.
7366 * Makefile (tests): Add tst-cancel5.
7367 (tst-cancel5): Link against libc.so libpthread.so in that order.
7368
9ae0909b
UD
73692002-12-13 Ulrich Drepper <drepper@redhat.com>
7370
b7bdd9c4
UD
7371 * forward.c (test_loaded): Prevent recursive calls.
7372
9ae0909b
UD
7373 * Makefile (routines): Add libc-cancellation.
7374 * libc-cancellation.c: New file.
7375 * descr.h (struct pthread): Add multiple_threads field.
7376 * allocatestack.c (allocate_stack): Initialize multiple_header field of
7377 new thread descriptor to 1.
7378 * sysdeps/unix/sysv/linux/i386/createthread.c (create_thread):
7379 Initialize multiple_thread field after successful thread creation.
7380 * cancellation.c (__do_cancel): Move to pthreadP.h.
7381 (__pthread_enable_asynccancel): Remove parameter from __do_cancel call.
7382 (__pthread_disable_asynccancel): Add internal_function attribute.
7383 * init.c (sigcancel_handler): Remove parameter from __do_cancel call.
7384 * pthread_setcancelstate.c: Likewise.
7385 * pthread_setcanceltype.c: Likewise.
7386 * pthread_exit.c: Likewise.
7387 * pthreadP.h (CANCELLATION_P): Likewise.
7388 (__do_cancel): Define as static inline.
7389 (LIBC_CANCEL_ASYNC, LIBC_CANCEL_RESET): New #defines.
7390 (__libc_enable_asynccancel, __libc_disable_asynccancel): New
7391 declarations.
7392 * sysdeps/i386/tls.h (tcbhead_t): Add list and multiple_threads
7393 fields. Define MULTIPLE_THREADS_OFFSET.
7394 * sysdeps/pthread/bits/libc-lock.h: Remove __libc_locking_needed
7395 declaration.
7396 * sysdeps/unix/sysv/linux/accept.S: New file.
7397 * sysdeps/unix/sysv/linux/read.c: New file.
7398 * sysdeps/unix/sysv/linux/write.c: New file.
7399 * sysdeps/unix/sysv/linux/i386/pt-socket.S: New file.
7400 * sysdeps/unix/sysv/linux/libc_pthread_init.c: Remove definition and
7401 initialization of __libc_locking_needed.
7402 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Don't use
7403 __libc_locking_needed, use multiple_threads field in TCB.
7404 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Likewise.
7405
22f20674
UD
74062002-12-12 Ulrich Drepper <drepper@redhat.com>
7407
2ad2e1e7
UD
7408 * sysdeps/unix/sysv/linux/i386/i686/libc-lowlevellock.S: Use i486
7409 version.
7410 * sysdeps/unix/sysv/linux/i386/i586/libc-lowlevellock.S: Likewise.
7411
22f20674
UD
7412 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Correct
7413 access to __libc_locking_needed for PIC.
7414
aa80bf86
UD
74152002-12-12 Jakub Jelinek <jakub@redhat.com>
7416
7417 * sysdeps/pthread/bits/libc-lock.h (__libc_locking_needed): Only
7418 declare for libc.so.
7419 (__libc_lock_init, __libc_lock_init_recursive): Change into comma
7420 expression.
7421 (__libc_lock_lock): Put into statement expression.
7422 (__libc_lock_unlock): Remove trailing semicolon.
7423 * sysdeps/unix/sysv/linux/fork.h (__libc_pthread_init): Fix typo.
7424
24021373
RM
74252002-12-12 Roland McGrath <roland@redhat.com>
7426
7427 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Use asm operand with
7428 "m" constraint to refer to __libc_locking_needed. Declare it here.
7429
14e7aece
UD
74302002-12-12 Ulrich Drepper <drepper@redhat.com>
7431
7432 * sysdeps/unix/sysv/linux/fork-gen.c: Renamed to...
7433 * sysdeps/unix/sysv/linux/libc_pthread_init.c: ...this.
7434 Initialize __libc_locking_needed.
7435 * init.c (__pthread_initialize_minimal): Call __libc_pthread_init
7436 instead of __register_pthread_fork_handler.
7437 * sysdeps/pthread/bits/libc-lock.h: Declare __libc_locking_needed.
7438 * sysdeps/unix/sysv/linux/Makefile (sysdep_routimes): Replace
7439 fork-gen with libc_pthread_init.
7440 * sysdeps/unix/sysv/linux/Versions: Use __libc_pthread_init instead
7441 of __register_pthread_fork_handler.
7442 * sysdeps/unix/sysv/linux/fork.h: Declare __libc_pthread_init instead
7443 of __register_pthread_fork_handler.
7444 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Use
7445 __libc_locking_needed to determine whether lock prefix can be avoided.
7446 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Likewise.
7447
85631c8e
UD
74482002-12-11 Ulrich Drepper <drepper@redhat.com>
7449
da63009e
UD
7450 * Makefile (tests): Add tst-cleanup1.
7451 * tst-cleanup1.c: New file.
7452 * cancellation.c (__cleanup_thread): Removed.
7453 (__do_cancel): Remove call to __cleanup_thread.
7454 * pthreadP.h: Remove __cleanup_thread prorotype.
7455
000160a2
UD
7456 * sysdeps/pthread/bits/libc-lock.h (__libc_cleanup_region_start):
7457 Remember function and argument even if cancellation handler
7458 function is not available.
7459 (__libc_cleanup_region_end): Execute registered function directly if
7460 pthread functions are not available.
7461 (__libc_cleanup_end): Likewise.
7462
85631c8e
UD
7463 * init.c (__pthread_initialize_minimal): Fix initialization in
7464 static lib by preventing gcc from being too clever.
7465
dce8f2b6
UD
74662002-12-10 Ulrich Drepper <drepper@redhat.com>
7467
34a075be
UD
7468 * init.c (__pthread_initialize_minimal): Remove unneccesary
7469 sigaddset call.
7470
dce8f2b6
UD
7471 * Makefile (tests): We can run tst-locale2 now.
7472
e5e45b53
UD
74732002-12-09 Ulrich Drepper <drepper@redhat.com>
7474
7475 * Versions: Remove duplicated sigwait entry.
7476
bdb04f92
UD
74772002-12-08 Ulrich Drepper <drepper@redhat.com>
7478
1e506629
UD
7479 * pthreadP.h: Enable pthread_cleanup_{push,pop} optimizations only
7480 inside libpthread.
7481
a3957dd5
UD
7482 * pt-fcntl.c (__fcntl): Initialize oldtype to avoid warning.
7483
bdb04f92
UD
7484 * pthreadP.h: Declare __pthread_enable_asynccancel and
7485 __pthread_disable_asynccancel.
7486 (CANCEL_ASYNC): Use __pthread_enable_asynccancel.
7487 (CANCEL_RESET): Use __pthread_disable_asynccancel.
7488 * cancellation.c (__pthread_enable_asynccancel): New function.
7489 (__pthread_disable_asynccancel): New function.
7490 * pt-accept.c: Adjust for CANCEL_ASYNC and CANCEL_RESET change.
7491 * pt-close.c: Likewise.
7492 * pt-connect.c: Likewise.
7493 * pt-creat.c: Likewise.
7494 * pt-fcntl.c: Likewise.
7495 * pt-fsync.c: Likewise.
7496 * pt-lseek.c: Likewise.
7497 * pt-lseek64.c: Likewise.
7498 * pt-msgrcv.c: Likewise.
7499 * pt-msgsnd.c: Likewise.
7500 * pt-msync.c: Likewise.
7501 * pt-nanosleep.c: Likewise.
7502 * pt-open.c: Likewise.
7503 * pt-open64.c: Likewise.
7504 * pt-pause.c: Likewise.
7505 * pt-poll.c: Likewise.
7506 * pt-pread.c: Likewise.
7507 * pt-pread64.c: Likewise.
7508 * pt-pselect.c: Likewise.
7509 * pt-pwrite.c: Likewise.
7510 * pt-pwrite64.c: Likewise.
7511 * pt-read.c: Likewise.
7512 * pt-readv.c: Likewise.
7513 * pt-recv.c: Likewise.
7514 * pt-recvfrom.c: Likewise.
7515 * pt-recvmsg.c: Likewise.
7516 * pt-select.c: Likewise.
7517 * pt-send.c: Likewise.
7518 * pt-sendmsg.c: Likewise.
7519 * pt-sendto.c: Likewise.
7520 * pt-sigpause.c: Likewise.
7521 * pt-sigsuspend.c: Likewise.
7522 * pt-sigtimedwait.c: Likewise.
7523 * pt-sigwait.c: Likewise.
7524 * pt-sigwaitinfo.c: Likewise.
7525 * pt-system.c: Likewise.
7526 * pt-tcdrain.c: Likewise.
7527 * pt-wait.c: Likewise.
7528 * pt-waitid.c: Likewise.
7529 * pt-waitpid.c: Likewise.
7530 * pt-write.c: Likewise.
7531 * pt-writev.c: Likewise.
a3957dd5
UD
7532 * pthread_join.c: Likewise.
7533 * pthread_timedjoin.c: Likewise.
bdb04f92
UD
7534
7535 * pt-sigpause.c (sigsuspend): Call __sigsuspend.
7536 (__xpg_sigpause): New function.
7537 * Versions (libpthread:GLIBC_2.3.2): Add __xpg_sigpause.
7538
6ccb3834
UD
75392002-12-07 Ulrich Drepper <drepper@redhat.com>
7540
09efc3ba
UD
7541 * Makefile (CFLAGS-ftrylockfile.c): Add -D_IO_MTSAFE_IO.
7542
7543 * cleanup.c: Move declarations of _GI_pthread_cleanup_push and
7544 _GI_pthread_cleanup_pop to pthreadP.h.
7545
7546 * ftrylockfile.c: Use _IO_lock_trylock instead of
7547 pthread_mutex_trylock.
7548
7549 * pthreadP.h (CANCEL_ASYNC): Use __pthread_setcanceltype.
7550 (CANCEL_RESET): Likewise.
7551 (__pthread_setcanceltype_): Declare.
7552 (__pthread_mutex_lock_internal): Declare.
7553 (__pthread_mutex_unlock_internal): Declare.
7554 (__pthread_once_internal): Declare.
7555 (pthread_cleanup_push): Redefine using _GI_pthread_cleanup_push.
7556 (pthread_cleanup_pop): Redefine using _GI_pthread_cleanup_pop.
7557
7558 * pthread_cond_timedwait.c: Use INTUSE is calls to pthread_mutex_lock
7559 and pthread_mutex_unlock.
7560 * pthread_cond_wait.c: Likewise.
7561 * pthread_mutex_lock.c: Use INTDEF to define alias if needed.
7562 * pthread_mutex_unlock.c: Likewise.
7563
7564 * pthread_setcanceltype.c: Add additional alias
7565 __pthread_setcanceltype.
7566
7567 * sem_unlink.c (sem_unlink): Use __pthread_once with INTDEF.
7568 * sem_open.c (sem_open): Likewise.
7569 Use __libc_open, __libc_write, and __libc_close instead of
7570 open, write, and close respectively.
7571
7572 * sysdeps/pthread/bits/libc-lock.h (__libc_lock_trylock_internal):
7573 Rewrite as statement expression since it must return a value.
7574
7575 * pthread_cancel.c: Use __pthread_kill instead of pthread_kill.
7576 * sysdeps/unix/sysv/linux/pthread_kill.c: Define additional alias
7577 __pthread_kill.
7578
7579 * sysdeps/unix/sysv/linux/i386/pthread_once.S: Define additional
7580 alias __pthread_once_internal.
7581
6ccb3834
UD
7582 * sysdeps/unix/sysv/linux/raise.c: Use libc_hidden_def for raise.
7583
d3c9f895
UD
75842002-12-06 Ulrich Drepper <drepper@redhat.com>
7585
4614167a
UD
7586 * Makefile (tests): Add tst-stdio1 and tst-stdio2.
7587 * tst-stdio1.c: New file.
7588 * tst-stdio2.c: New file.
7589
a4548cea
UD
7590 * init.c (__pthread_initialize_minimal): Correct INIT_LIST_HEAD use.
7591
d3c9f895
UD
7592 * Makefile (tests): Comment out tst-locale2 for now.
7593 (CFLAGS-flockfile.c, CFLAGS-funlockfile.c): Define to -D_IO_MTSAFE_IO.
7594
7595 * sysdeps/unix/sysv/linux/Makefile: Define CFLAGS-fork.c to
7596 -D_IO_MTSAFE_IO.
7597 * sysdeps/unix/sysv/linux/fork.c: Include <bits/stdio-lock.h>.
7598 Use _IO_lock_init instead of explicit assignment.
7599
7600 * sysdeps/pthread/bits/libc-lock.h: Define __rtld_lock_* macros.
7601 Define __libc_lock_* and __libc_lock_recursive macros with
7602 lowlevellock macros, not pthread mutexes.
7603
7604 * flockfile.c: Include <bits/stdio-lock.h>. Use _IO_lock_lock instead
7605 of pthread_mutex_lock.
7606 * funlockfile.c: Include <bits/stdio-lock.h>. Use _IO_lock_unlock
7607 instead of pthread_mutex_unlock.
7608
fde89ad0
RM
76092002-12-06 Roland McGrath <roland@redhat.com>
7610
7611 * allocatestack.c (__stack_user): Use uninitialized defn.
7612 * init.c (__pthread_initialize_minimal): Initialize it here.
7613
11767d47
RM
76142002-12-05 Roland McGrath <roland@redhat.com>
7615
fde89ad0
RM
7616 * sysdeps/i386/tls.h (TLS_INIT_TP): Make it return zero or an error
7617 string.
7618 * sysdeps/x86_64/tls.h (TLS_INIT_TP): Likewise.
7619
11767d47
RM
7620 * sysdeps/unix/sysv/linux/i386/createthread.c (create_thread): Add
7621 missing & here too.
7622
440d8bc2
UD
76232002-12-05 Ulrich Drepper <drepper@redhat.com>
7624
7625 * sysdeps/unix/sysv/linux/Makefile (sysdep_routines): Remove
7626 lowlevellock.
7627 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: New file.
7628 * sysdeps/unix/sysv/linux/i386/i586/libc-lowlevellock.S: New file.
7629 * sysdeps/unix/sysv/linux/i386/i686/libc-lowlevellock.S: New file.
7630 * sysdeps/pthread/bits/libc-lock.h: Use lowlevellock implementation
7631 for __libc_lock_* macros.
7632 * Makefile (routines): Add libc-lowlevellock.
7633
76342002-10-09 Roland McGrath <roland@redhat.com>
7635
7636 * sysdeps/pthread/bits/libc-lock.h (__libc_maybe_call): New macro.
7637 Under [__PIC__], call the function via the pointer fetched for
7638 comparison rather than a call by name that uses the PLT.
7639 (__libc_lock_init, __libc_rwlock_init, __libc_lock_fini)
7640 (__libc_rwlock_fini, __libc_lock_lock, __libc_rwlock_rdlock)
7641 (__libc_rwlock_wrlock, __libc_lock_trylock, __libc_rwlock_tryrdlock)
7642 (__libc_rwlock_trywrlock, __libc_lock_unlock, __libc_rwlock_unlock)
7643 (__libc_key_create, __libc_getspecific, __libc_setspecific): Use it.
7644
d5ed0118
RM
76452002-12-04 Roland McGrath <roland@redhat.com>
7646
7647 * forward.c (pthread_self): Use FORWARD3 macro to correct return type.
7648
7649 * sysdeps/i386/td_ta_map_lwp2thr.c: Moved from ../nptl_db.
7650 * sysdeps/generic/td_ta_map_lwp2thr.c: New file.
7651
7652 * pthread_create.c (start_thread): Add missing & on __nptl_last_event.
7653
eaa4099f
UD
76542002-12-04 Ulrich Drepper <drepper@redhat.com>
7655
7656 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Make pthread_t
7657 a completely opaque, non-integer type.
7658 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
7659
33b5d0cc
UD
76602002-12-05 Jakub Jelinek <jakub@redhat.com>
7661
7662 * sysdeps/i386/tls.h: Include stdlib.h.
7663 * sysdeps/x86_64/tls.h: Likewise.
7664
7a5cdb30
UD
76652002-12-04 Ulrich Drepper <drepper@redhat.com>
7666
c4a6d859
UD
7667 * Makefile (tests): Add tst-locale2.
7668 (tests-static): Likewise.
7669 * tst-locale2.c: New file.
7670
7a5cdb30
UD
7671 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Mark asms as
7672 volatile and add memory clobbers to lock operations.
7673
d82d5d12
UD
76742002-12-03 Ulrich Drepper <drepper@redhat.com>
7675
69cae3cf
UD
7676 * sysdeps/i386/i686/bits/atomic.h: Use i486 version.
7677 * sysdeps/i386/i486/bits/atomic.h: New file.
7678 * sysdeps/i386/i586/bits/atomic.h: New file.
7679 * sysdeps/i386/i686/pthread_spin_trylock.S: Define HAVE_CMOV and
7680 include i486 version.
7681 * sysdeps/i386/i486/pthread_spin_trylock.S: New file.
7682 * sysdeps/i386/i586/pthread_spin_trylock.S: New file.
c97c64de 7683 Patch by Marijn Ros <marijn@mad.scientist.com>.
69cae3cf 7684
e4044c01
UD
7685 * allocatestack.c (get_cached_stack): Don't crash if we first
7686 found a stack with a larger size then needed.
7687 Reported by Hui Huang <hui.huang@sun.com>.
7688
d82d5d12
UD
7689 * Makefile (tests): Add tst-sysconf.
7690 * tst-sysconf.c: New file.
7691
7692 * sysdeps/unix/sysv/linux/bits/local_lim.h: Undefine
7693 PTHREAD_THREADS_MAX.
7694
fa9a4ff0
RM
76952002-12-02 Roland McGrath <roland@redhat.com>
7696
7697 * pthreadP.h (__stack_user, __nptl_create_event, __nptl_death_event):
7698 Declare using hidden_proto instead of attribute_hidden, so there are
7699 non-.hidden static symbols for gdb to find.
7700 (__pthread_keys): Likewise.
7701 * events.c (__nptl_create_event, __nptl_death_event): Add hidden_def.
7702 * allocatestack.c (__stack_user): Likewise.
7703 * pthread_create.c (__pthread_keys): Likewise.
7704 (__nptl_threads_events, __nptl_last_event): Make these static instead
7705 of hidden.
7706 * pthread_key_create.c (__pthread_pthread_keys_max,
7707 __pthread_pthread_key_2ndlevel_size): Renamed from __linuxthreads_*.
7708
91949a33
UD
77092002-12-02 Ulrich Drepper <drepper@redhat.com>
7710
c22b52fa
UD
7711 * Makefile (tests): Add tst-locale1. If buid-static is yes link
7712 statically.
7713 * tst-locale1.c: New file.
7714
beb6aa41
UD
7715 * pthread_cond_timedwait.c: Include <stdlib.h>.
7716
91949a33
UD
7717 * Makefile (tests): Add tst-fork2 and tst-fork3.
7718 * tst-fork2.c: New file.
7719 * tst-fork3.c: New file.
7720
654dff90
UD
77212002-11-28 Ulrich Drepper <drepper@redhat.com>
7722
cb0e76b4
UD
7723 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: New file.
7724
7725 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define macros which
7726 require it to 200112L.
7727
7728 * sysdeps/unix/sysv/linux/i386/i486/lowlevelrwlock.S: Use cmov
7729 instruction only if HAVE_CMOV is defined.
7730 * sysdeps/unix/sysv/linux/i386/i686/lowlevelrwlock.S: Define HAVE_CMOV.
7731
975aa229
UD
7732 * sysdeps/unix/sysv/linux/x86_64/bits/semaphore.h: New file.
7733
654dff90
UD
7734 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S: New file.
7735
7736 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: New file.
7737
7738 * sysdeps/unix/sysv/linux/x86_64/pt-vfork.S: New file.
7739
a3931336
UD
77402002-11-27 Ulrich Drepper <drepper@redhat.com>
7741
c10c099c
UD
7742 * sysdeps/x86_64/bits/atomic.h: New file.
7743
7744 * sysdeps/i386/i686/bits/atomic.h: Fix asm syntax for 8- and
7745 16-bit operations.
7746
dca99d27
UD
7747 * sysdeps/unix/sysv/linux/raise.c (raise): Use INTERNAL_SYSCALL if
7748 possible since gettid cannot fail.
7749
f78deea6
UD
7750 * sysdeps/x86_64/pthreaddef.h: New file.
7751
7752 * sysdeps/i386/pthreaddef.h (gettid): Removed.
7753
7754 * sysdeps/x86_64/pthread_spin_init.c: New file.
7755 * sysdeps/x86_64/pthread_spin_lock.c: New file.
7756 * sysdeps/x86_64/pthread_spin_trylock.c: New file.
7757 * sysdeps/x86_64/pthread_spin_unlock.c: New file.
7758
7759 * sysdeps/i386/i686/pthread_spin_trylock.S (pthread_spin_trylock):
7760 Add missing lock prefix. Minute optimization.
7761
7762 * tst-spin2.c (main): Also check successful trylock call.
7763
7764 * sysdeps/pthread/pthread_sigmask.c (pthread_sigmask): Use correct
7765 syscall. Fix typo in case INTERNAL_SYSCALL is not used.
7766
7767 * sysdeps/i386/pthread_spin_destroy.c: Moved to...
7768 * sysdeps/pthread/pthread_spin_destroy.c: ...here. New file.
7769
7770 * sysdeps/i386/pthread_sigmask.c: Removed. Use the generic code.
7771 * sysdeps/pthread/pthread_sigmask.c (pthread_sigmask): Return correct
7772 value in case of an error. Add support for INTERNAL_SYSCALL.
b54e18eb
UD
7773
7774 * sysdeps/i386/pthread_sigmask.c (pthread_sigmask): Return correct
7775 value in case of an error.
7776
a3931336
UD
7777 * sysdeps/x86_64/tls.h: New file.
7778
76a50749
UD
77792002-11-26 Ulrich Drepper <drepper@redhat.com>
7780
117c452c
UD
7781 * sysdeps/i386/tls.h (THREAD_GETMEM_NC): Change interface. It now
7782 takes the array member name and the index as parameters.
7783 (THREAD_SETMEM_NC): Likewise.
7784 * pthread_getspecific.c: Use new THREAD_GETMEM_NC interface.
7785 * pthread_setspecific.c: Use new THREAD_GETMEM_NC and THREAD_SETMEM_NC
7786 interfaces.
7787
7788 * sysdeps/i386/tls.h (THREAD_SETMEM): Use size of member element
7789 to decide which code to use.
7790 (THREAD_SETMEM_NC): Likewise.
7791
76a50749
UD
7792 * allocatestack.c (queue_stack): Don't remove stack from list here.
7793 Do it in the caller. Correct condition to prematurely terminate
7794 loop to free stacks.
7795 (__deallocate_stack): Remove stack from list here.
7796
77972002-11-26 Ulrich Drepper <drepper@redhat.com>
7798
7799 * Makefile (tests): Add tst-stack1.
7800 * tst-stack1.c: New file.
7801
7802 * allocatestack.c (allocate_stack): Initialize the TCB on a user
7803 provided stack.
7804
7805 * pthread_attr_getstack.c: Return bottom of the thread area.
7806
78072002-11-25 Ulrich Drepper <drepper@redhat.com>
7808
7809 * Makefile (libpthread-routines): Add pt-allocrtsig and
7810 pthread_kill_other_threads.
7811 * pt-allocrtsig.c: New file.
7812 * pthread_kill_other_threads.c: New file.
7813 * sysdeps/unix/sysv/linux/allocrtsig.c: Add additional aliases for
7814 all three functions.
7815 * sysdeps/unix/sysv/linux/Makefile (sysdep_routines): Remove
7816 allocrtsig.
7817 * sysdeps/unix/sysv/linux/Versions (libc:GLIBC_PRIVATE): Export
7818 __libc_current_sigrtmin_private, __libc_current_sigrtmax_private,
7819 and __libc_allocate_rtsig_private.
7820 * Versions (libpthread): Export pthread_kill_other_threads_np,
7821 __libc_current_sigrtmin, and __libc_current_sigrtmax.
7822
78232002-11-24 Ulrich Drepper <drepper@redhat.com>
7824
7825 * allocatestack.c (allocate_stack): stackaddr in attribute points to
7826 the end of the stack. Adjust computations.
7827 When mprotect call fails dequeue stack and free it.
7828 * pthread_attr_setstack.c: Store top of the stack in stackaddr
7829 attribute.
7830 * pthread_getattr_np.c: Likewise.
7831
7832 * descr.h (IS_DETACHED): Add some more parenthesis to prevent
7833 surprises.
7834
78352002-11-23 Ulrich Drepper <drepper@redhat.com>
7836
7837 * sysdeps/pthread/pthread.h (pthread_self): __THROW must come before
7838 attribute definitions. Patch by Luca Barbieri <ldb@ldb.ods.org>.
7839
78402002-11-22 Ulrich Drepper <drepper@redhat.com>
7841
7842 * pthread_getspecific.c: Optimize access to first 2nd-level array.
7843 * pthread_setspecific.c: Likewise.
7844
78452002-11-21 Ulrich Drepper <drepper@redhat.com>
7846
7847 * sysdeps/unix/sysv/linux/i386/createthread.c: Remove CLONE_ flags
7848 definitions. Get them from the official place.
7849 * sysdeps/unix/sysv/linux/i386/fork.c: Likewise.
7850
7851 * sysdeps/unix/sysv/linux/i386/createthread.c: Update CLONE_* flags.
7852 Use new CLONE_ flags in clone() calls.
7853
7854 * sysdeps/unix/sysv/linux/fork.c: Use ARCH_FORK to actually fork.
7855 * sysdeps/unix/sysv/linux/i386/fork.c: New file.
7856
7857 * Versions: Add pthread_* functions for libc.
7858 * forward.c: New file.
7859
7860 * sysdeps/pthread/Makefile (libpthread-sysdeps_routines): Add
7861 errno-loc.
7862 * herrno.c: New file.
7863 * res.c: New file.
7864
7865 * Makefile (libpthread-routines): Remove sem_post, sem_wait,
7866 sem_trywait, and sem_timedwait. Add herrno and res.
7867 * sem_init.c: Don't initialize lock and waiters members.
7868 * sem_open.c: Likewise.
7869 * sem_post.c: Removed.
7870 * sem_wait.c: Removed.
7871 * sem_trywait.c: Removed.
7872 * sem_timedwait.c: Removed.
7873 * sysdeps/unix/sysv/linux/i386/i486/lowlevelsem.S: Complete rewrite.
7874 Includes full implementations of sem_post, sem_wait, sem_trywait,
7875 and sem_timedwait.
7876 * sysdeps/unix/sysv/linux/i386/lowlevelsem.h (lll_sem_post): Adjust
7877 for new implementation.
7878 * sysdeps/unix/sysv/linux/internaltypes.h (struct sem): Remove lock
7879 and waiters fields.
7880
7881 * tst-sem3.c: Improve error message.
7882 * tst-signal3.c: Likewise.
7883
7884 * init.c (__pthread_initialize_minimal): Use set_tid_address syscall
7885 to tell the kernel about the termination futex and to initialize tid
7886 member. Don't initialize main_thread.
7887 * descr.h (struct pthread): Remove main_thread member.
7888 * cancelllation.c (__do_cancel): Remove code handling main thread.
7889 The main thread is not special anymore.
7890
7891 * allocatestack.c (__reclaim_stacks): Mark stacks as unused. Add
7892 size of the stacks to stack_cache_actsize.
7893
7894 * pt-readv.c: Add missing "defined".
7895 * pt-sigwait.c: Likewise.
7896 * pt-writev.c: Likewise.
7897
78982002-11-09 Ulrich Drepper <drepper@redhat.com>
7899
7900 * Versions: Export __connect from libpthread.
7901 Patch by Luca Barbieri <ldb@ldb.ods.org>.
7902
7903 * Makefile (libpthread-routines): Add pt-raise.
7904 * sysdeps/unix/sysv/linux/raise.c: New file.
7905 * sysdeps/unix/sysv/linux/pt-raise.c: New file.
7906 * sysdeps/generic/pt-raise.c: New file.
7907
7908 * pthread_cond_init.c: Initialize all data elements of the condvar
7909 structure. Patch by Luca Barbieri <ldb@ldb.ods.org>.
7910
7911 * pthread_attr_init.c: Actually implement 2.0 compatibility version.
7912 * pthread_create.c: Likewise.
7913
7914 * Makefile (tests): Add tst-key1, tst-key2, tst-key3.
7915 * tst-key1.c: New file.
7916 * tst-key2.c: New file.
7917 * tst-key3.c: New file.
7918
7919 * Versions: Export pthread_detach for version GLIBC_2.0.
7920 Reported by Saurabh Desai <sdesai@austin.ibm.com>.
7921
79222002-11-08 Ulrich Drepper <drepper@redhat.com>
7923
7924 * pthread_key_create.c: Terminate search after an unused key was found.
7925 Patch by Luca Barbieri <ldb@ldb.ods.org>.
7926
7927 * sysdeps/unix/sysv/linux/i386/pthread_once.S: Return zero.
7928 Patch by Luca Barbieri <ldb@ldb.ods.org>.
7929
79302002-10-10 Ulrich Drepper <drepper@redhat.com>
7931
7932 * sysdeps/unix/sysv/linux/i386/i486/lowlevelsem.S: Use slow generic
7933 dynamic lookup for errno in PIC.
7934
7935 * allocatestack.c (get_cached_stack): Rearrange code slightly to
7936 release the stack lock as soon as possible.
7937 Call _dl_allocate_tls_init for TCB from the cache to re-initialize
7938 the static TLS block.
7939 (allocate_stack): Call _dl_allocate_tls_init for user-provided stack.
7940
7941 * cancellation.c: Renamed from cancelation.c.
7942 * Makefile: Adjust accordingly.
7943 * pthreadP.h (CANCELLATION_P): Renamed from CANCELATION_P.
7944 * cleanup_defer.c: Use CANCELLATION_P.
7945 * pthread_testcancel.c: Likewise.
7946 * descr.h: Fix spelling in comments.
7947 * init.c: Likewise.
7948 * pthread_getattr_np.c: Likewise.
7949 * pthread_getschedparam.c: Likewise.
7950 * pthread_setschedparam.c: Likewise.
7951 * Versions: Likewise.
7952
7953 * pt-pselect.c: New file.
7954 * Makefile (libpthread-routines): Add pt-pselect.
7955 * Versions: Add pselect.
7956
7957 * tst-cancel4.c: New file.
7958 * Makefile (tests): Add tst-cancel4.
7959
79602002-10-09 Ulrich Drepper <drepper@redhat.com>
7961
7962 * pthread_mutex_lock.c: Always record lock ownership.
7963 * pthread_mutex_timedlock.c: Likewise.
7964 * pthread_mutex_trylock.c: Likewise.
7965
7966 * pt-readv.c: New file.
7967 * pt-writev.c: New file.
7968 * pt-creat.c: New file.
7969 * pt-msgrcv.c: New file.
7970 * pt-msgsnd.c: New file.
7971 * pt-poll.c: New file.
7972 * pt-select.c: New file.
7973 * pt-sigpause.c: New file.
7974 * pt-sigsuspend.c: New file.
7975 * pt-sigwait.c: New file.
7976 * pt-sigwaitinfo.c: New file.
7977 * pt-waitid.c: New file.
7978 * Makefile (libpthread-routines): Add pt-readv, pt-writev, pt-creat,
7979 pt-msgrcv, pt-msgsnd, pt-poll, pt-select, pt-sigpause, pt-sigsuspend,
7980 pt-sigwait, pt-sigwaitinfo, and pt-waitid.
7981 * Versions: Add all the new functions.
7982
7983 * tst-exit1.c: New file.
7984 * Makefile (tests): Add tst-exit1.
7985
7986 * sem_timedwait.c: Minor optimization for more optimal fastpath.
7987
79882002-10-08 Ulrich Drepper <drepper@redhat.com>
7989
7990 * pt-fcntl.c: Only enable asynchronous cancellation for F_SETLKW.
7991
7992 * pthread_join.c: Enable asynchronous cancellation around lll_wait_tid
7993 call. pthread_join is an official cancellation point.
7994 * pthread_timedjoin.c: Likewise.
7995
7996 * pthread_cond_wait.c: Revert order in which internal lock are dropped
7997 and the condvar's mutex are retrieved.
7998 * pthread_cond_timedwait.c: Likewise.
7999 Reported by dice@saros.East.Sun.COM.
8000
80012002-10-07 Ulrich Drepper <drepper@redhat.com>
8002
8003 * pthreadP.h: Cut out all type definitions and move them...
8004 * sysdeps/unix/sysv/linux/internaltypes.h: ...here. New file.
8005 * pthreadP.h: Include <internaltypes.h>.
8006
8007 * sysdeps/unix/sysv/linux/i386/lowlevelsem.h (lll_sem_post): Little
8008 performance tweaks.
8009
8010 * sem_trywait.c: Shuffle #includes around to get right order.
8011 * sem_timedwait.c: Likewise.
8012 * sem_post.c: Likewise.
8013 * sem_wait.c: Likewise.
8014
8015 * nptl 0.3 released.
8016
8017 * Makefile (tests): Add tst-signal3.
8018 * tst-signal3.c: New file.
8019
80202002-10-05 Ulrich Drepper <drepper@redhat.com>
8021
8022 * sysdeps/unix/sysv/linux/i386/lowlevelsem.h: Tell the compiler that
8023 the asms modify the sem object.
8024 (__lll_sem_timedwait): Now takes struct sem* as first parameter.
8025
8026 * sysdeps/unix/sysv/linux/i386/bits/semaphore.h (sem_t): Don't expose
8027 the actual members.
8028 * pthreadP.h (struct sem): New type. Actual semaphore type.
8029 * semaphoreP.h: Include pthreadP.h.
8030 * sem_getvalue.c: Adjust to sem_t change.
8031 * sem_init.c: Likewise.
8032 * sem_open.c: Likewise.
8033 * sem_post.c: Likewise.
8034 * sem_timedwait.c: Likewise.
8035 * sem_trywait.c: Likewise.
8036 * sem_wait.c: Likewise.
8037
80382002-10-04 Ulrich Drepper <drepper@redhat.com>
8039
8040 * Makefile (tests): Add tst-basic2, tst-exec1, tst-exec3, tst-exec3.
8041 * tst-basic2.c: New file.
8042 * tst-exec1.c: New file.
8043 * tst-exec2.c: New file.
8044 * tst-exec3.c: New file.
8045
8046 * tst-fork1.c: Remove extra */.
8047
8048 * nptl 0.2 released. The API for IA-32 is complete.