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