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