]> git.ipfire.org Git - thirdparty/glibc.git/blame - nptl/ChangeLog
Update poll.h header for POSIX 2008.
[thirdparty/glibc.git] / nptl / ChangeLog
CommitLineData
75956694
DG
12009-12-01 Dinakar Guniguntala <dino@in.ibm.com>
2
3 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.h: Define
4 FUTEX_WAIT_REQUEUE_PI and FUTEX_CMP_REQUEUE_PI.
5 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S: If mutex
6 is a non robust PI mutex, then use FUTEX_CMP_REQUEUE_PI.
7 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S: Likewise.
8 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: If mutex
9 is a non robust PI mutex, then use FUTEX_WAIT_REQUEUE_PI.
10 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
11
9554ebf2
UD
122009-12-12 Ulrich Drepper <drepper@redhat.com>
13
14 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S (sem_timedwait):
15 Don't update nwaiters after invalid timeout is recognized.
16
ebb92a49
TS
172009-11-27 Thomas Schwinge <thomas@codesourcery.com>
18
19 * sysdeps/unix/sysv/linux/sh/pt-initfini.c (_init): Don't call
20 __gmon_start__.
21
b55ec98c
AS
222009-11-27 Andreas Schwab <schwab@redhat.com>
23
24 * sysdeps/unix/sysv/linux/x86_64/cancellation.S: Reload
25 THREAD_SELF->cancelhandling after returning from futex call.
26
80b3a4ea
UD
272009-11-24 Ulrich Drepper <drepper@redhat.com>
28
29 * tst-sem13.c: New file.
30 * Makefile (tests): Add tst-sem13.
31
57a299fe
RM
322009-11-22 Roland McGrath <roland@redhat.com>
33
34 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h: # include "i686/dl-sysdep.h"
35 instead of recapitulating its contents.
36
dfedb126
UD
372009-11-18 Ulrich Drepper <drepper@redhat.com>
38
39 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S: Minor
40 optimizations and cleanups.
41
dd7106b3
DG
422009-11-18 Dinakar Guniguntala <dino@in.ibm.com>
43
44 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S:
45 Remove redundant code. Fix cfi offsets.
46 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S:
47 Fix cfi offsets.
48
f8c10bb4
UD
492009-11-17 Ulrich Drepper <drepper@redhat.com>
50
62616842
UD
51 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Minimally
52 reduce size of unwind info.
53
f8c10bb4
UD
54 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Convert to use
55 cfi directives.
56 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
57 Based on a patch by Dinakar Guniguntala <dino@in.ibm.com>.
58
13f6812f
AS
592009-11-03 Andreas Schwab <schwab@linux-m68k.org>
60
61 [BZ #4457]
62 * sysdeps/pthread/unwind-resume.c: Include <libgcc_s.h> and use
63 LIBGCC_S_SO.
64 * sysdeps/pthread/unwind-forcedunwind.c: Likewise.
65
25db0f6c
DJ
662009-10-30 Ulrich Drepper <drepper@redhat.com>
67
9c04f7c1
UD
68 * tst-sem11.c (main): Rewrite to avoid aliasing problems.
69
25db0f6c
DJ
70 [BZ #3270]
71 * allocatestack.c (__nptl_setxid): Perform the operation in multiple
72 steps to avoid races with creation and terminations.
73 * nptl-init.c (sighandler_setxid): Adjust.
74 Patch by Daniel Jacobowitz.
75
3d60eb17
AS
762009-09-07 Andreas Schwab <schwab@redhat.com>
77
78 * sysdeps/pthread/bits/libc-lock.h (BP_SYM): Remove space before paren.
79
38eb6136
SP
802009-09-02 Suzuki K P <suzuki@in.ibm.com>
81 Joseph Myers <joseph@codesourcery.com>
82
83 [BZ #7094]
84 * sysdeps/unix/sysv/linux/timer_create.c (timer_create):
85 Initialize the sigev_notify field for newly created timer to make sure
01034d75 86 the timer gets deleted from the active timer's list upon timer_delete.
38eb6136 87
7812c65b
AS
882009-08-27 Andrew Stubbs <ams@codesourcery.com>
89
90 * sysdeps/unix/sysv/linux/sh/lowlevellock.S (__lll_timedlock_wait):
91 Correct a logic error.
92
84088310
UD
932009-08-25 Ulrich Drepper <drepper@redhat.com>
94
95 * sysdeps/x86_64/tls.h (RTLD_ENABLE_FOREIGN_CALL): Store old value
96 of the field in local variables.
97 (RTLD_FINALIZE_FOREIGN_CALL): Restore rtld_must_xmm_save from local
98 variable and don't unconditionally clear it.
99
b42a214c
UD
1002009-08-24 Ulrich Drepper <drepper@redhat.com>
101
102 * pthread_create.c (start_thread): Hint to the kernel that memory for
103 the stack can be reused. We do not mark all the memory. The part
104 still in use and some reserve are kept.
105
2d094b73
UD
1062009-08-23 Ulrich Drepper <drepper@redhat.com>
107
108 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Clean up namespace.
109
ae0d5450
UD
1102009-08-11 Ulrich Drepper <drepper@redhat.com>
111
112 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_unlock.S: Add CFI
113 directives.
114
1bc2b97e
UD
1152009-08-10 Ulrich Drepper <drepper@redhat.com>
116
117 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S: Add CFI
118 directives.
119 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S: Likewise.
120
ec492239
AS
1212009-08-10 Andreas Schwab <schwab@redhat.com>
122
123 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S
124 (__pthread_cond_signal): Don't clobber register used for syscall
125 number.
126
49eea97b
UD
1272009-08-08 Ulrich Drepper <drepper@redhat.com>
128
efa0569d
UD
129 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S (sem_timedwait):
130 Optimize code path used when FUTEX_CLOCK_REALTIME is supported.
131
49eea97b
UD
132 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
133 (__pthread_cond_wait): Optimize by avoiding use of callee-safe
134 register.
135
9083bcc5
UD
1362009-08-07 Ulrich Drepper <drepper@redhat.com>
137
138 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Little optimizations
139 enabled by the special *_asynccancel functions.
140 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
141 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
142
143 * sysdeps/unix/sysv/linux/x86_64/cancellation.S: Include lowlevellock.h.
144
421665c4
UD
1452009-08-04 Ulrich Drepper <drepper@redhat.com>
146
147 * sysdeps/unix/sysv/linux/x86_64/cancellation.S: New file.
148 * sysdeps/unix/sysv/linux/x86_64/libc-cancellation.S: New file.
149 * sysdeps/unix/sysv/linux/x86_64/librt-cancellation.S: New file.
150 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h (PSEUDO): Optimize
151 since we can assume the special __*_{en,dis}able_asynccancel
152 functions.
153 (PUSHARGS_*, POPARGS_*, SAVESTK_*, RESTSTK_*): Removed.
154 * sysdeps/x86_64/tcb-offsets.sym: Add cancellation-related bits
155 and PTHREAD_CANCELED.
156
bd03a1af
UD
1572009-07-31 Ulrich Drepper <drepper@redhat.com>
158
159 * descr.h: Better definition of *_BITMASK macros for cancellation.
160
b48a267b
UD
1612009-07-29 Ulrich Drepper <drepper@redhat.com>
162
586fa886
UD
163 * sysdeps/x86_64/tls.h (TLS_TCB_ALIGN): Define explicitly to 32.
164
b48a267b 165 * sysdeps/x86_64/tls.h (tcbhead_t): Add room for SSE registers the
586fa886
UD
166 dynamic linker might have to save.
167 Define RTLD_CHECK_FOREIGN_CALL, RTLD_ENABLE_FOREIGN_CALL,
168 RTLD_PREPARE_FOREIGN_CALL, and RTLD_FINALIZE_FOREIGN_CALL. Pretty
169 printing.
170
b48a267b
UD
171 * sysdeps/x86_64/tcb-offsets.sym: Add RTLD_SAVESPACE_SSE.
172
b0948ffd
UD
1732009-07-28 Ulrich Drepper <drepper@redhat.com>
174
175 * pthread_mutex_lock.c [NO_INCR] (__pthread_mutex_cond_lock_adjust):
176 New function.
177 * pthreadP.h: Declare __pthread_mutex_cond_lock_adjust.
178 * sysdeps/unix/sysv/linux/pthread-pi-defines.sym: Add ROBUST_BIT.
179 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S: Don't use
180 requeue_pi for robust mutexes.
181 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S: Likewise.
182 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
183 Don't only skip __pthread_mutex_cond_lock. Call instead
184 __pthread_mutex_cond_lock_adjust.
185 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
186
187 * pthread_mutex_unlock.c (__pthread_mutex_unlock_full): Minor
188 optimization of PI mutex handling.
189
e73e694e
UD
1902009-07-27 Ulrich Drepper <drepper@redhat.com>
191
192 [BZ #10418]
193 * pthread_mutex_unlock.c (__pthread_mutex_unlock_full): Use _rel
194 instead of of _acq variants of cmpxchg.
195
f1adf1f4
UD
1962009-07-23 Ulrich Drepper <drepper@redhat.com>
197
01b597da
UD
198 * sysdeps/x86_64/configure.in: New file.
199
f1adf1f4
UD
200 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Fix error
201 path when not using absolute timeout futex.
202
c3db953c
UD
2032009-07-20 Ulrich Drepper <drepper@redhat.com>
204
205 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Minor
206 optimizations of last changes.
207 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
208
515a8908
UD
2092009-07-19 Ulrich Drepper <drepper@redhat.com>
210
42e69bcf
UD
211 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Define
212 FUTEX_WAIT_REQUEUE_PI and FUTEX_CMP_REQUEUE_PI.
213 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S: If mutex
214 is a PI mutex, then use FUTEX_CMP_REQUEUE_PI.
215 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S: Likewise.
216 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: If mutex
217 is a PI mutex, then use FUTEX_WAIT_REQUEUE_PI.
218 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
219
515a8908
UD
220 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
221 (__pthread_cond_timedwait): Make more robust.
222
30b1954a
UD
2232009-07-18 Ulrich Drepper <drepper@redhat.com>
224
e2dca2fe
UD
225 * sysdeps/unix/sysv/linux/x86_64/lowlevelrobustlock.S
226 (__lll_robust_timedlock_wait): If possible use FUTEX_WAIT_BITSET to
227 directly use absolute timeout.
228
3d77b268
UD
229 * tst-sem5.c (do_test): Add test for premature timeout.
230 * Makefile: Linu tst-sem5 with librt.
231
d979611e
UD
232 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S
233 (pthread_rwlock_timedwrlock): If possible use FUTEX_WAIT_BITSET to
234 directly use absolute timeout.
32c6c342
UD
235 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S
236 (pthread_rwlock_timedrdlock): Likewise.
d979611e 237
f8b6cd21
UD
238 * tst-cond11.c (run_test): Add test to check that the timeout is
239 long enough.
240
e88726b4
UD
241 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
242 (__pthread_cond_timedwait): If possible use FUTEX_WAIT_BITSET to
243 directly use absolute timeout.
244
30b1954a
UD
245 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
246 (__pthread_cond_wait): Convert to using exception handler instead of
247 registered unwind buffer.
92618c95
UD
248 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
249 (__pthread_cond_timedwait): Likewise.
30b1954a 250
d52c96e7
UD
2512009-07-17 Ulrich Drepper <drepper@redhat.com>
252
f351f2b7
UD
253 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S (sem_timedwait):
254 If possible use FUTEX_WAIT_BITSET|FUTEX_CLOCK_REALTIME to directly
255 use absolute timeout.
256
0adae468
UD
257 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S (sem_wait): Optimize
258 handling of uncontested semaphore.
259
d52c96e7
UD
260 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
261 (__condvar_cleanup): Rewrite to use cfi directives instead of
262 hand-coded unwind tables.
63601ccd
UD
263 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S (__pthread_once):
264 Likewise.
c3c2f3cf 265 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S (sem_wait): Likewise.
aee2665a
UD
266 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S (sem_timedwait):
267 Likewise.
d52c96e7 268
bfdb73e1
UD
2692009-06-12 Ulrich Drepper <drepper@redhat.com>
270
271 * Makefile (libpthread-routines): Add pthread_sigqueue.
272 * Versions: Add pthread_sigqueue for GLIBC_2.11.
273 * sysdeps/pthread/bits/sigthread.h: Declare pthread_sigqueue.
274 * sysdeps/unix/sysv/linux/pthread_sigqueue.c: New file.
275
1828530f
BK
2762009-06-11 Ulrich Drepper <drepper@redhat.com>
277
278 [BZ #10262]
279 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
280 (LOAD_FUTEX_WAIT_ABS): Fix futex parameter in case private futexes
281 cannot be assumed.
282 Patch by Bryan Kadzban <bz-glibc@kdzbn.homelinux.net>.
283
a5b8b56d
UD
2842009-05-16 Ulrich Drepper <drepper@redhat.com>
285
e20c4ef0
UD
286 * libc-cancellation.c: Move __libc_cleanup_routine to...
287 * libc-cleanup.c: ...here. New file.
288 * Makefile (routines): Add libc-cleanup.
289
cba0ca79
UD
290 * cancellation.c (__pthread_disable_asynccancel): Remove unnecessary
291 test.
292 * libc-cancellation.c: Use <nptl/cancellation.c: to define the code.
293 * sysdeps/pthread/librt-cancellation.c: Likewise.
294
a5b8b56d
UD
295 [BZ #9924]
296 * nptl-init.c: Renamed from init.c.
297 * Makefile: Change all occurences of init.c to nptl-init.c.
298
1a7f254b
UD
2992009-05-15 Ulrich Drepper <drepper@redhat.com>
300
9437b427
UD
301 * cancellation.c (__pthread_disable_asynccancel): Correct the bits
302 to test when deciding on the delay.
303 * libc-cancellation.c (__libc_disable_asynccancel): Likewise.
304 * pthread_cancel.c: Close race between deciding on sending a signal
305 and setting the CANCELING_BIT bit.
306
1a7f254b
UD
307 * cancellation.c (__pthread_disable_asynccancel): Don't return if
308 thread is canceled.
309 * libc-cancellation.c (__libc_disable_asynccancel): Likewise.
310
d5c157a9
UD
3112009-04-27 Ulrich Drepper <drepper@redhat.com>
312
313 * cancellation.c (__pthread_disable_asynccancel): Use THREAD_ATOMIC_AND
314 is available.
315 * libc-cancellation.c (__libc_disable_asynccancel): Likewise.
316 * sysdeps/x86_64/tls.h: Define THREAD_ATOMIC_AND.
317 * sysdeps/i386/tls.h: Likewise.
318 (tcbhead_t): Add __private_tm member.
319
f521be31
UD
3202009-04-26 Ulrich Drepper <drepper@redhat.com>
321
5efe8650
UD
322 * sem_open.c (sem_open): Rewrite initialization of initsem to
323 avoid warnings.
324
f521be31
UD
325 * sysdeps/unix/sysv/linux/libc_pthread_init.c (__libc_pthread_init):
326 Avoid warning by using may_alias attribute on ptrhack.
327
d301a6e1
UD
3282009-04-22 Ulrich Drepper <drepper@redhat.com>
329
5497de87 330 [BZ #10090]
d301a6e1
UD
331 * pthread_attr_setschedparam.c (__pthread_attr_setschedparam):
332 Check policy and priority for validity.
333 Patch mostly by Zhang Xiliang <zhangxiliang@cn.fujitsu.com>.
334
71a5bd3e
UD
3352009-03-15 Ulrich Drepper <drepper@redhat.com>
336
337 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
338 (__pthread_cond_timedwait): Change to use cfi directives instead of
339 hand-coded unwind sections.
340
30991b8b
UD
3412009-03-10 Ulrich Drepper <drepper@redhat.com>
342
343 * init.c (nptl_freeres): Compile only for SHARED.
344
9920a6b8
JJ
3452009-03-09 Jakub Jelinek <jakub@redhat.com>
346
347 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h: Define
348 FUTEX_WAIT_BITSET, FUTEX_WAKE_BITSET, FUTEX_CLOCK_REALTIME and
349 FUTEX_BITSET_MATCH_ANY.
350
e965d514
RM
3512009-02-27 Roland McGrath <roland@redhat.com>
352
353 * init.c (__nptl_initial_report_events): Mark __attribute_used__.
354 * pthread_create.c (__nptl_threads_events, __nptl_last_event): Likewise.
355
6cbe890a
UD
3562009-02-26 Ulrich Drepper <drepper@redhat.com>
357
358 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define
359 _POSIX_THREAD_ROBUST_PRIO_INHERIT and
360 _POSIX_THREAD_ROBUST_PRIO_PROTECT. Reset value of macros from
361 200112L to 200809L.
362
77db439e
UD
3632009-02-25 Ulrich Drepper <drepper@redhat.com>
364
365 * sysdeps/pthread/pthread.h: The robust mutex functions are in
366 POSIX 2008.
367
5be0a688
UD
3682009-02-24 Ulrich Drepper <drepper@redhat.com>
369
370 * sysdeps/unix/sysv/linux/bits/posix_opt.h (_BITS_POSIX_OPT_H):
371 Unify name of include protector macro.
372
4c869eb6
UD
3732009-02-14 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
374
375 * sysdeps/unix/sysv/linux/sh/lowlevellock.S: Define
376 LOAD_FUTEX_WAIT_ABS even if (FUTEX_WAIT == 0).
377
cca50323
UD
3782009-01-29 Ulrich Drepper <drepper@redhat.com>
379
7f901dd7
UD
380 * sysdeps/pthread/unwind-forcedunwind.c: Encrypt all function
381 pointer variables.
382
cca50323
UD
383 * allocatestack.c (__free_stacks): Renamed from free_stacks.
384 (__free_stack_cache): Removed. Change callers to call __free_stacks.
385 * init.c (nptl_freeres): New function.
386 (pthread_functions): Initialize ptr_freeres to nptl_freeres.
387 * pthreadP.h: Don't declare __free_stack_cache. Declare __free_stacks.
388 * sysdeps/pthread/unwind-forcedunwind.c (libgcc_s_handle): New
389 variable.
390 (pthread_cancel_init): Depend in libgcc_s_handle for decision to
391 load DSO. Assign last.
392 (__unwind_freeres): New function.
393
394 * allocatestack.c (__reclaim_stacks): Reset in_flight_stack later
395 for better debugging. No need to use stack_list_add here.
396
a7bd183f
UD
3972009-01-14 Kaz Kojima <kkojima@rr.iij4u.or.jp>
398
399 * sysdeps/unix/sysv/linux/sh/lowlevellock.S
400 (__lll_timedlock_wait): Use FUTEX_WAIT_BITSET|FUTEX_CLOCK_REALTIME
401 instead of computing relative timeout.
402 * sysdeps/unix/sysv/linux/sh/lowlevellock.h: Define
403 FUTEX_CLOCK_REALTIME and FUTEX_BITSET_MATCH_ANY.
404
563ee1cb
UD
4052009-01-25 Ulrich Drepper <drepper@redhat.com>
406
407 * pthread_mutex_lock.c (__pthread_mutex_lock): Remove unused label out.
408
f25c7b08
UD
4092009-01-08 Ulrich Drepper <drepper@redhat.com>
410
411 * sysdeps/pthread/list.h (list_add): Initialize new element first.
412 (list_add_tail): Removed.
413
40de0fe3
JJ
4142009-01-07 Ulrich Drepper <drepper@redhat.com>
415
416 * (in_flight_stack): New variable.
417 (stack_list_del): New function. Use instead of list_del.
418 (stack_list_add): New function. Use instead of list_add when adding to
419 stack_cache and stack_used lists.
420 (__reclaim_stacks): Complete operations on stack_cache and stack_used lists
421 when the fork call interrupted another thread.
422
3c612057
UD
4232009-01-04 Ulrich Drepper <drepper@redhat.com>
424
425 * init.c (__pthread_initialize_minimal_internal): Optimize test
426 FUTEX_CLOCK_REALTIME a bit.
427
19834b42
UD
4282009-01-03 Ulrich Drepper <drepper@redhat.com>
429
430 * init.c (__pthread_initialize_minimal_internal): Cheat a bit by
431 only passing five parameters to FUTEX_WAIT_BITSET call.
432
433 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
a9fa090b 434 (__lll_timedlock_wait): Use FUTEX_WAIT_BITSET|FUTEX_CLOCK_REALTIME
19834b42
UD
435 instead of computing relative timeout.
436
7dd650d7
UD
4372009-01-02 Ulrich Drepper <drepper@redhat.com>
438
cbd8aeb8
UD
439 * init.c (__pthread_initialize_minimal_internal): Check for
440 FUTEX_CLOCK_REALTIME flag.
441 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S (__lll_timedlock_wait):
a9fa090b 442 Use FUTEX_WAIT_BITSET|FUTEX_CLOCK_REALTIME instead of computing
cbd8aeb8
UD
443 relative timeout.
444
7dd650d7
UD
445 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Define
446 FUTEX_CLOCK_REALTIME and FUTEX_BITSET_MATCH_ANY.
447 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Likewise.
448 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h: Likewise.
449 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Likewise.
450 * sysdeps/unix/sysv/linux/s390/lowlevellock.h: Likewise.
451
217d45cd
UD
4522008-12-09 Ulrich Drepper <drepper@redhat.com>
453
454 * sysdeps/pthread/pthread.h (pthread_cleanup_pop): Use { } as empty
455 loop body instead of ; to avoid gcc warnings.
456 (pthread_cleanup_pop_restore_np): Likewise.
457 Patch by Caolán McNamara <caolanm@redhat.com>.
458
6de79a49
UD
4592008-12-09 Jakub Jelinek <jakub@redhat.com>
460
461 * pthread_mutex_lock.c (__pthread_mutex_lock): Handle only the
462 fast path here, for robust/PI/PP mutexes call
463 __pthread_mutex_lock_full. Don't use switch, instead use a series
464 of ifs according to their probability.
465 (__pthread_mutex_lock_full): New function.
466 * pthread_mutex_unlock.c: Include assert.h.
467 (__pthread_mutex_unlock_usercnt): Handle only the
468 fast path here, for robust/PI/PP mutexes call
469 __pthread_mutex_unlock_full. Don't use switch, instead use a series
470 of ifs according to their probability.
471 (__pthread_mutex_unlock_full): New function.
472 * sysdeps/unix/sysv/linux/pthread_mutex_cond_lock.c
473 (__pthread_mutex_lock_full): Define.
474
71bb2639
UD
4752008-12-08 Ulrich Drepper <drepper@redhat.com>
476
477 * sysdeps/x86_64/tls.h (tcbhead_t): Add fields reserved for TM
478 implementation. Add necessary padding and.
479 * descr.h (struct pthread): Increase padding for tcbhead_t to 24
480 words.
481
247626f3
UD
4822008-12-04 Kaz Kojima <kkojima@rr.iij4u.or.jp>
483
484 * sysdeps/unix/sysv/linux/sh/lowlevellock.h: Define FUTEX_WAIT_BITSET
485 and FUTEX_WAKE_BITSET.
486
da5ac135
UD
4872008-12-02 Ulrich Drepper <drepper@redhat.com>
488
489 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Define FUTEX_WAIT_BITSET
490 and FUTEX_WAKE_BITSET.
491 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h: Likewise.
492 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Likewise.
493 * sysdeps/unix/sysv/linux/s390/lowlevellock.h: Likewise.
494 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
495
c0439b95
RM
4962008-11-25 Roland McGrath <roland@redhat.com>
497
498 * sysdeps/alpha, sysdeps/unix/sysv/linux/alpha:
499 Subdirectories moved to ports repository as
500 sysdeps/.../nptl subdirectories.
501
0e54a725
UD
5022008-11-12 Jakub Jelinek <jakub@redhat.com>
503
504 [BZ #7008]
505 * pthread_condattr_setclock.c (pthread_condattr_setclock): Fix masking
506 of old value.
507 * pthread_cond_init.c (__pthread_cond_init): Fix
508 cond->__data.__nwaiters initialization.
509 * Makefile (tests): Add tst-cond23.
510 * tst-cond23.c: New test.
511
4b23f9bd
JJ
5122008-11-07 Jakub Jelinek <jakub@redhat.com>
513
514 * sysdeps/pthread/malloc-machine.h (MALLOC): Adjust __libc_tsd_define
515 arguments.
516 (tsd_setspecific, tsd_getspecific): Adjust __libc_tsd_{set,get}
517 arguments.
518
efac1fce
UD
5192008-11-01 Ulrich Drepper <drepper@redhat.com>
520
521 [BZ #6955]
522 * pthread_mutex_lock.c: Add support for private PI mutexes.
523 * pthread_mutex_timedlock.c: Likewise.
524 * pthread_mutex_trylock.c: Likewise.
525 * pthread_mutex_unlock.c: Likewise.
526 Patch mostly by Ben Jackson <ben@ben.com>.
527
bf837fa3
UD
5282008-10-31 Ulrich Drepper <drepper@redhat.com>
529
530 [BZ #6843]
531 * sysdeps/pthread/gai_misc.h (__gai_create_helper_thread):
532 Increase stack size for helper thread.
533
208bc836
UD
5342008-10-06 Martin Schwidefsky <schwidefsky@de.ibm.com>
535
536 * sysdeps/s390/tls.h (THREAD_SET_STACK_GUARD): Add empty inline
537 assembly with a clobber list for access registers a0 and a1.
538
17f8b4a9
UD
5392008-09-11 Martin Schwidefsky <schwidefsky@de.ibm.com>
540
541 * sysdeps/unix/sysv/linux/fork.c (__libc_fork): Add memory barrier
542 to force runp->refcntr to be read from memory.
543
2458c748
AJ
5442008-09-08 Richard Guenther <rguenther@suse.de>
545
546 * sysdeps/unix/sysv/linux/i386/lowlevellock.h (lll_lock,
547 lll_robust_lock, lll_cond_lock, lll_robust_cond_lock,
548 lll_timedlock, lll_robust_timedlock, lll_unlock,
549 lll_robust_unlock): Promote private to int.
550
965805e8
UD
5512008-08-15 Ulrich Drepper <drepper@redhat.com>
552
553 * sysdeps/x86_64/pthreaddef.h: Remove ARCH_MAP_FLAGS and
554 ARCH_RETRY_MMAP definitions.
555 * allocatestack.c: Remove definition of ARCH_MAP_FLAGS.
556 Define MAP_STACK when not defined.
557 (allocate_stack): Use MAP_STACK instead of ARCH_MAP_FLAGS. Remove
558 handling of ARCH_RETRY_MMAP.
559
bd7f4857
UD
5602008-07-30 Ulrich Drepper <drepper@redhat.com>
561
562 * tst-align2.c (f): Print message that f is reached.
563
619cc2f6
UD
5642008-04-28 Hiroki Kaminaga <kaminaga@sm.sony.co.jp>
565
566 [BZ #6740]
567 * sysdeps/powerpc/tcb-offsets.sym (PRIVATE_FUTEX_OFFSET): Guard symbol
568 definition with #ifndef __ASSUME_PRIVATE_FUTEX.
569
8ccf22f9
UD
5702008-07-25 Ulrich Drepper <drepper@redhat.com>
571
572 * sysdeps/unix/sysv/linux/mq_notify.c (init_mq_netlink): Use
573 SOCK_CLOEXEC if possible.
574
5752008-05-29 Ulrich Drepper <drepper@redhat.com>
576
577 * Makefile (tests): Add tst-rwlock2a.
578 * tst-rwlock2.c: Use TYPE macro to decide what rwlock type to use.
579 * tst-rwlock2a.c: New file.
580
5a337776
UD
5812008-06-12 Ulrich Drepper <drepper@redhat.com>
582
583 * sysdeps/pthread/pthread.h: Remove inadvertant checkin.
584
e4d6e7f5
UD
5852008-05-17 Samuel Thibault <samuel.thibault@ens-lyon.org>
586
587 * sysdeps/pthread/pthread.h: Fix typo in comment.
588
d6296e88
UD
5892008-05-28 Ulrich Drepper <drepper@redhat.com>
590
591 * sysdeps/pthread/createthread.c (do_clone): Pass accurate length
592 of CPU set to the kernel.
593
62605cbf
UD
5942008-05-23 Paul Pluzhnikov <ppluzhnikov@google.com>
595
596 * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S: Add
597 cfi directives.
598 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S: Likewise.
599 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S: Likewise.
600 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Likewise.
601 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S: Likewise.
602 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
603 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S: Likewise.
604
6052008-05-22 Paul Pluzhnikov <ppluzhnikov@google.com>
606
607 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S: Add
608 cfi directives.
609 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
610 Likewise.
611 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S:
612 Likewise.
613 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S:
614 Likewise.
615
4b2c85c0
UD
6162008-05-26 Ulrich Drepper <drepper@redhat.com>
617
618 * tst-typesizes.c: Explicitly check __SIZEOF_PTHREAD_* constants.
619
b72f5692 6202008-05-20 Jakub Jelinek <jakub@redhat.com>
4b2c85c0
UD
621
622 David S. Miller <davem@davemloft.net>
3b15b590 623
b72f5692 624 * sysdeps/unix/sysv/linux/sparc/sparc64/Makefile: New file.
3b15b590 625
cdffaaa6
UD
6262008-05-10 Ulrich Drepper <drepper@redhat.com>
627
628 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Access
629 __pshared correctly.
630 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
631 Likewise.
632 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
633 Likewise.
634 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S:
635 Likewise.
636 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S:
637 Likewise.
638 Reported by Clemens Kolbitsch <clemens.kol@gmx.at>.
639
2313c48f
JJ
6402008-04-14 David S. Miller <davem@davemloft.net>
641
642 * sysdeps/unix/sysv/linux/sparc/sparc32/sem_wait.c
643 (__old_sem_wait): Fix argument to lll_futex_wait().
644
2f611ada
UD
6452007-11-26 Daniel Jacobowitz <dan@codesourcery.com>
646
647 * pthread_create.c: Require pthread_mutex_trylock and
648 pthread_key_delete for libgcc.
649
d24be489
JJ
6502008-04-08 Jakub Jelinek <jakub@redhat.com>
651
652 [BZ #6020]
653 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h
654 (lll_futex_wake_unlock): Add private argument to the pre-v9 macro.
655 Patch by Sunil Amitkumar Janki <devel.sjanki@gmail.com>.
656
f96853be
UD
6572008-03-27 Ulrich Drepper <drepper@redhat.com>
658
8ccf22f9 659 * sysdeps/unix/sysv/linux/bits/local_lim.h: Undefine ARG_MAX if
f96853be
UD
660 <linux/limits.h> has defined it.
661 * sysdeps/unix/sysv/linux/alpha/bits/local_lim.h: Likewise.
662 * sysdeps/unix/sysv/linux/ia64/bits/local_lim.h: Likewise.
663 * sysdeps/unix/sysv/linux/powerpc/bits/local_lim.h: Likewise.
664 * sysdeps/unix/sysv/linux/sparc/bits/local_lim.h: Likewise.
665
354b7527
JJ
6662008-03-18 Jakub Jelinek <jakub@redhat.com>
667
668 * sysdeps/unix/sysv/linux/ia64/dl-sysdep.h: Use __ASSEMBLER__ instead
669 of ASSEMBLER.
670 * sysdeps/unix/sysv/linux/i386/i686/dl-sysdep.h: Likewise.
671 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h: Likewise.
672
702ae329
UD
6732008-03-14 Ulrich Drepper <drepper@redhat.com>
674
675 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h: Define
676 HAVE_DL_DISCOVER_OSVERSION.
677 * sysdeps/unix/sysv/linux/i386/i686/dl-sysdep.h: Likewise.
678 * sysdeps/unix/sysv/linux/ia64/dl-sysdep.h: Likewise.
679
443db178
UD
6802008-03-07 Ulrich Drepper <drepper@redhat.com>
681
682 [BZ #5778]
683 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Change
684 _POSIX_CHOWN_RESTRICTED value to zero.
685
67fbfa5c
RM
6862008-01-31 Roland McGrath <roland@redhat.com>
687
688 * Makefile (omit-deps): Variable removed.
689
dd3113da
UD
6902008-01-30 Ulrich Drepper <drepper@redhat.com>
691
692 * sysdeps/unix/sysv/linux/x86_64/sem_post.S (sem_post): Avoid
693 unnecessary addr32 prefix.
694
16cd816f
RM
6952008-01-29 Roland McGrath <roland@redhat.com>
696
697 * Makeconfig (ptw-CPPFLAGS, sysd-rules-patterns): New variables.
698
b4b166af
UD
6992008-01-22 Kaz Kojima <kkojima@rr.iij4u.or.jp>
700
701 * sysdeps/unix/sysv/linux/sh/sem_post.S: Don't overflow value field.
702
7032008-01-21 Kaz Kojima <kkojima@rr.iij4u.or.jp>
704
705 * sysdeps/unix/sysv/linux/sh/lowlevel-atomic.h (XADD): Use
706 a scratch register.
707 * sysdeps/unix/sysv/linux/sh/lowlevellock.S
708 (__lll_lock_wait_private): Fix typo.
709 * sysdeps/unix/sysv/linux/sh/pthread_barrier_wait.S
710 (pthread_barrier_wait): Likewise. Adjust XADD use.
711 * sysdeps/unix/sysv/linux/sh/sem_post.S (__new_sem_post):
712 Adjust XADD use.
713 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S
714 (pthread_rwlock_timedrdlock): Return correct return value.
715 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S
16cd816f 716 (pthread_rwlock_timedwrlock): Likewise.
b4b166af 717
eaf95a26
UD
7182008-01-15 Ulrich Drepper <drepper@redhat.com>
719
720 * tst-eintr2.c (do_test): make sure that if mutex_lock in main
721 thread returns the program exits with an error code.
722
ab355d9a
UD
7232008-01-10 Ulrich Drepper <drepper@redhat.com>
724
725 * pthread-errnos.sym: Add EOVERFLOW.
726 * sysdeps/unix/sysv/linux/structsem.sym: Add SEM_VALUE_MAX.
727 * sysdeps/unix/sysv/linux/sem_post.c: Don't overflow value field.
728 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S: Likewise.
729 * sysdeps/unix/sysv/linux/x86_64/sem_post.S: Likewise.
730
b8cca206
UD
7312007-12-14 Ulrich Drepper <drepper@redhat.com>
732
733 * sysdeps/x86_64/pthreaddef.h (ARCH_RETRY_MMAP): Take additional
734 parameter. Passed it as permission to mmap.
735 * allocatestack.c (allocate_stack): Pass prot as second parameter
736 to ARCH_RETRY_MMAP.
737
189dce4f
UD
7382007-12-12 Ulrich Drepper <drepper@redhat.com>
739
3eb0e1c6
UD
740 * tst-basic7.c: Allocate memory for the stack.
741
189dce4f
UD
742 [BZ #5465]
743 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S [!SHARED]
744 (__pthread_cond_timedwait): Don't use VDSO.
58d11795 745 Patch by Michal Januszewski.
189dce4f 746
26e21e75
UD
7472007-12-07 Ulrich Drepper <drepper@redhat.com>
748
749 [BZ #5455]
750 * sysdeps/pthread/pthread.h [!__EXCEPTIONS] (pthread_cleanup_pop):
751 Allow label before pthread_cleanup_pop.
752 (pthread_cleanup_pop_restore_np): Likewise.
753
191ec77f
UD
7542007-12-04 Kaz Kojima <kkojima@rr.iij4u.or.jp>
755
756 * sysdeps/unix/sysv/linux/sh/lowlevellock.S (__lll_timedlock_wait):
757 Store 2 before returning ETIMEDOUT.
758
c012be6f
UD
7592007-11-23 Ulrich Drepper <drepper@redhat.com>
760
761 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S (__lll_timedlock_wait):
762 Store 2 before returning ETIMEDOUT.
763 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Likewise
764 * sysdeps/unix/sysv/linux/lowlevellock.c: Likewise.
765 (__lll_lock_wait_private): Optimize.
766 (__lll_lock_wait): Likewise.
767
77f1e09a
UD
7682007-11-20 Jakub Jelinek <jakub@redhat.com>
769
770 * sysdeps/pthread/pthread.h (pthread_cleanup_push,
771 pthread_cleanup_push_defer_np): Add extra (void *) cast to shut up
772 g++ 4.1 and 4.2 -Wstrict-aliasing warnings.
773
0f7e0ee5
UD
7742007-11-08 Ulrich Drepper <drepper@redhat.com>
775
cbed6a60
UD
776 [BZ #5240]
777 * sysdeps/unix/sysv/linux/lowlevellock.c (__lll_timedlock_wait):
778 If we time out, try one last time to lock the futex to avoid
779 losing a wakeup signal.
780 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Likewise.
781 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Likewise.
782
0f7e0ee5
UD
783 [BZ #5245]
784 * sysdeps/pthread/createthread.c (do_clone): Translate clone error
785 if necessary.
786
f6ed654c
UD
7872007-11-07 Ulrich Drepper <drepper@redhat.com>
788
789 [BZ #5245]
790 * allocatestack.c (allocate_stack): Change ENOMEM error in case
791 mmap failed to EAGAIN.
792 * Makefile (tests): Add tst-basic7.
793 * tst-basic7.c: New file.
794
b92e3780
UD
7952007-11-05 Ulrich Drepper <drepper@redhat.com>
796
797 * sysdeps/unix/sysv/linux/register-atfork.c (__register_atfork):
798 Use __linkin_atfork.
799
94a749f6
UD
8002007-11-03 Mike Frysinger <vapier@gentoo.org>
801
802 * sysdeps/unix/sysv/linux/sh/lowlevellock.S (LOAD_FUTEX_WAIT): Add
803 missing line continuations.
804 * sysdeps/unix/sysv/linux/sh/lowlevelrobustlock.S (LOAD_FUTEX_WAIT,
805 LOAD_FUTEX_WAKE): Likewise. Also add missing 3rd parameter.
806
f160a450
UD
8072007-10-28 Ulrich Drepper <drepper@redhat.com>
808
809 [BZ #5220]
810 * sysdeps/unix/sysv/linux/kernel-posix-timers.h: Declare
811 __active_timer_sigev_thread and __active_timer_sigev_thread_lock.
812 (struct timer): Add next element.
813 * sysdeps/unix/sysv/linux/timer_create.c: For SIGEV_THREAD timers,
814 enqueue timer structure into __active_timer_sigev_thread list.
815 * sysdeps/unix/sysv/linux/timer_delete.c: For SIGEV_THREAD timers,
816 remove timer struct from __active_timer_sigev_thread.
817 * sysdeps/unix/sysv/linux/timer_routines.c (timer_helper_thread):
818 Before using timer structure make sure it is still on the
819 __active_timer_sigev_thread list. Keep lock until done.
820 Define __active_timer_sigev_thread and
821 __active_timer_sigev_thread_lock.
822
94833f11
UD
8232007-10-27 Ulrich Drepper <drepper@redhat.com>
824
825 * sysdeps/pthread/malloc-machine.h: Define ATFORK_MEM.
826 Redefine thread_atfork for use of ATFORK_MEM.
827 * sysdeps/unix/sysv/linux/fork.h: Define __linkin_atfork.
828 * sysdeps/unix/sysv/linux/register-atfork.c (__linkin_atfork): New
829 function.
830 * sysdeps/unix/sysv/linux/unregister-atfork.c (__unregister_atfork):
831 Use atomic operation when removing first element of list.
832
96c06e08
JJ
8332007-10-17 Jakub Jelinek <jakub@redhat.com>
834
835 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S (__old_sem_post): New
836 routine instead of an alias to __new_sem_post.
837
e807818b
JJ
8382007-10-15 Jakub Jelinek <jakub@redhat.com>
839
840 * init.c (__pthread_initialize_minimal): Initialize word to appease
841 valgrind.
842
59d430c6
UD
8432007-10-10 Jakub Jelinek <jakub@redhat.com>
844
845 * sysdeps/pthread/bits/libc-lock.h (__libc_rwlock_init): Inside of
846 libc.so just clear NAME.
847 (__libc_rwlock_fini): Nop inside of libc.so.
848 * tst-initializers1.c (main): Test if PTHREAD_RWLOCK_INITIALIZER is
849 all zeros.
850
221d9d8e
UD
8512007-09-02 Ulrich Drepper <drepper@redhat.com>
852
853 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
854 (__pthread_cond_wait): Fix unlocking of internal lock after mutex
855 unlocking failed.
856 Patch by Luca Barbieri <luca.barbieri@gmail.com>.
857
2a01ce56
UD
8582007-08-21 Ulrich Drepper <drepper@redhat.com>
859
860 [BZ #4938]
861 * allocatestack.c (__reclaim_stacks): Clear the TSD in the
862 reclaimed stack if necessary.
863 * Makefile (tests): Add tst-tsd6.
864 * tst-tsd6.c: New file.
865
c273641b
JJ
8662007-08-21 Jakub Jelinek <jakub@redhat.com>
867
868 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h (lll_robust_dead):
869 Add private argument.
870
fb84593c
UD
8712007-08-20 Ulrich Drepper <drepper@redhat.com>
872
873 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
874 (__pthread_cond_timedwait): Use clock_gettime from VDSO if possible.
875
3e8d1eab
JJ
8762007-08-16 Jakub Jelinek <jakub@redhat.com>
877
878 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h
879 (__lll_robust_timedlock): Pass private as last argument to
880 __lll_robust_timedlock_wait.
881 (__lll_unlock): Fix a pasto.
882
e4720b0e
JJ
8832007-08-15 Jakub Jelinek <jakub@redhat.com>
884
885 * sysdeps/unix/sysv/linux/sparc/internaltypes.h (sparc_new_sem,
886 sparc_old_sem): New structs.
887 * sysdeps/unix/sysv/linux/sparc/sparc32/sem_wait.c
888 (__sem_wait_cleanup): New function.
889 (__new_sem_wait): Use sparc_new_sem structure. Bump and afterwards
890 decrease nwaiters. Register __sem_wait_cleanup as cleanup handler.
891 Pass isem->private ^ FUTEX_PRIVATE_FLAG as last argument to
892 lll_futex_wait.
893 (__old_sem_wait): New function.
894 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_wait.c: Include
895 nptl/sysdeps/unix/sysv/linux/sparc version.
896 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_timedwait.c:
897 Likewise.
898 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_post.c: Likewise.
899 * sysdeps/unix/sysv/linux/sparc/sparc32/sem_trywait.c
900 (__new_sem_trywait): Use sparc_old_sem structure.
901 * sysdeps/unix/sysv/linux/sparc/sparc32/sem_timedwait.c
902 (sem_timedwait): Use sparc_new_sem structure. Bump and afterwards
903 decrease nwaiters. Register __sem_wait_cleanup as cleanup handler.
904 Pass isem->private ^ FUTEX_PRIVATE_FLAG as last argument to
905 lll_futex_timed_wait.
906 * sysdeps/unix/sysv/linux/sparc/sparc32/sem_post.c (__new_sem_post):
907 Use sparc_new_sem structure. Only wake if nwaiters > 0. Pass
908 isem->private ^ FUTEX_PRIVATE_FLAG as last argument to
909 lll_futex_wake.
910 (__old_sem_post): New function.
911 * sysdeps/unix/sysv/linux/sparc/sem_wait.c: New file.
912 * sysdeps/unix/sysv/linux/sparc/sem_init.c: New file.
913 * sysdeps/unix/sysv/linux/sparc/sem_timedwait.c: New file.
914 * sysdeps/unix/sysv/linux/sparc/sem_post.c: New file.
915 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_init.c: Remove.
916 * sysdeps/unix/sysv/linux/sparc/sparc32/sem_init.c: Remove.
917
d13f4a43
UD
9182007-08-14 Kaz Kojima <kkojima@rr.iij4u.or.jp>
919
920 * sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S
921 (__pthread_cond_broadcast): Pass LLL_PRIVATE to lll_* and or
922 FUTEX_PRIVATE_FLAG into SYS_futex op if cv is process private.
923 Don't use FUTEX_CMP_REQUEUE if dep_mutex is not process private.
924 * sysdeps/unix/sysv/linux/shpthread_cond_signal.S
925 (__pthread_cond_signal): Pass LLL_PRIVATE to lll_* and or
926 FUTEX_PRIVATE_FLAG into SYS_futex op if cv is process private.
927 Use FUTEX_WAKE_OP.
928 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Include
929 kernel-features.h and tcb-offsets.h.
930 (__pthread_cond_wait, __condvar_w_cleanup): Pass LLL_PRIVATE to
931 lll_* and or FUTEX_PRIVATE_FLAG into SYS_futex op if cv is
932 process private.
933 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Include
934 tcb-offsets.h.
935 (__pthread_cond_timedwait, __condvar_tw_cleanup): Pass LLL_PRIVATE
936 to lll_* and or FUTEX_PRIVATE_FLAG into SYS_futex op if cv is
937 process private.
938 * sysdeps/unix/sysv/linux/sh/pthread_once.S: Use #ifdef
939 __ASSUME_PRIVATE_FUTEX instead of #if __ASSUME_PRIVATE_FUTEX.
940 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: Likewise.
941 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S: Likewise.
942 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S: Likewise.
943 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S: Likewise.
944 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: Likewise.
945
702a9414
JJ
9462007-08-14 Jakub Jelinek <jakub@redhat.com>
947
467d1345
JJ
948 * sysdeps/unix/sysv/linux/lowlevellock.c: Comment fix.
949 * sysdeps/unix/sysv/linux/sparc/sparc32/lowlevellock.c
950 (__lll_timedwait_tid): Pass LLL_SHARED as 4th argument to
951 lll_futex_timed_wait.
952
702a9414
JJ
953 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h (__lll_unlock,
954 __lll_robust_unlock): Rewrite as macros instead of inline functions.
955 * sysdeps/unix/sysv/linux/s390/lowlevellock.h (__lll_unlock,
956 __lll_robust_unlock, __lll_wait_tid): Likewise.
957
22502ea2
UD
9582007-08-13 Jakub Jelinek <jakub@redhat.com>
959
960 * sysdeps/unix/sysv/linux/i386/lowlevellock.h (__lll_private_flag):
961 Fix a pasto.
962 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S
963 (__pthread_cond_broadcast): Pass LLL_PRIVATE to lll_* and or
964 FUTEX_PRIVATE_FLAG into SYS_futex op if cv is process private.
965 Don't use FUTEX_CMP_REQUEUE if dep_mutex is not process private.
966 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
967 (__pthread_cond_signal): Pass LLL_PRIVATE to lll_* and or
968 FUTEX_PRIVATE_FLAG into SYS_futex op if cv is process private.
969 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Include
970 kernel-features.h.
971 (__pthread_cond_wait, __condvar_w_cleanup): Pass LLL_PRIVATE to
972 lll_* and or FUTEX_PRIVATE_FLAG into SYS_futex op if cv is
973 process private. Switch DW_CFA_advance_loc1 and some
974 DW_CFA_advance_loc .eh_frame opcodes to DW_CFA_advance_loc4.
975 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
976 (__pthread_cond_timedwait, __condvar_tw_cleanup): Pass LLL_PRIVATE to
977 lll_* and or FUTEX_PRIVATE_FLAG into SYS_futex op if cv is
978 process private. Switch DW_CFA_advance_loc{1,2} and some
979 DW_CFA_advance_loc .eh_frame opcodes to DW_CFA_advance_loc4.
980 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Use
981 #ifdef __ASSUME_PRIVATE_FUTEX instead of #if __ASSUME_PRIVATE_FUTEX.
982 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
983 Likewise.
984 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S: Likewise.
985 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
986 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
987 Likewise.
988 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S
989 (__pthread_cond_broadcast): Compare %r8 instead of
990 dep_mutex-cond_*(%rdi) with $-1.
991 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S
992 (__pthread_cond_signal): Xor FUTEX_WAKE_OP with FUTEX_WAKE instead
993 of oring.
994
4baf59ad
UD
9952007-08-13 Ulrich Drepper <drepper@redhat.com>
996
997 * sysdeps/unix/sysv/linux/i386/i786/Implies: New file.
998
9c6f6953
UD
9992007-08-13 Jakub Jelinek <jakub@redhat.com>
1000
1001 * allocatestack.c: Include kernel-features.h.
1002 * pthread_create.c: Likewise.
1003 * pthread_mutex_init.c: Likewise.
1004 * init.c: Likewise.
1005 * pthread_cond_timedwait.c: Likewise.
1006 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h: Likewise.
1007 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h: Likewise.
1008 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
1009 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Likewise.
1010 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S: Likewise.
1011 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
1012 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
1013 Likewise.
1014 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
1015 Likewise.
1016 * sysdeps/unix/sysv/linux/s390/lowlevellock.h: Likewise.
1017 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Likewise.
1018 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h: Likewise.
1019 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise.
1020
974a1f0f
UD
10212007-08-12 Jakub Jelinek <jakub@redhat.com>
1022
1023 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h
1024 [__WORDSIZE=32] (pthread_rwlock_t): Split __flags element into four
1025 byte elements. One of them is the new __shared element.
1026 [__WORDSIZE=64] (pthread_rwlock_t): Renamed __pad1 element to __shared,
1027 adjust names of other padding elements.
1028 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h
1029 [__WORDSIZE=32] (pthread_rwlock_t): Split __flags element into four
1030 byte elements. One of them is the new __shared element.
1031 [__WORDSIZE=64] (pthread_rwlock_t): Renamed __pad1 element to __shared,
1032 adjust names of other padding elements.
1033 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h (pthread_rwlock_t):
1034 Renamed __pad1 element to __shared, adjust names of other padding
1035 elements.
1036 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h
1037 (pthread_rwlock_t): Likewise.
1038 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (__lll_lock): Fix a
1039 typo.
1040
10412007-08-09 Anton Blanchard <anton@samba.org>
1042
1043 * sysdeps/unix/sysv/linux/powerpc/pthread_spin_unlock.c: New file.
1044
f47e2626
UD
10452007-08-12 Ulrich Drepper <drepper@redhat.com>
1046
1047 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Include
1048 <kernel-features.h>.
1049 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
1050
5bd8a249
UD
10512007-08-11 Ulrich Drepper <drepper@redhat.com>
1052
1053 * pthreadP.h (PTHREAD_ROBUST_MUTEX_PSHARED): Define.
1054 * pthread_mutex_lock.c: Use it instead of PTHREAD_MUTEX_PSHARED when
1055 dealing with robust mutexes.
1056 * pthread_mutex_timedlock.c: Likewise.
1057 * pthread_mutex_trylock.c: Likewise.
1058 * pthread_mutex_unlock.c: Likewise.
1059 * sysdeps/unix/sysv/linux/pthread_mutex_cond_lock.c: Likewise.
1060
10612007-08-06 Jakub Jelinek <jakub@redhat.com>
1062
1063 * pthreadP.h (PTHREAD_MUTEX_PSHARED_BIT): Define.
1064 (PTHREAD_MUTEX_TYPE): Mask __kind with 127.
1065 (PTHREAD_MUTEX_PSHARED): Define.
1066 * pthread_mutex_init.c (__pthread_mutex_init): Set
1067 PTHREAD_MUTEX_PSHARED_BIT for pshared or robust
1068 mutexes.
1069 * pthread_mutex_lock.c (LLL_MUTEX_LOCK): Take mutex as argument
1070 instead of its __data.__lock field, pass PTHREAD_MUTEX_PSHARED
1071 as second argument to lll_lock.
1072 (LLL_MUTEX_TRYLOCK): Take mutex as argument
1073 instead of its __data.__lock field.
1074 (LLL_ROBUST_MUTEX_LOCK): Take mutex as argument instead of its
1075 __data.__lock field, pass PTHREAD_MUTEX_PSHARED as second argument
1076 to lll_robust_lock.
1077 (__pthread_mutex_lock): Update LLL_MUTEX_LOCK, LLL_MUTEX_TRYLOCK,
1078 LLL_ROBUST_MUTEX_LOCK users, use PTHREAD_MUTEX_TYPE (mutex)
1079 instead of mutex->__data.__kind directly, pass
1080 PTHREAD_MUTEX_PSHARED (mutex) to lll_unlock and lll_futex_wait.
1081 * pthread_mutex_trylock.c (__pthread_mutex_trylock): Use
1082 PTHREAD_MUTEX_TYPE (mutex) instead of mutex->__data.__kind
1083 directly, pass PTHREAD_MUTEX_PSHARED (mutex) to lll_unlock.
1084 (pthread_mutex_timedlock): Pass PTHREAD_MUTEX_PSHARED (mutex)
1085 to lll_timedlock, lll_robust_timedlock, lll_unlock and
1086 lll_futex_timed_wait. Use PTHREAD_MUTEX_TYPE (mutex) instead
1087 of mutex->__data.__kind directly.
1088 * pthread_mutex_timedlock.c (pthread_mutex_timedlock): Pass
1089 PTHREAD_MUTEX_PSHARED (mutex) to lll_timedlock,
1090 lll_robust_timedlock, lll_unlock and lll_futex_timed_wait. Use
1091 PTHREAD_MUTEX_TYPE (mutex) instead of mutex->__data.__kind directly.
1092 * pthread_mutex_unlock.c (__pthread_mutex_unlock_usercnt): Pass
1093 PTHREAD_MUTEX_PSHARED (mutex) to lll_unlock, lll_robust_unlock
1094 and lll_futex_wake.
1095 * pthread_mutex_setprioceiling.c (pthread_mutex_setprioceiling): Pass
1096 PTHREAD_MUTEX_PSHARED (mutex) to lll_futex_wait and lll_futex_wake.
1097 Use PTHREAD_MUTEX_TYPE (mutex) instead of mutex->__data.__kind
1098 directly.
1099 * sysdeps/unix/sysv/linux/pthread_mutex_cond_lock.c (LLL_MUTEX_LOCK):
1100 Take mutex as argument instead of its __data.__lock field, pass
1101 PTHREAD_MUTEX_PSHARED as second argument to lll_cond_lock.
1102 (LLL_MUTEX_TRYLOCK): Take mutex as argument instead of its
1103 __data.__lock field.
1104 (LLL_ROBUST_MUTEX_LOCK): Take mutex as argument instead of its
1105 __data.__lock field, pass PTHREAD_MUTEX_PSHARED as second argument
1106 to lll_robust_cond_lock.
1107 * pthread_cond_broadcast.c (__pthread_cond_broadcast): Add pshared
1108 variable, pass it to lll_lock, lll_unlock, lll_futex_requeue and
1109 lll_futex_wake. Don't use lll_futex_requeue if dependent mutex
1110 has PTHREAD_MUTEX_PSHARED_BIT bit set in its __data.__kind.
1111 * pthread_cond_destroy.c (__pthread_cond_destroy): Add pshared
1112 variable, pass it to lll_lock, lll_unlock, lll_futex_wake and
1113 lll_futex_wait.
1114 * pthread_cond_signal.c (__pthread_cond_signal): Add pshared
1115 variable, pass it to lll_lock, lll_unlock, lll_futex_wake_unlock and
1116 lll_futex_wake.
1117 * pthread_cond_timedwait.c (__pthread_cond_wait): Add
1118 pshared variable, pass it to lll_lock, lll_unlock,
1119 lll_futex_timedwait and lll_futex_wake.
1120 * pthread_cond_wait.c (__condvar_cleanup, __pthread_cond_wait): Add
1121 pshared variable, pass it to lll_lock, lll_unlock, lll_futex_wait
1122 and lll_futex_wake.
1123 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h (lll_futex_requeue,
1124 lll_futex_wake_unlock): Add private argument, use __lll_private_flag
1125 macro.
1126 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (lll_futex_requeue,
1127 lll_futex_wake_unlock): Likewise.
1128 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h (lll_futex_requeue):
1129 Likewise.
1130 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h (lll_futex_requeue,
1131 lll_futex_wake_unlock): Likewise.
1132 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (lll_futex_requeue):
1133 Likewise.
1134 * sysdeps/unix/sysv/linux/s390/lowlevellock.h (lll_futex_requeue,
1135 lll_futex_wake_unlock): Likewise.
1136 (lll_futex_wake): Fix a typo.
1137 * sysdeps/unix/sysv/linux/pthread-pi-defines.sym (PS_BIT): Add.
1138 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S
1139 (__pthread_cond_broadcast): Pass LLL_PRIVATE to lll_* and or
1140 FUTEX_PRIVATE_FLAG into SYS_futex op if cv is process private.
1141 Don't use FUTEX_CMP_REQUEUE if dep_mutex is not process private.
1142 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S
1143 (__pthread_cond_signal): Pass LLL_PRIVATE to lll_* and or
1144 FUTEX_PRIVATE_FLAG into SYS_futex op if cv is process private.
1145 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
1146 (__pthread_cond_timedwait): Likewise.
1147 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:
1148 (__condvar_cleanup, __pthread_cond_wait): Likewise.
1149
0470fa46
JJ
11502007-08-05 Jakub Jelinek <jakub@redhat.com>
1151
1152 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h (PSEUDO):
1153 Don't use CGOTSETUP and CGOTRESTORE macros.
1154 (CGOTSETUP, CGOTRESTORE): Remove.
1155 <IS_IN_rtld> (CENABLE, CDISABLE): Don't use JUMPTARGET, branch to
1156 @local symbol.
1157
64f6281c
UD
11582007-08-01 Kaz Kojima <kkojima@rr.iij4u.or.jp>
1159
1160 * sysdeps/unix/sysv/linux/sh/libc-lowlevellock.S: Remove
1161 definitions for private futexes.
1162 * sysdeps/unix/sysv/linux/sh/lowlevellock.S: Include
1163 kernel-features.h and lowlevellock.h. Use private futexes if
1164 they are available.
1165 (__lll_lock_wait_private, __lll_unlock_wake_private): New.
1166 (__lll_mutex_lock_wait): Rename to
1167 (__lll_lock_wait): ... this. Don't compile in for libc.so.
1168 (__lll_mutex_timedlock_wait): Rename to ...
1169 (__lll_timedlock_wait): ... this. Use __NR_gettimeofday.
1170 Don't compile in for libc.so.
1171 (__lll_mutex_unlock_wake): Rename to ...
1172 (__lll_unlock_wake): ... this. Don't compile in for libc.so.
1173 (__lll_timedwait_tid): Use __NR_gettimeofday.
1174 * sysdeps/unix/sysv/linux/sh/lowlevellock.h: Allow including
1175 the header from assembler. Renamed all lll_mutex_* resp.
1176 lll_robust_mutex_* macros to lll_* resp. lll_robust_*.
1177 Renamed all LLL_MUTEX_LOCK_* macros to LLL_LOCK_*.
1178 (FUTEX_CMP_REQUEUE, FUTEX_WAKE_OP, FUTEX_OP_CLEAR_WAKE_IF_GT_ONE):
1179 Define.
1180 (__lll_lock_wait_private): Add prototype.
1181 (__lll_lock_wait, __lll_timedlock_wait, __lll_robust_lock_wait,
1182 __lll_robust_timedlock_wait, __lll_unlock_wake_private,
1183 __lll_unlock_wake): Likewise.
1184 (lll_lock): Add private argument. Call __lll_lock_wait_private
1185 if private is constant LLL_PRIVATE.
1186 (lll_robust_lock, lll_cond_lock, lll_robust_cond_lock,
1187 lll_timedlock, lll_robust_timedlock): Add private argument.
1188 (lll_unlock): Add private argument. Call __lll_unlock_wake_private
1189 if private is constant LLL_PRIVATE.
1190 (lll_robust_unlock, lll_robust_dead): Add private argument.
1191 (lll_lock_t): Remove.
1192 (__lll_cond_wait, __lll_cond_timedwait, __lll_cond_wake,
1193 __lll_cond_broadcast, lll_cond_wait, lll_cond_timedwait,
1194 lll_cond_wake, lll_cond_broadcast): Remove.
1195 * sysdeps/unix/sysv/linux/sh/lowlevelrobustlock.S: Include
1196 kernel-features.h and lowlevellock.h.
1197 (SYS_gettimeofday, SYS_futex, FUTEX_WAIT, FUTEX_WAKE): Remove.
1198 (LOAD_FUTEX_WAIT): Define.
1199 (__lll_robust_mutex_lock_wait): Rename to ...
1200 (__lll_robust_lock_wait): ... this. Add private argument.
1201 Use LOAD_FUTEX_WAIT macro.
1202 (__lll_robust_mutex_timedlock_wait): Rename to ...
1203 (__lll_robust_timedlock_wait): ... this. Add private argument.
1204 Use __NR_gettimeofday. Use LOAD_FUTEX_WAIT macro.
1205 * sysdeps/unix/sysv/linux/sh/pthread_barrier_wait.S: Include
1206 lowlevellock.h.
1207 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE): Remove.
1208 (pthread_barrier_wait): Use __lll_{lock,unlock}_* instead of
1209 __lll_mutex_{lock,unlock}_*.
1210 * sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S: Include
1211 lowlevellock.h and pthread-errnos.h.
1212 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_REQUEUE,
1213 FUTEX_CMP_REQUEUE, EINVAL): Remove.
1214 (__pthread_cond_broadcast): Use __lll_{lock,unlock}_* instead of
1215 __lll_mutex_{lock,unlock}_*.
1216 * sysdeps/unix/sysv/linux/sh/pthread_cond_signal.S: Include
1217 lowlevellock.h and pthread-errnos.h.
1218 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_REQUEUE, EINVAL): Remove.
1219 (__pthread_cond_signal): Use __lll_{lock,unlock}_* instead of
1220 __lll_mutex_{lock,unlock}_*.
1221 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Include
1222 lowlevellock.h.
1223 (SYS_futex, SYS_gettimeofday, FUTEX_WAIT, FUTEX_WAKE): Remove.
1224 (__pthread_cond_timedwait): Use __lll_{lock,unlock}_* instead of
1225 __lll_mutex_{lock,unlock}_*. Use __NR_gettimeofday.
1226 (__condvar_tw_cleanup): Likewise.
1227 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Include
1228 lowlevellock.h.
1229 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE): Remove.
1230 (__pthread_cond_wait): Use __lll_{lock,unlock}_* instead of
1231 __lll_mutex_{lock,unlock}_*.
1232 ( __condvar_w_cleanup): Likewise.
1233 * sysdeps/unix/sysv/linux/sh/pthread_once.S: Include lowlevellock.h.
1234 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_PRIVATE_FLAG): Remove.
1235 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: Include
1236 lowlevellock.h.
1237 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_PRIVATE_FLAG): Remove.
1238 (__pthread_rwlock_rdlock): Use __lll_{lock,unlock}_* instead of
1239 __lll_mutex_{lock,unlock}_*.
1240 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S: Include
1241 lowlevellock.h.
1242 (SYS_gettimeofday, SYS_futex, FUTEX_WAIT, FUTEX_WAKE,
1243 FUTEX_PRIVATE_FLAG): Remove.
1244 (pthread_rwlock_timedrdlock): Use __lll_{lock,unlock}_* instead of
1245 __lll_mutex_{lock,unlock}_*. Use __NR_gettimeofday.
1246 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S: Include
1247 lowlevellock.h.
1248 (SYS_gettimeofday, SYS_futex, FUTEX_WAIT, FUTEX_WAKE,
1249 FUTEX_PRIVATE_FLAG): Remove.
1250 (pthread_rwlock_timedwrlock): Use __lll_{lock,unlock}_* instead of
1251 __lll_mutex_{lock,unlock}_*. Use __NR_gettimeofday.
1252 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S: Include
1253 lowlevellock.h.
1254 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_PRIVATE_FLAG): Remove.
1255 (__pthread_rwlock_unlock): Use __lll_{lock,unlock}_* instead of
1256 __lll_mutex_{lock,unlock}_*.
1257 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: Include
1258 lowlevellock.h.
1259 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_PRIVATE_FLAG): Remove.
1260 (__pthread_rwlock_wrlock): Use __lll_{lock,unlock}_* instead of
1261 __lll_mutex_{lock,unlock}_*.
1262 * sysdeps/unix/sysv/linux/sh/sem_post.S: Include lowlevellock.h.
1263 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_PRIVATE_FLAG): Remove.
1264 (__new_sem_post): Use standard initial exec code sequences.
1265 * sysdeps/unix/sysv/linux/sh/sem_timedwait.S: Include
1266 lowlevellock.h.
1267 (SYS_gettimeofday, SYS_futex, FUTEX_WAIT, FUTEX_WAKE,
1268 FUTEX_PRIVATE_FLAG): Remove.
1269 (sem_timedwait): Use __NR_gettimeofday. Use standard initial
1270 exec code sequences.
1271 * sysdeps/unix/sysv/linux/sh/sem_trywait.S: Include lowlevellock.h.
1272 (__new_sem_trywait): Use standard initial exec code sequences.
1273 * sysdeps/unix/sysv/linux/sh/sem_wait.S: Include lowlevellock.h.
1274 (__new_sem_wait): Use standard initial exec code sequences.
1275
e51deae7
UD
12762007-07-31 Anton Blanchard <anton@samba.org>
1277
1278 * sysdeps/unix/sysv/linux/powerpc/sem_post.c (__new_sem_post):
1279 Use __asm __volatile (__lll_acq_instr ::: "memory") instead of
1280 atomic_full_barrier.
1281
12822007-07-31 Jakub Jelinek <jakub@redhat.com>
1283
1284 * allocatestack.c (stack_cache_lock): Change type to int.
1285 (get_cached_stack, allocate_stack, __deallocate_stack,
1286 __make_stacks_executable, __find_thread_by_id, __nptl_setxid,
1287 __pthread_init_static_tls, __wait_lookup_done): Add LLL_PRIVATE
1288 as second argument to lll_lock and lll_unlock macros on
1289 stack_cache_lock.
1290 * pthread_create.c (__find_in_stack_list): Likewise.
1291 (start_thread): Similarly with pd->lock. Use lll_robust_dead
1292 macro instead of lll_robust_mutex_dead, pass LLL_SHARED to it
1293 as second argument.
1294 * descr.h (struct pthread): Change lock and setxid_futex field
1295 type to int.
1296 * old_pthread_cond_broadcast.c (__pthread_cond_broadcast_2_0): Use
1297 LLL_LOCK_INITIALIZER instead of LLL_MUTEX_LOCK_INITIALIZER.
1298 * old_pthread_cond_signal.c (__pthread_cond_signal_2_0): Likewise.
1299 * old_pthread_cond_timedwait.c (__pthread_cond_timedwait_2_0):
1300 Likewise.
1301 * old_pthread_cond_wait.c (__pthread_cond_wait_2_0): Likewise.
1302 * pthread_cond_init.c (__pthread_cond_init): Likewise.
1303 * pthreadP.h (__attr_list_lock): Change type to int.
1304 * pthread_attr_init.c (__attr_list_lock): Likewise.
1305 * pthread_barrier_destroy.c (pthread_barrier_destroy): Pass
1306 ibarrier->private ^ FUTEX_PRIVATE_FLAG as second argument to
1307 lll_{,un}lock.
1308 * pthread_barrier_wait.c (pthread_barrier_wait): Likewise and
1309 also for lll_futex_{wake,wait}.
1310 * pthread_barrier_init.c (pthread_barrier_init): Make iattr
1311 a pointer to const.
1312 * pthread_cond_broadcast.c (__pthread_cond_broadcast): Pass
1313 LLL_SHARED as second argument to lll_{,un}lock.
1314 * pthread_cond_destroy.c (__pthread_cond_destroy): Likewise.
1315 * pthread_cond_signal.c (__pthread_cond_singal): Likewise.
1316 * pthread_cond_timedwait.c (__pthread_cond_timedwait): Likewise.
1317 * pthread_cond_wait.c (__condvar_cleanup, __pthread_cond_wait):
1318 Likewise.
1319 * pthread_getattr_np.c (pthread_getattr_np): Add LLL_PRIVATE
1320 as second argument to lll_{,un}lock macros on pd->lock.
1321 * pthread_getschedparam.c (__pthread_getschedparam): Likewise.
1322 * pthread_setschedparam.c (__pthread_setschedparam): Likewise.
1323 * pthread_setschedprio.c (pthread_setschedprio): Likewise.
1324 * tpp.c (__pthread_tpp_change_priority, __pthread_current_priority):
1325 Likewise.
1326 * sysdeps/pthread/createthread.c (do_clone, create_thread):
1327 Likewise.
1328 * pthread_once.c (once_lock): Change type to int.
1329 (__pthread_once): Pass LLL_PRIVATE as second argument to
1330 lll_{,un}lock macros on once_lock.
1331 * pthread_rwlock_rdlock.c (__pthread_rwlock_rdlock): Use
1332 lll_{,un}lock macros instead of lll_mutex_{,un}lock, pass
1333 rwlock->__data.__shared as second argument to them and similarly
1334 for lll_futex_w*.
1335 * pthread_rwlock_timedrdlock.c (pthread_rwlock_timedrdlock):
1336 Likewise.
1337 * pthread_rwlock_timedwrlock.c (pthread_rwlock_timedwrlock):
1338 Likewise.
1339 * pthread_rwlock_tryrdlock.c (__pthread_rwlock_tryrdlock): Likewise.
1340 * pthread_rwlock_trywrlock.c (__pthread_rwlock_trywrlock): Likewise.
1341 * pthread_rwlock_unlock.c (__pthread_rwlock_unlock): Likewise.
1342 * pthread_rwlock_wrlock.c (__pthread_rwlock_wrlock): Likewise.
1343 * sem_close.c (sem_close): Pass LLL_PRIVATE as second argument
1344 to lll_{,un}lock macros on __sem_mappings_lock.
1345 * sem_open.c (check_add_mapping): Likewise.
1346 (__sem_mappings_lock): Change type to int.
1347 * semaphoreP.h (__sem_mappings_lock): Likewise.
1348 * pthread_mutex_lock.c (LLL_MUTEX_LOCK, LLL_MUTEX_TRYLOCK,
1349 LLL_ROBUST_MUTEX_LOCK): Use lll_{,try,robust_}lock macros
1350 instead of lll_*mutex_*, pass LLL_SHARED as last
1351 argument.
1352 (__pthread_mutex_lock): Use lll_unlock instead of lll_mutex_unlock,
1353 pass LLL_SHARED as last argument.
1354 * sysdeps/unix/sysv/linux/pthread_mutex_cond_lock.c (LLL_MUTEX_LOCK,
1355 LLL_MUTEX_TRYLOCK, LLL_ROBUST_MUTEX_LOCK): Use
1356 lll_{cond_,cond_try,robust_cond}lock macros instead of lll_*mutex_*,
1357 pass LLL_SHARED as last argument.
1358 * pthread_mutex_timedlock.c (pthread_mutex_timedlock): Use
1359 lll_{timed,try,robust_timed,un}lock instead of lll_*mutex*, pass
1360 LLL_SHARED as last argument.
1361 * pthread_mutex_trylock.c (__pthread_mutex_trylock): Similarly.
1362 * pthread_mutex_unlock.c (__pthread_mutex_unlock_usercnt):
1363 Similarly.
1364 * sysdeps/pthread/bits/libc-lock.h (__libc_lock_lock,
1365 __libc_lock_lock_recursive, __libc_lock_unlock,
1366 __libc_lock_unlock_recursive): Pass LLL_PRIVATE as second
1367 argument to lll_{,un}lock.
1368 * sysdeps/pthread/bits/stdio-lock.h (_IO_lock_lock,
1369 _IO_lock_unlock): Likewise.
1370 * sysdeps/unix/sysv/linux/fork.c (__libc_fork): Don't use
1371 compound literal.
1372 * sysdeps/unix/sysv/linux/unregister-atfork.c (__unregister_atfork):
1373 Pass LLL_PRIVATE as second argument to lll_{,un}lock macros on
1374 __fork_lock.
1375 * sysdeps/unix/sysv/linux/register-atfork.c (__register_atfork,
1376 free_mem): Likewise.
1377 (__fork_lock): Change type to int.
1378 * sysdeps/unix/sysv/linux/fork.h (__fork_lock): Likewise.
1379 * sysdeps/unix/sysv/linux/sem_post.c (__new_sem_post): Pass
1380 isem->private ^ FUTEX_PRIVATE_FLAG as second argument to
1381 lll_futex_wake.
1382 * sysdeps/unix/sysv/linux/sem_timedwait.c (sem_timedwait): Likewise.
1383 * sysdeps/unix/sysv/linux/sem_wait.c (__new_sem_wait): Likewise.
1384 * sysdeps/unix/sysv/linux/lowlevellock.c (__lll_lock_wait_private):
1385 New function.
1386 (__lll_lock_wait, __lll_timedlock_wait): Add private argument and
1387 pass it through to lll_futex_*wait, only compile in when
1388 IS_IN_libpthread.
1389 * sysdeps/unix/sysv/linux/lowlevelrobustlock.c
1390 (__lll_robust_lock_wait, __lll_robust_timedlock_wait): Add private
1391 argument and pass it through to lll_futex_*wait.
1392 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h: Renamed all
1393 lll_mutex_* resp. lll_robust_mutex_* macros to lll_* resp.
1394 lll_robust_*. Renamed all __lll_mutex_* resp. __lll_robust_mutex_*
1395 inline functions to __lll_* resp. __lll_robust_*.
1396 (LLL_MUTEX_LOCK_INITIALIZER): Remove.
1397 (lll_mutex_dead): Add private argument.
1398 (__lll_lock_wait_private): New prototype.
1399 (__lll_lock_wait, __lll_robust_lock_wait, __lll_lock_timedwait,
1400 __lll_robust_lock_timedwait): Add private argument to prototypes.
1401 (__lll_lock): Add private argument, if it is constant LLL_PRIVATE,
1402 call __lll_lock_wait_private, otherwise pass private to
1403 __lll_lock_wait.
1404 (__lll_robust_lock, __lll_cond_lock, __lll_timedlock,
1405 __lll_robust_timedlock): Add private argument, pass it to
1406 __lll_*wait functions.
1407 (__lll_unlock): Add private argument, if it is constant LLL_PRIVATE,
1408 call __lll_unlock_wake_private, otherwise pass private to
1409 __lll_unlock_wake.
1410 (__lll_robust_unlock): Add private argument, pass it to
1411 __lll_robust_unlock_wake.
1412 (lll_lock, lll_robust_lock, lll_cond_lock, lll_timedlock,
1413 lll_robust_timedlock, lll_unlock, lll_robust_unlock): Add private
1414 argument, pass it through to __lll_* inline function.
1415 (__lll_mutex_unlock_force, lll_mutex_unlock_force): Remove.
1416 (lll_lock_t): Remove.
1417 (__lll_cond_wait, __lll_cond_timedwait, __lll_cond_wake,
1418 __lll_cond_broadcast, lll_cond_wait, lll_cond_timedwait,
1419 lll_cond_wake, lll_cond_broadcast): Remove.
1420 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h: Likewise.
1421 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Likewise.
1422 * sysdeps/unix/sysv/linux/s390/lowlevellock.h: Likewise.
1423 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h: Likewise.
1424 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Allow including
1425 the header from assembler. Renamed all lll_mutex_* resp.
1426 lll_robust_mutex_* macros to lll_* resp. lll_robust_*.
1427 (LOCK, FUTEX_CMP_REQUEUE, FUTEX_WAKE_OP,
1428 FUTEX_OP_CLEAR_WAKE_IF_GT_ONE): Define.
1429 (LLL_MUTEX_LOCK_INITIALIZER, LLL_MUTEX_LOCK_INITIALIZER_LOCKED,
1430 LLL_MUTEX_LOCK_INITIALIZER_WAITERS): Remove.
1431 (__lll_mutex_lock_wait, __lll_mutex_timedlock_wait,
1432 __lll_mutex_unlock_wake, __lll_lock_wait, __lll_unlock_wake):
1433 Remove prototype.
1434 (__lll_trylock_asm, __lll_lock_asm_start, __lll_unlock_asm): Define.
1435 (lll_robust_trylock, lll_cond_trylock): Use LLL_LOCK_INITIALIZER*
1436 rather than LLL_MUTEX_LOCK_INITIALIZER* macros.
1437 (lll_trylock): Likewise, use __lll_trylock_asm, pass
1438 MULTIPLE_THREADS_OFFSET as another asm operand.
1439 (lll_lock): Add private argument, use __lll_lock_asm_start, pass
1440 MULTIPLE_THREADS_OFFSET as last asm operand, call
1441 __lll_lock_wait_private if private is constant LLL_PRIVATE,
1442 otherwise pass private as another argument to __lll_lock_wait.
1443 (lll_robust_lock, lll_cond_lock, lll_robust_cond_lock,
1444 lll_timedlock, lll_robust_timedlock): Add private argument, pass
1445 private as another argument to __lll_*lock_wait call.
1446 (lll_unlock): Add private argument, use __lll_unlock_asm, pass
1447 MULTIPLE_THREADS_OFFSET as another asm operand, call
1448 __lll_unlock_wake_private if private is constant LLL_PRIVATE,
1449 otherwise pass private as another argument to __lll_unlock_wake.
1450 (lll_robust_unlock): Add private argument, pass private as another
1451 argument to __lll_unlock_wake.
1452 (lll_robust_dead): Add private argument, use __lll_private_flag
1453 macro.
1454 (lll_islocked): Use LLL_LOCK_INITIALIZER instead of
1455 LLL_MUTEX_LOCK_INITIALIZER.
1456 (lll_lock_t): Remove.
1457 (LLL_LOCK_INITIALIZER_WAITERS): Define.
1458 (__lll_cond_wait, __lll_cond_timedwait, __lll_cond_wake,
1459 __lll_cond_broadcast, lll_cond_wait, lll_cond_timedwait,
1460 lll_cond_wake, lll_cond_broadcast): Remove.
1461 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
1462 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Revert
1463 2007-05-2{3,9} changes.
1464 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Include
1465 kernel-features.h and lowlevellock.h.
1466 (LOAD_PRIVATE_FUTEX_WAIT): Define.
1467 (LOAD_FUTEX_WAIT): Rewritten.
1468 (LOCK, SYS_gettimeofday, SYS_futex, FUTEX_WAIT, FUTEX_WAKE): Don't
1469 define.
1470 (__lll_lock_wait_private, __lll_unlock_wake_private): New functions.
1471 (__lll_mutex_lock_wait): Rename to ...
1472 (__lll_lock_wait): ... this. Take futex addr from %edx instead of
1473 %ecx, %ecx is now private argument. Don't compile in for libc.so.
1474 (__lll_mutex_timedlock_wait): Rename to ...
1475 (__lll_timedlock_wait): ... this. Use __NR_gettimeofday. %esi
1476 contains private argument. Don't compile in for libc.so.
1477 (__lll_mutex_unlock_wake): Rename to ...
1478 (__lll_unlock_wake): ... this. %ecx contains private argument.
1479 Don't compile in for libc.so.
1480 (__lll_timedwait_tid): Use __NR_gettimeofday.
1481 * sysdeps/unix/sysv/linux/i386/i486/lowlevelrobustlock.S: Include
1482 kernel-features.h and lowlevellock.h.
1483 (LOAD_FUTEX_WAIT): Define.
1484 (LOCK, SYS_gettimeofday, SYS_futex, FUTEX_WAIT, FUTEX_WAKE): Don't
1485 define.
1486 (__lll_robust_mutex_lock_wait): Rename to ...
1487 (__lll_robust_lock_wait): ... this. Futex addr is now in %edx
1488 argument, %ecx argument contains private. Use LOAD_FUTEX_WAIT
1489 macro.
1490 (__lll_robust_mutex_timedlock_wait): Rename to ...
1491 (__lll_robust_timedlock_wait): ... this. Use __NR_gettimeofday.
1492 %esi argument contains private, use LOAD_FUTEX_WAIT macro.
1493 * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S: Include
1494 lowlevellock.h.
1495 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, LOCK): Don't define.
1496 (pthread_barrier_wait): Rename __lll_mutex_* to __lll_*, pass
1497 PRIVATE(%ebx) ^ LLL_SHARED as private argument in %ecx to
1498 __lll_lock_wait and __lll_unlock_wake, pass MUTEX(%ebx) address
1499 to __lll_lock_wait in %edx.
1500 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S:
1501 Include lowlevellock.h and pthread-errnos.h.
1502 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_REQUEUE,
1503 FUTEX_CMP_REQUEUE, EINVAL, LOCK): Don't define.
1504 (__pthread_cond_broadcast): Rename __lll_mutex_* to __lll_*, pass
1505 cond_lock address in %edx rather than %ecx to __lll_lock_wait,
1506 pass LLL_SHARED in %ecx to both __lll_lock_wait and
1507 __lll_unlock_wake.
1508 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S:
1509 Include lowlevellock.h and pthread-errnos.h.
1510 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_WAKE_OP,
1511 FUTEX_OP_CLEAR_WAKE_IF_GT_ONE, EINVAL, LOCK): Don't define.
1512 (__pthread_cond_signal): Rename __lll_mutex_* to __lll_*, pass
1513 cond_lock address in %edx rather than %ecx to __lll_lock_wait,
1514 pass LLL_SHARED in %ecx to both __lll_lock_wait and
1515 __lll_unlock_wake.
1516 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S:
1517 Include lowlevellock.h.
1518 (SYS_futex, SYS_gettimeofday, FUTEX_WAIT, FUTEX_WAKE, LOCK):
1519 Don't define.
1520 (__pthread_cond_timedwait): Rename __lll_mutex_* to __lll_*, pass
1521 cond_lock address in %edx rather than %ecx to __lll_lock_wait,
1522 pass LLL_SHARED in %ecx to both __lll_lock_wait and
1523 __lll_unlock_wake. Use __NR_gettimeofday.
1524 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S:
1525 Include lowlevellock.h.
1526 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, LOCK): Don't define.
1527 (__pthread_cond_wait, __condvar_w_cleanup): Rename __lll_mutex_*
1528 to __lll_*, pass cond_lock address in %edx rather than %ecx to
1529 __lll_lock_wait, pass LLL_SHARED in %ecx to both __lll_lock_wait
1530 and __lll_unlock_wake.
1531 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S:
1532 Include lowlevellock.h.
1533 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, LOCK): Don't define.
1534 (__pthread_rwlock_rdlock): Rename __lll_mutex_* to __lll_*, pass
1535 MUTEX(%ebx) address in %edx rather than %ecx to
1536 __lll_lock_wait, pass PSHARED(%ebx) in %ecx to both __lll_lock_wait
1537 and __lll_unlock_wake. Move return value from %ecx to %edx
1538 register.
1539 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
1540 Include lowlevellock.h.
1541 (SYS_futex, SYS_gettimeofday, FUTEX_WAIT, FUTEX_WAKE, LOCK):
1542 Don't define.
1543 (__pthread_rwlock_wrlock): Rename __lll_mutex_* to __lll_*, pass
1544 MUTEX(%ebp) address in %edx rather than %ecx to
1545 __lll_lock_wait, pass PSHARED(%ebp) in %ecx to both __lll_lock_wait
1546 and __lll_unlock_wake. Move return value from %ecx to %edx
1547 register. Use __NR_gettimeofday.
1548 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
1549 Include lowlevellock.h.
1550 (SYS_futex, SYS_gettimeofday, FUTEX_WAIT, FUTEX_WAKE, LOCK):
1551 Don't define.
1552 (__pthread_rwlock_wrlock): Rename __lll_mutex_* to __lll_*, pass
1553 MUTEX(%ebp) address in %edx rather than %ecx to
1554 __lll_lock_wait, pass PSHARED(%ebp) in %ecx to both __lll_lock_wait
1555 and __lll_unlock_wake. Move return value from %ecx to %edx
1556 register. Use __NR_gettimeofday.
1557 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S:
1558 Include lowlevellock.h.
1559 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, LOCK): Don't define.
1560 (__pthread_rwlock_unlock): Rename __lll_mutex_* to __lll_*, pass
1561 MUTEX(%edi) address in %edx rather than %ecx to
1562 __lll_lock_wait, pass PSHARED(%edi) in %ecx to both __lll_lock_wait
1563 and __lll_unlock_wake.
1564 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S:
1565 Include lowlevellock.h.
1566 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, LOCK): Don't define.
1567 (__pthread_rwlock_wrlock): Rename __lll_mutex_* to __lll_*, pass
1568 MUTEX(%ebx) address in %edx rather than %ecx to
1569 __lll_lock_wait, pass PSHARED(%ebx) in %ecx to both __lll_lock_wait
1570 and __lll_unlock_wake. Move return value from %ecx to %edx
1571 register.
1572 * sysdeps/unix/sysv/linux/i386/pthread_once.S: Include
1573 lowlevellock.h.
1574 (LOCK, SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_PRIVATE_FLAG): Don't
1575 define.
1576 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S: Include lowlevellock.h.
1577 (LOCK, SYS_futex, FUTEX_WAKE): Don't define.
1578 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: Include
1579 lowlevellock.h.
1580 (LOCK, SYS_futex, SYS_gettimeofday, FUTEX_WAIT): Don't define.
1581 (sem_timedwait): Use __NR_gettimeofday.
1582 * sysdeps/unix/sysv/linux/i386/i486/sem_trywait.S: Include
1583 lowlevellock.h.
1584 (LOCK): Don't define.
1585 * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S: Include
1586 lowlevellock.h.
1587 (LOCK, SYS_futex, FUTEX_WAIT): Don't define.
1588 * sysdeps/unix/sysv/linux/powerpc/sem_post.c: Wake only when there
1589 are waiters.
1590 * sysdeps/unix/sysv/linux/x86_64/libc-lowlevellock.S: Revert
1591 2007-05-2{3,9} changes.
1592 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Include
1593 kernel-features.h and lowlevellock.h.
1594 (LOAD_PRIVATE_FUTEX_WAIT): Define.
1595 (LOAD_FUTEX_WAIT): Rewritten.
1596 (LOCK, SYS_futex, FUTEX_WAIT, FUTEX_WAKE): Don't define.
1597 (__lll_lock_wait_private, __lll_unlock_wake_private): New functions.
1598 (__lll_mutex_lock_wait): Rename to ...
1599 (__lll_lock_wait): ... this. %esi is now private argument.
1600 Don't compile in for libc.so.
1601 (__lll_mutex_timedlock_wait): Rename to ...
1602 (__lll_timedlock_wait): ... this. %esi contains private argument.
1603 Don't compile in for libc.so.
1604 (__lll_mutex_unlock_wake): Rename to ...
1605 (__lll_unlock_wake): ... this. %esi contains private argument.
1606 Don't compile in for libc.so.
1607 * sysdeps/unix/sysv/linux/x86_64/lowlevelrobustlock.S: Include
1608 kernel-features.h and lowlevellock.h.
1609 (LOAD_FUTEX_WAIT): Define.
1610 (LOCK, SYS_futex, FUTEX_WAIT, FUTEX_WAKE): Don't define.
1611 (__lll_robust_mutex_lock_wait): Rename to ...
1612 (__lll_robust_lock_wait): ... this. %esi argument contains private.
1613 Use LOAD_FUTEX_WAIT macro.
1614 (__lll_robust_mutex_timedlock_wait): Rename to ...
1615 (__lll_robust_timedlock_wait): ... this. %esi argument contains
1616 private, use LOAD_FUTEX_WAIT macro.
1617 * sysdeps/unix/sysv/linux/x86_64/pthread_barrier_wait.S: Include
1618 lowlevellock.h.
1619 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, LOCK): Don't define.
1620 (pthread_barrier_wait): Rename __lll_mutex_* to __lll_*, pass
1621 PRIVATE(%rdi) ^ LLL_SHARED as private argument in %esi to
1622 __lll_lock_wait and __lll_unlock_wake.
1623 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S:
1624 Include lowlevellock.h and pthread-errnos.h.
1625 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_REQUEUE,
1626 FUTEX_CMP_REQUEUE, EINVAL, LOCK): Don't define.
1627 (__pthread_cond_broadcast): Rename __lll_mutex_* to __lll_*,
1628 pass LLL_SHARED in %esi to both __lll_lock_wait and
1629 __lll_unlock_wake.
1630 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S:
1631 Include lowlevellock.h and pthread-errnos.h.
1632 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_WAKE_OP,
1633 FUTEX_OP_CLEAR_WAKE_IF_GT_ONE, EINVAL, LOCK): Don't define.
1634 (__pthread_cond_signal): Rename __lll_mutex_* to __lll_*,
1635 pass LLL_SHARED in %esi to both __lll_lock_wait and
1636 __lll_unlock_wake.
1637 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:
1638 Include lowlevellock.h.
1639 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, LOCK): Don't define.
1640 (__pthread_cond_timedwait): Rename __lll_mutex_* to __lll_*,
1641 pass LLL_SHARED in %esi to both __lll_lock_wait and
1642 __lll_unlock_wake.
1643 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:
1644 Include lowlevellock.h.
1645 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, LOCK): Don't define.
1646 (__pthread_cond_wait, __condvar_cleanup): Rename __lll_mutex_*
1647 to __lll_*, pass LLL_SHARED in %esi to both __lll_lock_wait
1648 and __lll_unlock_wake.
1649 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S:
1650 Include lowlevellock.h.
1651 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_PRIVATE_FLAG, LOCK):
1652 Don't define.
1653 (__pthread_rwlock_rdlock): Rename __lll_mutex_* to __lll_*,
1654 pass PSHARED(%rdi) in %esi to both __lll_lock_wait
1655 and __lll_unlock_wake.
1656 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S:
1657 Include lowlevellock.h.
1658 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_PRIVATE_FLAG, LOCK):
1659 Don't define.
1660 (__pthread_rwlock_wrlock): Rename __lll_mutex_* to __lll_*,
1661 pass PSHARED(%rdi) in %esi to both __lll_lock_wait
1662 and __lll_unlock_wake.
1663 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S:
1664 Include lowlevellock.h.
1665 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_PRIVATE_FLAG, LOCK):
1666 Don't define.
1667 (__pthread_rwlock_wrlock): Rename __lll_mutex_* to __lll_*,
1668 pass PSHARED(%rdi) in %esi to both __lll_lock_wait
1669 and __lll_unlock_wake.
1670 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_unlock.S:
1671 Include lowlevellock.h.
1672 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_PRIVATE_FLAG, LOCK):
1673 Don't define.
1674 (__pthread_rwlock_unlock): Rename __lll_mutex_* to __lll_*,
1675 pass PSHARED(%rdi) in %esi to both __lll_lock_wait
1676 and __lll_unlock_wake.
1677 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S:
1678 Include lowlevellock.h.
1679 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_PRIVATE_FLAG, LOCK):
1680 Don't define.
1681 (__pthread_rwlock_wrlock): Rename __lll_mutex_* to __lll_*,
1682 pass PSHARED(%rdi) in %ecx to both __lll_lock_wait
1683 and __lll_unlock_wake.
1684 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Include
1685 lowlevellock.h.
1686 (LOCK, SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_PRIVATE_FLAG): Don't
1687 define.
1688 * sysdeps/unix/sysv/linux/x86_64/sem_post.S: Include lowlevellock.h.
1689 (LOCK, SYS_futex, FUTEX_WAKE): Don't define.
1690 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Include
1691 lowlevellock.h.
1692 (LOCK, SYS_futex, FUTEX_WAIT): Don't define.
1693 * sysdeps/unix/sysv/linux/x86_64/sem_trywait.S: Include
1694 lowlevellock.h.
1695 (LOCK): Don't define.
1696 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Include
1697 lowlevellock.h.
1698 (LOCK, SYS_futex, FUTEX_WAIT): Don't define.
1699 * sysdeps/unix/sysv/linux/sparc/internaltypes.h: New file.
1700 * sysdeps/unix/sysv/linux/sparc/pthread_barrier_destroy.c: New file.
1701 * sysdeps/unix/sysv/linux/sparc/pthread_barrier_init.c: New file.
1702 * sysdeps/unix/sysv/linux/sparc/pthread_barrier_wait.c: New file.
1703 * sysdeps/unix/sysv/linux/sparc/sparc32/lowlevellock.c
1704 (__lll_lock_wait_private): New function.
1705 (__lll_lock_wait, __lll_timedlock_wait): Add private argument, pass
1706 it to lll_futex_*wait. Don't compile in for libc.so.
1707 * sysdeps/unix/sysv/linux/sparc/sparc32/pthread_barrier_init.c:
1708 Remove.
1709 * sysdeps/unix/sysv/linux/sparc/sparc32/pthread_barrier_wait.c
1710 (struct sparc_pthread_barrier): Remove.
1711 (pthread_barrier_wait): Use union sparc_pthread_barrier instead of
1712 struct sparc_pthread_barrier. Pass
1713 ibarrier->s.pshared ? LLL_SHARED : LLL_PRIVATE to lll_{,un}lock
1714 and lll_futex_wait macros.
1715 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/pthread_barrier_init.c:
1716 Remove.
1717 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/pthread_barrier_wait.c:
1718 Include sparc pthread_barrier_wait.c instead of generic one.
1719
6f59d56e
UD
17202007-07-30 Jakub Jelinek <jakub@redhat.com>
1721
1475e201
UD
1722 * tst-rwlock14.c (do_test): Avoid warnings on 32-bit arches.
1723
6f59d56e
UD
1724 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S
1725 (pthread_rwlock_timedrdlock): Copy futex retval to %esi rather than
1726 %ecx.
1727 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S
1728 (pthread_rwlock_timedwrlock): Likewise.
1729 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S
1730 (__pthread_rwlock_unlock): Fix MUTEX != 0 args to __lll_*.
1731
558f0300
JJ
17322007-07-31 Jakub Jelinek <jakub@redhat.com>
1733
1734 * sysdeps/sparc/tls.h (tcbhead_t): Add private_futex field.
1735
cedb4109
UD
17362007-07-26 Jakub Jelinek <jakub@redhat.com>
1737
1738 * tst-locale2.c (useless): Add return statement.
1739
085a4412
UD
17402007-07-24 Jakub Jelinek <jakub@redhat.com>
1741
1742 * allocatestack.c (__nptl_setxid, __wait_lookup_done): Replace
1743 lll_private_futex_* (*) with lll_futex_* (*, LLL_PRIVATE).
1744 * pthread_create.c (start_thread): Likewise.
1745 * init.c (sighandler_setxid): Likewise.
1746 * sysdeps/alpha/tls.h (THREAD_GSCOPE_RESET_FLAG): Likewise.
1747 * sysdeps/ia64/tls.h (THREAD_GSCOPE_RESET_FLAG): Likewise.
1748 * sysdeps/i386/tls.h (THREAD_GSCOPE_RESET_FLAG): Likewise.
1749 * sysdeps/s390/tls.h (THREAD_GSCOPE_RESET_FLAG): Likewise.
1750 * sysdeps/powerpc/tls.h (THREAD_GSCOPE_RESET_FLAG): Likewise.
1751 * sysdeps/x86_64/tls.h (THREAD_GSCOPE_RESET_FLAG): Likewise.
1752 * sysdeps/sparc/tls.h (THREAD_GSCOPE_RESET_FLAG): Likewise.
1753 * sysdeps/sh/tls.h (THREAD_GSCOPE_RESET_FLAG): Likewise.
1754 * sysdeps/pthread/aio_misc.h (AIO_MISC_NOTIFY, AIO_MISC_WAIT):
1755 Likewise.
1756 * sysdeps/pthread/gai_misc.h (GAI_MISC_NOTIFY, GAI_MISC_WAIT):
1757 Likewise.
1758 * sysdeps/unix/sysv/linux/unregister-atfork.c (__unregister_atfork):
1759 Likewise.
1760 * sysdeps/unix/sysv/linux/rtld-lowlevel.h (__rtld_waitzero,
1761 __rtld_notify): Likewise.
1762 * sysdeps/unix/sysv/linux/fork.c (__libc_fork): Likewise.
1763 * sysdeps/unix/sysv/linux/powerpc/pthread_once.c (clear_once_control,
1764 __pthread_once): Likewise.
1765 * sysdeps/unix/sysv/linux/alpha/pthread_once.c (clear_once_control,
1766 __pthread_once): Add LLL_PRIVATE as last argument to lll_futex_*.
1767 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h (FUTEX_PRIVATE_FLAG,
1768 LLL_PRIVATE, LLL_SHARED, __lll_private_flag): Define.
1769 (lll_futex_wait): Add private argument, define as wrapper around
1770 lll_futex_timed_wait.
1771 (lll_futex_timed_wait, lll_futex_wake): Add private argument,
1772 use __lll_private_flag macro.
1773 (lll_robust_mutex_dead, __lll_mutex_unlock, __lll_robust_mutex_unlock,
1774 __lll_mutex_unlock_force): Pass LLL_SHARED as last arg to lll_futex_*.
1775 * sysdeps/unix/sysv/linux/ia64/pthread_once.c (clear_once_control,
1776 __pthread_once): Add LLL_PRIVATE as last argument to lll_futex_*.
1777 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (FUTEX_PRIVATE_FLAG,
1778 LLL_PRIVATE, LLL_SHARED, __lll_private_flag): Define.
1779 (lll_futex_wait): Add private argument, define as wrapper around
1780 lll_futex_timed_wait.
1781 (lll_futex_timed_wait, lll_futex_wake): Add private argument,
1782 use __lll_private_flag macro.
1783 (__lll_mutex_unlock, __lll_robust_mutex_unlock, lll_wait_tid,
1784 __lll_mutex_unlock_force): Pass LLL_SHARED as last arg to lll_futex_*.
1785 * sysdeps/unix/sysv/linux/i386/lowlevellock.h (__lll_private_flag):
1786 Define.
1787 (lll_futex_timed_wait, lll_futex_wake): Use it.
1788 (lll_private_futex_wait, lll_private_futex_timed_wait,
1789 lll_private_futex_wake): Removed.
1790 * sysdeps/unix/sysv/linux/s390/pthread_once.c (clear_once_control,
1791 __pthread_once): Add LLL_PRIVATE as last argument to lll_futex_*.
1792 * sysdeps/unix/sysv/linux/s390/lowlevellock.h (FUTEX_PRIVATE_FLAG,
1793 LLL_PRIVATE, LLL_SHARED, __lll_private_flag): Define.
1794 (lll_futex_wait): Add private argument, define as wrapper around
1795 lll_futex_timed_wait.
1796 (lll_futex_timed_wait, lll_futex_wake): Add private argument,
1797 use __lll_private_flag macro.
1798 (lll_robust_mutex_dead, __lll_mutex_unlock, __lll_robust_mutex_unlock,
1799 lll_wait_tid, __lll_mutex_unlock_force): Pass LLL_SHARED as last arg
1800 to lll_futex_*.
1801 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h
1802 (lll_private_futex_wait, lll_private_futex_timed_wait,
1803 lll_private_futex_wake): Removed.
1804 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (__lll_private_flag):
1805 Fix !__ASSUME_PRIVATE_FUTEX non-constant private case.
1806 (lll_private_futex_wait, lll_private_futex_timed_wait,
1807 lll_private_futex_wake): Removed.
1808 * sysdeps/unix/sysv/linux/sparc/pthread_once.c (clear_once_control,
1809 __pthread_once): Add LLL_PRIVATE as last argument to lll_futex_*.
1810 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h (FUTEX_PRIVATE_FLAG,
1811 LLL_PRIVATE, LLL_SHARED, __lll_private_flag): Define.
1812 (lll_futex_wait): Add private argument, define as wrapper around
1813 lll_futex_timed_wait.
1814 (lll_futex_timed_wait, lll_futex_wake): Add private argument,
1815 use __lll_private_flag macro.
1816 (lll_robust_mutex_dead, __lll_mutex_unlock, __lll_robust_mutex_unlock,
1817 lll_wait_tid, __lll_mutex_unlock_force): Pass LLL_SHARED as last arg
1818 to lll_futex_*.
1819 * sysdeps/unix/sysv/linux/sh/lowlevellock.h (__lll_private_flag):
1820 Define.
1821 (lll_futex_timed_wait, lll_futex_wake): Use it.
1822 (lll_private_futex_wait, lll_private_futex_timed_wait,
1823 lll_private_futex_wake): Removed.
1824
ef0af159
JJ
18252007-07-27 Jakub Jelinek <jakub@redhat.com>
1826
1827 * sysdeps/sparc/tls.h (tcbhead_t): Move gscope_flag to the end
1828 of the structure for sparc32.
1829
18302007-07-26 Aurelien Jarno <aurelien@aurel32.net>
1831
1832 * sysdeps/sparc/tls.h (tcbhead_t): Add gscope_flag.
1833
eb4f5909
UD
18342007-07-23 Ulrich Drepper <drepper@redhat.com>
1835
1836 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S: Fix
1837 code used when private futexes are assumed.
1838 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S:
1839 Likewise.
1840
b5f13526
UD
18412007-07-23 Jakub Jelinek <jakub@redhat.com>
1842
1843 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h
1844 (__lll_private_flag): Define.
1845 (lll_futex_wait): Define as a wrapper around lll_futex_timed_wait.
1846 (lll_futex_timed_wait, lll_futex_wake, lll_futex_wake_unlock): Use
1847 __lll_private_flag.
1848 (lll_private_futex_wait, lll_private_futex_timedwait,
1849 lll_private_futex_wake): Define as wrapper around non-_private
1850 macros.
1851 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h
1852 (__lll_private_flag): Define.
1853 (lll_futex_timed_wait, lll_futex_wake): Use __lll_private_flag.
1854 (lll_private_futex_wait, lll_private_futex_timedwait,
1855 lll_private_futex_wake): Define as wrapper around non-_private
1856 macros.
1857
eb7721f2
UD
18582007-07-10 Steven Munroe <sjmunroe@us.ibm.com>
1859
1860 * pthread_rwlock_rdlock.c (__pthread_rwlock_rdlock): Add LLL_SHARED
1861 parameter to lll_futex_wait call.
1862 * pthread_rwlock_wrlock.c (__pthread_rwlock_wrlock): Likewise.
1863
1864 * sysdeps/unix/sysv/linux/powerpc/pthread_once.c (__pthread_once):
1865 Replace lll_futex_wait with lll_private_futex_wait.
1866 * sysdeps/unix/sysv/linux/powerpc/sem_post.c (__new_sem_post):
1867 Add LLL_SHARED parameter to lll_futex_wake().
1868
1869 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Define LLL_PRIVATE
1870 LLL_SHARED, lll_private_futex_wait, lll_private_futex_timed_wait and
1871 lll_private_futex_wake.
1872 (lll_futex_wait): Add private parameter. Adjust FUTEX_PRIVATE_FLAG
1873 bit from private parm before syscall.
1874 (lll_futex_timed_wait): Likewise.
1875 (lll_futex_wake): Likewise.
1876 (lll_futex_wake_unlock): Likewise.
1877 (lll_mutex_unlock): Add LLL_SHARED parm to lll_futex_wake call.
1878 (lll_robust_mutex_unlock): Likewise.
1879 (lll_mutex_unlock_force): Likewise.
1880 (lll_wait_tid): Add LLL_SHARED parm to lll_futex_wait call.
1881
defc45f2
UD
18822007-07-23 Ulrich Drepper <drepper@redhat.com>
1883
1884 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S: Fix
1885 compilation when unconditionally using private futexes.
1886 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S: Likewise.
1887 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S:
1888 Likewise.
1889 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_unlock.S: Likewise.
1890 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S: Likewise.
1891
087722b8
UD
18922007-07-17 Jakub Jelinek <jakub@redhat.com>
1893
1894 * sysdeps/pthread/bits/stdio-lock.h (_IO_acquire_lock_clear_flags2):
1895 Define.
1896
765c6b0c
UD
18972007-07-06 Kaz Kojima <kkojima@rr.iij4u.or.jp>
1898
1899 * sysdeps/sh/tls.h: Include stdlib.h, list.h, sysdep.h and
1900 kernel-features.h.
1901
7d9d8bd1
RM
19022007-05-16 Roland McGrath <roland@redhat.com>
1903
1904 * init.c (__nptl_initial_report_events): New variable.
1905 (__pthread_initialize_minimal_internal): Initialize pd->report_events
1906 to that.
1907
a4915df2
UD
19082007-06-22 Jakub Jelinek <jakub@redhat.com>
1909
1910 * pthread_getattr_np.c (pthread_getattr_np): Clear cpuset and
1911 cpusetsize if pthread_getaffinity_np failed with ENOSYS.
1912
e4eb675d
UD
19132007-06-19 Ulrich Drepper <drepper@redhat.com>
1914
1915 * sysdeps/unix/sysv/linux/rtld-lowlevel.h: Remove mrlock
1916 implementation.
1917
ae1ad3ae
UD
19182007-06-18 Ulrich Drepper <drepper@redhat.com>
1919
1920 * pthreadP.h: Define PTHREAD_MUTEX_TYPE.
1921 * phtread_mutex_lock.c: Use PTHREAD_MUTEX_TYPE.
1922 * pthread_mutex_timedlock.c: Likewise.
1923 * pthread_mutex_trylock.c: Likewise.
1924 * pthread_mutex_unlock.c: Likewise.
1925
89074592
UD
19262007-06-17 Andreas Schwab <schwab@suse.de>
1927
1928 * sysdeps/pthread/pt-initfini.c: Tell gcc about the nonstandard
1929 sections.
1930
d4201cc4
UD
19312007-06-17 Ulrich Drepper <drepper@redhat.com>
1932
1933 * allocatestack.c (allocate_stack): Make code compile if
1934 __ASSUME_PRIVATE_FUTEX is set.
1935
339dbf0e
UD
19362007-06-17 Kaz Kojima <kkojima@rr.iij4u.or.jp>
1937
1938 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S:
1939 (__pthread_rwlock_rdlock): Don't use non SH-3/4 instruction.
1940 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S:
1941 (__pthread_rwlock_wrlock): Likewise.
1942 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S:
1943 (pthread_rwlock_timedrdlock): Likewise.
1944 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S:
1945 (pthread_rwlock_timedwrlock): Likewise.
1946 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S:
1947 (__pthread_rwlock_unlock): Likewise.
1948
19492007-06-10 Kaz Kojima <kkojima@rr.iij4u.or.jp>
1950
1951 * sysdeps/sh/tcb-offsets.sym: Add PRIVATE_FUTEX.
1952 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Include endian.h.
1953 Split __flags into __flags, __shared, __pad1 and __pad2.
1954 * sysdeps/unix/sysv/linux/sh/libc-lowlevellock.S: Use private
b42a214c 1955 futexes if they are available.
339dbf0e 1956 * sysdeps/unix/sysv/linux/sh/lowlevellock.S: Adjust so that change
b42a214c 1957 in libc-lowlevellock.S allow using private futexes.
339dbf0e
UD
1958 * sysdeps/unix/sysv/linux/sh/lowlevellock.h: Define
1959 FUTEX_PRIVATE_FLAG. Add additional parameter to lll_futex_wait,
1960 lll_futex_timed_wait and lll_futex_wake. Change lll_futex_wait
1961 to call lll_futex_timed_wait. Add lll_private_futex_wait,
1962 lll_private_futex_timed_wait and lll_private_futex_wake.
1963 (lll_robust_mutex_unlock): Fix typo.
1964 * sysdeps/unix/sysv/linux/sh/pthread_barrier_wait.S: Use private
b42a214c 1965 field in futex command setup.
339dbf0e
UD
1966 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Use
1967 COND_NWAITERS_SHIFT instead of COND_CLOCK_BITS.
1968 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Likewise.
1969 * sysdeps/unix/sysv/linux/sh/pthread_once.S: Use private futexes
b42a214c 1970 if they are available. Remove clear_once_control.
339dbf0e
UD
1971 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: Use private
1972 futexes if they are available.
1973 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S: Likewise.
1974 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S: Likewise.
1975 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S: Likewise.
1976 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: Likewise.
1977 * sysdeps/unix/sysv/linux/sh/sem_post.S: Add private futex support.
1978 Wake only when there are waiters.
1979 * sysdeps/unix/sysv/linux/sh/sem_wait.S: Add private futex
1980 support. Indicate that there are waiters. Remove unnecessary
b42a214c 1981 extra cancellation test.
339dbf0e
UD
1982 * sysdeps/unix/sysv/linux/sh/sem_timedwait.S: Likewise. Removed
1983 left-over duplication of __sem_wait_cleanup.
1984
26f56c1c
UD
19852007-06-07 Ulrich Drepper <drepper@redhat.com>
1986
1987 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Add additional
1988 parameter to lll_futex_wait, lll_futex_timed_wait, and
1989 lll_futex_wake. Change lll_futex_wait to call lll_futex_timed_wait.
1990 Add lll_private_futex_wait, lll_private_futex_timed_wait, and
1991 lll_private_futex_wake.
1992 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Likewise.
1993 * allocatestack.c: Adjust use of lll_futex_* macros.
1994 * init.c: Likewise.
1995 * lowlevellock.h: Likewise.
1996 * pthread_barrier_wait.c: Likewise.
1997 * pthread_cond_broadcast.c: Likewise.
1998 * pthread_cond_destroy.c: Likewise.
1999 * pthread_cond_signal.c: Likewise.
2000 * pthread_cond_timedwait.c: Likewise.
2001 * pthread_cond_wait.c: Likewise.
2002 * pthread_create.c: Likewise.
2003 * pthread_mutex_lock.c: Likewise.
2004 * pthread_mutex_setprioceiling.c: Likewise.
2005 * pthread_mutex_timedlock.c: Likewise.
2006 * pthread_mutex_unlock.c: Likewise.
2007 * pthread_rwlock_timedrdlock.c: Likewise.
2008 * pthread_rwlock_timedwrlock.c: Likewise.
2009 * pthread_rwlock_unlock.c: Likewise.
2010 * sysdeps/alpha/tls.h: Likewise.
2011 * sysdeps/i386/tls.h: Likewise.
2012 * sysdeps/ia64/tls.h: Likewise.
2013 * sysdeps/powerpc/tls.h: Likewise.
2014 * sysdeps/pthread/aio_misc.h: Likewise.
2015 * sysdeps/pthread/gai_misc.h: Likewise.
2016 * sysdeps/s390/tls.h: Likewise.
2017 * sysdeps/sh/tls.h: Likewise.
2018 * sysdeps/sparc/tls.h: Likewise.
2019 * sysdeps/unix/sysv/linux/fork.c: Likewise.
2020 * sysdeps/unix/sysv/linux/lowlevellock.c: Likewise.
2021 * sysdeps/unix/sysv/linux/lowlevelrobustlock.c: Likewise.
2022 * sysdeps/unix/sysv/linux/rtld-lowlevel.h: Likewise.
2023 * sysdeps/unix/sysv/linux/sem_post.c: Likewise.
2024 * sysdeps/unix/sysv/linux/sem_timedwait.c: Likewise.
2025 * sysdeps/unix/sysv/linux/sem_wait.c: Likewise.
2026 * sysdeps/unix/sysv/linux/unregister-atfork.c: Likewise.
2027 * sysdeps/unix/sysv/linux/sparc/pthread_once.c: Likewise.
2028 * sysdeps/unix/sysv/linux/sparc/sparc32/pthread_barrier_wait.c:
2029 Likewise.
2030 * sysdeps/unix/sysv/linux/sparc/sparc32/sem_post.c: Likewise.
2031 * sysdeps/x86_64/tls.h: Likewise.
2032
ee5d5755
UD
20332007-05-29 Ulrich Drepper <drepper@redhat.com>
2034
b03b0c29
UD
2035 * pthread_getattr_np.c: No need to install a cancellation handler,
2036 this is no cancellation point.
2037 * pthread_getschedparam.c: Likewise.
2038 * pthread_setschedparam.c: Likewise.
2039 * pthread_setschedprio.c: Likewise.
2040 * sysdeps/unix/sysv/linux/lowlevellock.c: Remove all traces of
2041 lll_unlock_wake_cb.
2042 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h: Likewise.
2043 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Likewise.
2044 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Likewise.
2045 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h: Likewise.
2046 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Likewise.
2047 * sysdeps/unix/sysv/linux/s390/lowlevellock.h: Likewise.
2048 * sysdeps/unix/sysv/linux/sh/lowlevellock.S: Likewise.
2049 * sysdeps/unix/sysv/linux/sh/lowlevellock.h: Likewise.
2050 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h: Likewise.
2051 * sysdeps/unix/sysv/linux/sparc/sparc32/lowlevellock.c: Likewise.
2052 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Likewise.
2053 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
fc3f0ccb 2054
0154658d
UD
2055 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Checking
2056 whether there are more than one thread makes no sense here since
2057 we only call the slow path if the locks are taken.
2058 * sysdeps/unix/sysv/linux/x86_64/libc-lowlevellock.S: Likewise.
2059
ee5d5755
UD
2060 * sysdeps/unix/sysv/linux/internaltypes.h: Introduce
2061 COND_NWAITERS_SHIFT.
2062 * pthread_cond_destroy.c: Use COND_NWAITERS_SHIFT instead of
2063 COND_CLOCK_BITS.
2064 * pthread_cond_init.c: Likewise.
2065 * pthread_cond_timedwait.c: Likewise.
2066 * pthread_cond_wait.c: Likewise.
2067 * pthread_condattr_getclock.c: Likewise.
2068 * pthread_condattr_setclock.c: Likewise.
2069 * sysdeps/unix/sysv/linux/lowlevelcond.sym: Likewise.
2070 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
2071 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
2072 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
2073 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
2074
991fa82b
UD
20752007-05-28 Jakub Jelinek <jakub@redhat.com>
2076
40f57573
UD
2077 * sysdeps/unix/sysv/linux/powerpc/pthread_attr_setstacksize.c: Include
2078 unistd.h.
2079
991fa82b
UD
2080 * sysdeps/i386/tls.h (THREAD_GSCOPE_RESET_FLAG): Use explicit
2081 insn suffix.
2082 (THREAD_GSCOPE_GET_FLAG): Remove.
2083 * sysdeps/x86_64/tls.h (THREAD_GSCOPE_GET_FLAG): Remove.
2084 * allocatestack.c (__wait_lookup_done): Revert 2007-05-24
2085 changes.
2086 * sysdeps/powerpc/tls.h (tcbhead_t): Remove gscope_flag.
2087 (THREAD_GSCOPE_GET_FLAG): Remove.
2088 (THREAD_GSCOPE_RESET_FLAG): Use THREAD_SELF->header.gscope_flag
2089 instead of THREAD_GSCOPE_GET_FLAG.
2090 (THREAD_GSCOPE_SET_FLAG): Likewise. Add atomic_write_barrier after
2091 it.
2092 * sysdeps/s390/tls.h (THREAD_GSCOPE_FLAG_UNUSED,
2093 THREAD_GSCOPE_FLAG_USED, THREAD_GSCOPE_FLAG_WAIT,
2094 THREAD_GSCOPE_RESET_FLAG, THREAD_GSCOPE_SET_FLAG,
2095 THREAD_GSCOPE_WAIT): Define.
2096 * sysdeps/sparc/tls.h (THREAD_GSCOPE_FLAG_UNUSED,
2097 THREAD_GSCOPE_FLAG_USED, THREAD_GSCOPE_FLAG_WAIT,
2098 THREAD_GSCOPE_RESET_FLAG, THREAD_GSCOPE_SET_FLAG,
2099 THREAD_GSCOPE_WAIT): Define.
2100 * sysdeps/sh/tls.h (THREAD_GSCOPE_FLAG_UNUSED,
2101 THREAD_GSCOPE_FLAG_USED, THREAD_GSCOPE_FLAG_WAIT,
2102 THREAD_GSCOPE_RESET_FLAG, THREAD_GSCOPE_SET_FLAG,
2103 THREAD_GSCOPE_WAIT): Define.
2104 * sysdeps/ia64/tls.h (THREAD_GSCOPE_FLAG_UNUSED,
2105 THREAD_GSCOPE_FLAG_USED, THREAD_GSCOPE_FLAG_WAIT,
2106 THREAD_GSCOPE_RESET_FLAG, THREAD_GSCOPE_SET_FLAG,
2107 THREAD_GSCOPE_WAIT): Define.
2108
21092007-05-24 Richard Henderson <rth@redhat.com>
2110
2111 * descr.h (struct pthread): Add header.gscope_flag.
2112 * sysdeps/alpha/tls.h (THREAD_GSCOPE_FLAG_UNUSED,
2113 THREAD_GSCOPE_FLAG_USED, THREAD_GSCOPE_FLAG_WAIT,
2114 THREAD_GSCOPE_RESET_FLAG, THREAD_GSCOPE_SET_FLAG,
2115 THREAD_GSCOPE_WAIT): Define.
2116
e59660bc
UD
21172007-05-27 Ulrich Drepper <drepper@redhat.com>
2118
2119 * init.c: Make it compile with older kernel headers.
2120
2121 * tst-initializers1.c: Show through exit code which test failed.
2122
2123 * pthread_rwlock_init.c: Also initialize __shared field.
2124 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Split __flags
2125 element in rwlock structure into four byte elements. One of them is
2126 the new __shared element.
2127 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h [__WORDSIZE=32]:
2128 Likewise.
cd0dbd89 2129 [__WORDSIZE=64]: Renamed __pad1 element int rwlock structure to
e59660bc
UD
2130 __shared, adjust names of other padding elements.
2131 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
2132 * sysdeps/pthread/pthread.h: Adjust rwlock initializers.
2133 * sysdeps/unix/sysv/linux/lowlevelrwlock.sym: Add PSHARED.
2134 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Define
2135 FUTEX_PRIVATE_FLAG.
2136 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S: Change main
2137 futex to use private operations if possible.
2138 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S:
2139 Likewise.
2140 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S:
2141 Likewise.
2142 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_unlock.S: Likewise.
2143 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S: Likewise.
50f1dec5
UD
2144 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Likewise.
2145 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
2146 Likewise.
2147 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
2148 Likewise.
2149 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S: Likewise.
2150 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
e59660bc 2151
d8ff3792
UD
21522007-05-26 Ulrich Drepper <drepper@redhat.com>
2153
546346b6
UD
2154 * pthreadP.h (PTHREAD_RWLOCK_PREFER_READER_P): Define.
2155 * pthread_rwlock_rdlock.c: Use PTHREAD_RWLOCK_PREFER_READER_P.
2156 * pthread_rwlock_timedrdlock.c: Likewise.
2157 * pthread_rwlock_tryrdlock.c: Likewise.
2158
a2dd3360
UD
2159 * sysdeps/unix/sysv/linux/x86_64/sem_trywait.S (sem_trywait): Tiny
2160 optimization.
2161
6df7ffad
UD
2162 * sysdeps/unix/sysv/linux/sem_wait.c: Add missing break.
2163 * sysdeps/unix/sysv/linux/sem_timedwait.c: Removed left-over
2164 duplication of __sem_wait_cleanup.
2165
2166 * allocatestack.c: Revert last change.
2167 * init.c: Likewise.
2168 * sysdeps/i386/tls.h: Likewise.
2169 * sysdeps/x86_64/tls.h: Likewise.
2170 * descr.h [TLS_DTV_AT_TP] (struct pthread): Add private_futex field to
2171 header structure.
2172 * sysdeps/powerpc/tcb-offsets.sym: Add PRIVATE_FUTEX_OFFSET.
2173
d8ff3792
UD
2174 * sysdeps/unix/sysv/linux/internaltypes.h (struct pthread_barrier):
2175 Add private field.
2176 * sysdeps/unix/sysv/linux/lowlevelbarrier.sym: Add PRIVATE definition.
2177 * pthread_barrier_init.c: Set private flag if pshared and private
2178 futexes are supported.
2179 * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S: Use
2180 private field in futex command setup.
2181 * sysdeps/unix/sysv/linux/x86_64/pthread_barrier_wait.S: Likewise.
2182
3d2dd6ca
UD
21832007-05-25 Ulrich Drepper <drepper@redhat.com>
2184
42e6c665
UD
2185 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S: Add private futex
2186 support.
2187 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: Likewise.
2188 * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S: Likewise.
2189 * sysdeps/unix/sysv/linux/x86_64/sem_post.S: Likewise.
2190 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Likewise.
2191 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Likewise.
2192
3d2dd6ca
UD
2193 * semaphoreP.h: Declare __old_sem_init and __old_sem_wait.
2194 * sem_init.c (__new_sem_init): Rewrite to initialize all three
2195 fields in the structure.
2196 (__old_sem_init): New function.
2197 * sem_open.c: Initialize all fields of the structure.
2198 * sem_getvalue.c: Adjust for renamed element.
2199 * sysdeps/unix/sysv/linux/Makefile [subdir=nptl]
2200 (gen-as-const-headers): Add structsem.sym.
2201 * sysdeps/unix/sysv/linux/structsem.sym: New file.
2202 * sysdeps/unix/sysv/linux/internaltypes.h: Rename struct sem to
2203 struct new_sem. Add struct old_sem.
2204 * sysdeps/unix/sysv/linux/sem_post.c: Wake only when there are waiters.
2205 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S: Likewise.
2206 * sysdeps/unix/sysv/linux/x86_64/sem_post.S: Likewise.
2207 * sysdeps/unix/sysv/linux/sem_wait.c: Indicate that there are waiters.
2208 * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S: Likewise.
2209 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Likewise.
2210 * sysdeps/unix/sysv/linux/sem_timedwait.c: Likewise.
2211 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: Likewise.
2212 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Likewise.
2213 * Makefile (tests): Add tst-sem10, tst-sem11, tst-sem12.
2214 * tst-sem10.c: New file.
2215 * tst-sem11.c: New file.
2216 * tst-sem12.c: New file.
2217 * tst-typesizes.c: Test struct new_sem and struct old_sem instead
2218 of struct sem.
2219
20a4d722
JJ
22202007-05-25 Ulrich Drepper <drepper@redhat.com>
2221 Jakub Jelinek <jakub@redhat.com>
2222
2223 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S (sem_timedwait):
2224 Move __pthread_enable_asynccancel right before futex syscall.
2225 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S (sem_timedwait):
2226 Likewise.
2227
22282007-05-24 Jakub Jelinek <jakub@redhat.com>
86acd596
UD
2229
2230 * sysdeps/i386/tls.h (THREAD_SET_PRIVATE_FUTEX,
2231 THREAD_COPY_PRIVATE_FUTEX): Define.
2232 * sysdeps/x86_64/tls.h (THREAD_SET_PRIVATE_FUTEX,
2233 THREAD_COPY_PRIVATE_FUTEX): Define.
2234 * allocatestack.c (allocate_stack): Use THREAD_COPY_PRIVATE_FUTEX.
2235 * init.c (__pthread_initialize_minimal_internal): Use
2236 THREAD_SET_PRIVATE_FUTEX.
0a54ab53
UD
2237
2238 * sysdeps/powerpc/tls.h (tcbhead_t): Add gscope_flag.
2239 (THREAD_GSCOPE_FLAG_UNUSED, THREAD_GSCOPE_FLAG_USED,
2240 THREAD_GSCOPE_FLAG_WAIT): Define.
2241 (THREAD_GSCOPE_GET_FLAG, THREAD_GSCOPE_SET_FLAG,
2242 THREAD_GSCOPE_RESET_FLAG, THREAD_GSCOPE_WAIT): Define.
2243 * sysdeps/i386/tls.h (THREAD_GSCOPE_WAIT): Don't use
2244 PTR_DEMANGLE.
2245 (THREAD_GSCOPE_GET_FLAG): Define.
2246 * sysdeps/x86_64/tls.h (THREAD_GSCOPE_GET_FLAG): Define.
2247 * allocatestack.c (__wait_lookup_done): Use THREAD_GSCOPE_GET_FLAG
2248 instead of ->header.gscope_flag directly.
2249
5a8075b1
UD
22502007-05-23 Ulrich Drepper <drepper@redhat.com>
2251
2252 * init.c (__pthread_initialize_minimal_internal): Check whether
2253 private futexes are available.
2254 * allocatestack.c (allocate_stack): Copy private_futex field from
2255 current thread into the new stack.
2256 * sysdeps/unix/sysv/linux/x86_64/libc-lowlevellock.S: Use private
2257 futexes if they are available.
2258 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Likewise
2259 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Adjust so that change
2260 in libc-lowlevellock.S allow using private futexes.
2261 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Likewise.
2262 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Define
2263 FUTEX_PRIVATE_FLAG.
2264 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Likewise.
2265 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Use private futexes
2266 if they are available.
2267 * sysdeps/unix/sysv/linux/i386/pthread_once.S: Likewise.
2268 * sysdeps/x86_64/tcb-offsets.sym: Add PRIVATE_FUTEX.
2269 * sysdeps/i386/tcb-offsets.sym: Likewise.
2270 * sysdeps/x86_64/tls.h (tcbhead_t): Add private_futex field.
2271 * sysdeps/i386/tls.h (tcbhead_t): Likewise.
2272
6d59823c
UD
22732007-05-21 Ulrich Drepper <drepper@redhat.com>
2274
2275 * sysdeps/pthread/pthread-functions.h (struct pthread_functions):
2276 Remove ptr_wait_lookup_done again.
2277 * init.c (pthread_functions): Don't add .ptr_wait_lookup_done here.
2278 (__pthread_initialize_minimal_internal): Initialize
2279 _dl_wait_lookup_done pointer in _rtld_global directly.
2280 * sysdeps/unix/sysv/linux/libc_pthread_init.c (__libc_pthread_init):
2281 Remove code to code _dl_wait_lookup_done.
2282 * sysdeps/x86_64/tls.h (THREAD_GSCOPE_WAIT): The pointer is not
2283 encrypted for now.
2284
2c9718f3
JJ
22852007-05-21 Jakub Jelinek <jakub@redhat.com>
2286
2287 * tst-robust9.c (do_test): Don't fail if ENABLE_PI and
2288 pthread_mutex_init failed with ENOTSUP.
2289
df94b641
UD
22902007-05-19 Ulrich Drepper <drepper@redhat.com>
2291
2292 * allocatestack.c (__wait_lookup_done): New function.
2293 * sysdeps/pthread/pthread-functions.h (struct pthread_functions):
2294 Add ptr_wait_lookup_done.
2295 * init.c (pthread_functions): Initialize .ptr_wait_lookup_done.
2296 * pthreadP.h: Declare __wait_lookup_done.
2297 * sysdeps/i386/tls.h (tcbhead_t): Add gscope_flag.
2298 Define macros to implement reference handling of global scope.
2299 * sysdeps/x86_64/tls.h: Likewise.
2300 * sysdeps/unix/sysv/linux/libc_pthread_init.c (__libc_pthread_init):
2301 Initialize GL(dl_wait_lookup_done).
2302
bec51a30
UD
23032007-05-17 Ulrich Drepper <drepper@redhat.com>
2304
113ad5fc
UD
2305 [BZ #4512]
2306 * pthread_mutex_lock.c: Preserve FUTEX_WAITERS bit when dead owner
2307 is detected.
2308 * pthread_mutex_timedlock.c: Likewise.
2309 * pthread_mutex_trylock.c: Likewise.
2310 Patch in part by Atsushi Nemoto <anemo@mba.ocn.ne.jp>.
2311
2312 * Makefile (tests): Add tst-robust9 and tst-robustpi9.
2313 * tst-robust9.c: New file.
2314 * tst-robustpi9.c: New file.
2315
bec51a30
UD
2316 * sysdeps/unix/sysv/linux/sem_wait.c (__new_sem_wait): Remove
2317 unnecessary extra cancellation test.
2318
83d87915
UD
23192007-05-14 Ulrich Drepper <drepper@redhat.com>
2320
83d87915
UD
2321 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Remove unnecessary
2322 extra cancellation test.
2323 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Likewise.
2324
3771196d
UD
23252007-05-10 Ulrich Drepper <drepper@redhat.com>
2326
341c566f
UD
2327 * descr.h (struct pthread): Rearrange members to fill hole in
2328 64-bit layout.
2329
3771196d
UD
2330 * sysdeps/unix/sysv/linux/pthread_setaffinity.c
2331 (__pthread_setaffinity_new): If syscall was successful and
2332 RESET_VGETCPU_CACHE is defined, use it before returning.
2333 * sysdeps/unix/sysv/linux/x86_64/pthread_setaffinity.c: New file.
2334
7d29b542
JJ
23352007-05-10 Jakub Jelinek <jakub@redhat.com>
2336
2337 [BZ #4455]
2338 * tst-align2.c: Include stackinfo.h.
2339 * tst-getpid1.c: Likewise.
2340
16105fe0
UD
23412007-05-02 Carlos O'Donell <carlos@systemhalted.org>
2342
29c113f0
UD
2343 [BZ #4455]
2344 * tst-align2.c (do_test): Add _STACK_GROWS_UP case.
2345 * tst-getpid1.c (do_test): Likewise.
2346
16105fe0
UD
2347 [BZ #4456]
2348 * allocatestack.c (change_stack_perm): Add _STACK_GROWS_UP case.
2349 (allocate_stack): Likewise.
2350
6780bc44
UD
23512007-05-07 Ulrich Drepper <drepper@redhat.com>
2352
2353 * sysdeps/unix/sysv/linux/lowlevelrobustlock.c
2354 (__lll_robust_lock_wait): Fix race caused by reloading of futex value.
2355 (__lll_robust_timedlock_wait): Likewise.
2356 Reported by Alexey Kuznetsov <kuznet@ms2.inr.ac.ru>.
2357
aa75f64c
UD
23582007-05-06 Mike Frysinger <vapier@gentoo.org>
2359
15eca720 2360 [BZ #4465]
aa75f64c
UD
2361 * tst-cancel-wrappers.sh: Set C["fdatasync"] to 1.
2362 * tst-cancel4.c (tf_fdatasync): New test.
2363
f672076e
UD
23642007-04-27 Ulrich Drepper <drepper@redhat.com>
2365
1bb5f5a1
UD
2366 [BZ #4392]
2367 * pthread_mutex_trylock.c (__pthread_mutex_trylock): Treat error
2368 check mutexes like normal mutexes.
2369
f672076e
UD
2370 [BZ #4306]
2371 * sysdeps/unix/sysv/linux/timer_create.c (timer_create):
2372 Initialize the whole sigevent structure to appease valgrind.
2373
bce20b9a
UD
23742007-04-25 Ulrich Drepper <drepper@redhat.com>
2375
2376 * sysdeps/x86_64/tls.h (tcbhead_t): Add vgetcpu_cache.
2377 * sysdeps/x86_64/tcb-offsets.sym: Add VGETCPU_CACHE_OFFSET.
2378
0c786eac
UD
23792007-04-06 Ulrich Drepper <drepper@redhat.com>
2380
2381 * tst-locale1.c: Avoid warnings.
2382 * tst-locale2.c: Likewise.
2383
e1f0c5bc
UD
23842007-03-19 Steven Munroe <sjmunroe@us.ibm.com>
2385
2386 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h
2387 (__lll_robust_trylock): Add MUTEX_HINT_ACQ to lwarx instruction.
2388
965cba04
UD
23892007-03-16 Jakub Jelinek <jakub@redhat.com>
2390
2391 * sysdeps/pthread/bits/libc-lock.h: Use __extern_inline and
2392 __extern_always_inline where appropriate.
2393 * sysdeps/pthread/pthread.h: Likewise.
2394
a5ea509b
RH
23952007-03-13 Richard Henderson <rth@redhat.com>
2396
2397 * sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h (PSEUDO): Use two
2398 separate cfi regions for the two subsections.
2399
00a1430e
UD
24002007-02-25 Ulrich Drepper <drepper@redhat.com>
2401
2402 * sysdeps/unix/sysv/linux/fork.c (__libc_fork): Reset refcntr in
2403 new thread, don't just decrement it.
2404 Patch by Suzuki K P <suzuki@in.ibm.com>.
2405
63a2f305
UD
24062007-02-21 Ulrich Drepper <drepper@redhat.com>
2407
2408 * sysdeps/pthread/pthread-functions.h: Correct last patch, correct
2409 PTHFCT_CALL definition.
2410
2484468b
UD
24112007-02-18 Ulrich Drepper <drepper@redhat.com>
2412
2413 * sysdeps/pthread/pthread-functions.h: If PTR_DEMANGLE is not
2414 available, don't use it.
2415
5ed61e0f
UD
24162007-02-09 Jakub Jelinek <jakub@redhat.com>
2417
2418 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
2419 (__lll_mutex_timedlock_wait): Use correct pointer when we don't
2420 call into the kernel to delay.
2421
10ccaa5c
UD
24222007-01-18 Ulrich Drepper <drepper@redhat.com>
2423
f8a17855
UD
2424 * tst-initializers1.c: We want to test the initializers as seen
2425 outside of libc, so undefined _LIBC.
2426
10ccaa5c
UD
2427 * pthread_join.c (cleanup): Avoid warning.
2428
ea1533e0
UD
24292007-01-17 Ulrich Drepper <drepper@redhat.com>
2430
1476bce6
UD
2431 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
2432 (__lll_timedwait_tid): Add unwind info.
2433
ea1533e0
UD
2434 * sysdeps/unix/sysv/linux/libc_pthread_init.c: Don't just copy the
2435 function table, mangle the pointers.
2436 * sysdeps/pthread/pthread-functions.h: Define PTHFCT_CALL.
2437 * forward.c: Use PTHFCT_CALL and __libc_pthread_functions_init.
2438 * sysdeps/pthread/bits/libc-lock.h: When using __libc_pthread_functions
2439 demangle pointers before use.
2440 * sysdeps/unix/sysv/linux/s390/jmp-unwind.c: Use PTHFCT_CALL to
2441 demangle pointer.
2442 * sysdeps/unix/sysv/linux/jmp-unwind.c: Likewise.
2443 * sysdeps/pthread/setxid.h: Likewise.
2444
8980796b
UD
24452007-01-12 Ulrich Drepper <drepper@redhat.com>
2446
2447 * tst-rwlock7.c: Show some more information in case of correct
2448 behavior.
2449
a1d87b5d
UD
24502007-01-11 Ulrich Drepper <drepper@redhat.com>
2451
2452 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h
2453 (lll_futex_timed_wait): Undo part of last change, don't negate
2454 return value.
2455
11bf311e 24562007-01-10 Ulrich Drepper <drepper@redhat.com>
66193697 2457
11bf311e
UD
2458 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Cleanups. Define
2459 FUTEX_CMP_REQUEUE and lll_futex_requeue.
66193697 2460
11bf311e 24612006-12-28 David S. Miller <davem@davemloft.net>
14a31e35 2462
11bf311e 2463 * shlib-versions: Fix sparc64 linux target specification.
a744da90 2464
11bf311e 24652007-01-10 Jakub Jelinek <jakub@redhat.com>
a744da90 2466
11bf311e
UD
2467 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/pthread_barrier_wait.c:
2468 Adjust include path for pthread_barrier_wait.c move.
fc242bef 2469
11bf311e 24702006-12-21 Jakub Jelinek <jakub@redhat.com>
fc242bef 2471
11bf311e
UD
2472 * sysdeps/unix/sysv/linux/pthread_kill.c (pthread_kill): Make sure
2473 tid isn't reread from pd->tid in between ESRCH test and the syscall.
a822d9f4 2474
11bf311e
UD
24752006-12-06 Jakub Jelinek <jakub@redhat.com>
2476
2477 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h (PSEUDO): Handle
2478 6 argument cancellable syscalls.
2479 (STM_6, LM_6, LR7_0, LR7_1, LR7_2, LR7_3, LR7_4, LR7_5, LR7_6): Define.
2480 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h (PSEUDO): Handle
2481 6 argument cancellable syscalls.
2482 (STM_6, LM_6, LR7_0, LR7_1, LR7_2, LR7_3, LR7_4, LR7_5, LR7_6): Define.
a822d9f4 2483
66f17705
UD
24842006-12-09 Ulrich Drepper <drepper@redhat.com>
2485
2486 * sysdeps/unix/sysv/linux/rtld-lowlevel.h
2487 (__rtld_mrlock_initialize): Add missing closing parenthesis.
2488
11bf311e
UD
24892006-10-30 Jakub Jelinek <jakub@redhat.com>
2490
2491 * sysdeps/ia64/pthread_spin_unlock.c (pthread_spin_unlock): Use
2492 __sync_lock_release instead of __sync_lock_release_si.
2493
536e40e2
UD
24942006-10-29 Jakub Jelinek <jakub@redhat.com>
2495
2496 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h (RTLD_SINGLE_THREAD_P):
2497 Define.
2498 (SINGLE_THREAD_P): Define to 1 if IS_IN_rtld.
2499 * sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h: Likewise.
2500 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h: Likewise.
2501 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h: Likewise.
2502 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h: Likewise.
2503 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h: Likewise.
2504 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h: Likewise.
2505 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h: Likewise.
2506 * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h: Likewise.
2507 * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h: Likewise.
2508 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h: Likewise.
2509
11bf311e
UD
25102006-10-27 Ulrich Drepper <drepper@redhat.com>
2511
2512 * sysdeps/pthread/pthread_barrier_wait.c: Move to...
2513 * pthread_barrier_wait.c: ...here.
2514 * sysdeps/pthread/pthread_cond_broadcast.c: Move to...
2515 * pthread_cond_broadcast.c: ...here.
2516 * sysdeps/pthread/pthread_cond_signal.c: Move to...
2517 * pthread_cond_signal.c: ...here.
2518 * sysdeps/pthread/pthread_cond_timedwait.c: Move to...
2519 * pthread_cond_timedwait.c: ...here.
2520 * sysdeps/pthread/pthread_cond_wait.c: Move to...
2521 * pthread_cond_wait.c: ...here.
2522 * sysdeps/pthread/pthread_once.c: Move to...
2523 * pthread_once.c: ...here.
2524 * sysdeps/pthread/pthread_rwlock_rdlock.c: Move to...
2525 * pthread_rwlock_rdlock.c: ...here.
2526 * sysdeps/pthread/pthread_rwlock_timedrdlock.c: Move to...
2527 * pthread_rwlock_timedrdlock.c: ...here.
2528 * sysdeps/pthread/pthread_rwlock_timedwrlock.c: Move to...
2529 * pthread_rwlock_timedwrlock.c: ...here.
2530 * sysdeps/pthread/pthread_rwlock_unlock.c: Move to...
2531 * pthread_rwlock_unlock.c: ...here.
2532 * sysdeps/pthread/pthread_rwlock_wrlock.c: Move to...
2533 * pthread_rwlock_wrlock.c: ...here.
2534 * sysdeps/pthread/pthread_spin_destroy.c: Move to...
2535 * pthread_spin_destroy.c: ...here.
2536 * sysdeps/pthread/pthread_spin_init.c: Move to...
2537 * pthread_spin_init.c: ...here.
2538 * sysdeps/pthread/pthread_spin_unlock.c: Move to...
2539 * pthread_spin_unlock.c: ...here.
2540 * sysdeps/pthread/pthread_getcpuclockid.c: Move to...
2541 * pthread_getcpuclockid.c: ...here.
2542
2543 * init.c: USE_TLS support is now always enabled.
2544 * tst-tls5.h: Likewise.
2545 * sysdeps/alpha/tls.h: Likewise.
2546 * sysdeps/i386/tls.h: Likewise.
2547 * sysdeps/ia64/tls.h: Likewise.
2548 * sysdeps/powerpc/tls.h: Likewise.
2549 * sysdeps/s390/tls.h: Likewise.
2550 * sysdeps/sh/tls.h: Likewise.
2551 * sysdeps/sparc/tls.h: Likewise.
2552 * sysdeps/x86_64/tls.h: Likewise.
2553
006a8f6f 25542006-10-27 Jakub Jelinek <jakub@redhat.com>
c0a777e8
UD
2555
2556 * sysdeps/unix/sysv/linux/rtld-lowlevel.h (__rtld_mrlock_lock,
2557 __rtld_mrlock_change): Update oldval if atomic compare and exchange
2558 failed.
2559
2560 * sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h (SINGLE_THREAD_P):
2561 Define to THREAD_SELF->header.multiple_threads.
2562 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h (SINGLE_THREAD_P):
2563 Likewise.
2564 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h (SINGLE_THREAD_P):
2565 Likewise.
2566 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h
2567 (SINGLE_THREAD_P): Likewise.
2568 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h
2569 (SINGLE_THREAD_P): Likewise.
2570 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h
2571 (SINGLE_THREAD_P): Likewise.
2572 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h
2573 (SINGLE_THREAD_P): Likewise.
2574 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h (SINGLE_THREAD_P):
2575 Likewise.
2576 * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h
2577 (SINGLE_THREAD_P): Likewise.
2578 * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h
2579 (SINGLE_THREAD_P): Likewise.
2580 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h (SINGLE_THREAD_P):
2581 Likewise.
2582
11bf311e 25832006-10-26 Jakub Jelinek <jakub@redhat.com>
32c075e1 2584
11bf311e
UD
2585 * pthread_attr_setstacksize.c (NEW_VERNUM): Define to GLIBC_2_3_3
2586 by default rather than 2_3_3.
32c075e1 2587
11bf311e 25882006-10-17 Jakub Jelinek <jakub@redhat.com>
32c075e1 2589
11bf311e
UD
2590 * sysdeps/unix/sysv/linux/rtld-lowlevel.h (__rtld_mrlock_lock,
2591 __rtld_mrlock_unlock, __rtld_mrlock_change, __rtld_mrlock_done): Use
2592 atomic_* instead of catomic_* macros.
2593
25942006-10-12 Ulrich Drepper <drepper@redhat.com>
2595
2596 [BZ #3285]
2597 * sysdeps/unix/sysv/linux/bits/local_lim.h: Add SEM_VALUE_MAX.
2598 * sysdeps/unix/sysv/linux/powerpc/bits/local_lim.h: Likewise.
2599 * sysdeps/unix/sysv/linux/sparc/bits/local_lim.h: Likewise.
2600 * sysdeps/unix/sysv/linux/alpha/bits/local_lim.h: Likewise.
2601 * sysdeps/unix/sysv/linux/ia64/bits/local_lim.h: Likewise.
2602 * sysdeps/unix/sysv/linux/i386/bits/semaphore.h: Remove SEM_VALUE_MAX.
2603 * sysdeps/unix/sysv/linux/powerpc/bits/semaphore.h: Likewise.
2604 * sysdeps/unix/sysv/linux/x86_64/bits/semaphore.h: Likewise.
2605 * sysdeps/unix/sysv/linux/sparc/bits/semaphore.h: Likewise.
2606 * sysdeps/unix/sysv/linux/alpha/bits/semaphore.h: Likewise.
2607 * sysdeps/unix/sysv/linux/sh/bits/semaphore.h: Likewise.
2608 * sysdeps/unix/sysv/linux/ia64/bits/semaphore.h: Likewise.
2609 * sysdeps/unix/sysv/linux/s390/bits/semaphore.h: Likewise.
2610
26112006-10-11 Ulrich Drepper <drepper@redhat.com>
2612
2613 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Add support for
2614 cancelable syscalls with six parameters.
2615
2616 * sysdeps/unix/sysv/linux/rtld-lowlevel.h: Use catomic_*
2617 operations instead of atomic_*.
32c075e1 2618
11bf311e 26192006-10-09 Ulrich Drepper <drepper@redhat.com>
32c075e1 2620
11bf311e 2621 * sysdeps/unix/sysv/linux/rtld-lowlevel.h: New file..
32c075e1 2622
11bf311e 26232006-10-07 Ulrich Drepper <drepper@redhat.com>
32c075e1 2624
11bf311e
UD
2625 * sysdeps/unix/sysv/linux/powerpc/bits/local_lim.h: New file.
2626 * sysdeps/unix/sysv/linux/powerpc/pthread_attr_setstack.c: New file.
2627 * sysdeps/unix/sysv/linux/powerpc/pthread_attr_setstacksize.c:
2628 New file.
2629 * pthread_attr_setstack.c: Allow overwriting the version number of the
2630 new symbol.
2631 * pthread_attr_setstacksize.c: Likewise.
2632 (__old_pthread_attr_setstacksize): If STACKSIZE_ADJUST is defined use
2633 it.
2634 * sysdeps/unix/sysv/linux/powerpc/Versions (libpthread): Add
2635 pthread_attr_setstack and pthread_attr_setstacksize to GLIBC_2.6.
fa279678 2636
457b559e
UD
26372006-09-24 Ulrich Drepper <drepper@redhat.com>
2638
2639 [BZ #3251]
2640 * descr.h (ENQUEUE_MUTEX_BOTH): Add cast to avoid warning.
2641 Patch by Petr Baudis.
2642
0466106e
UD
26432006-09-18 Jakub Jelinek <jakub@redhat.com>
2644
2645 * tst-kill4.c (do_test): Explicitly set tf thread's stack size.
2646
2647 * tst-cancel2.c (tf): Loop as long as something was written.
2648
bd6d3b7d
UD
26492006-09-12 Kaz Kojima <kkojima@rr.iij4u.or.jp>
2650
2651 * sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S: For PI
2652 mutexes wake all mutexes.
2653 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Don't increment
2654 WAKEUP_SEQ if this would increase the value beyond TOTAL_SEQ.
2655 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise.
2656
30aa5785
UD
26572006-09-12 Ulrich Drepper <drepper@redhat.com>
2658
2659 * tst-cond22.c (tf): Slight changes to the pthread_cond_wait use
2660 to guarantee the thread is always canceled.
2661
2b6a801e
UD
26622006-09-08 Jakub Jelinek <jakub@redhat.com>
2663
2664 * tst-cond22.c: Include pthread.h instead of pthreadP.h.
2665 Include stdlib.h.
2666 * sysdeps/pthread/pthread_cond_wait.c (__condvar_cleanup): Only
2667 increase FUTEX if increasing WAKEUP_SEQ. Fix comment typo.
2668 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
2669 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
2670 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
bd6d3b7d 2671
346e6ad4
UD
26722006-09-08 Ulrich Drepper <drepper@redhat.com>
2673
2674 [BZ #3123]
2675 * sysdeps/pthread/pthread_cond_wait.c (__condvar_cleanup): Don't
2676 increment WAKEUP_SEQ if this would increase the value beyond TOTAL_SEQ.
2b6a801e
UD
2677 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
2678 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
2679 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
346e6ad4
UD
2680 * Makefile (tests): Add tst-cond22.
2681 * tst-cond22.c: New file.
2682
b051fc44
UD
26832006-09-05 Ulrich Drepper <drepper@redhat.com>
2684
2685 [BZ #3124]
2686 * descr.h (struct pthread): Add parent_cancelhandling.
2687 * sysdeps/pthread/createthread.c (create_thread): Pass parent
2688 cancelhandling value to child.
2689 * pthread_create.c (start_thread): If parent thread was canceled
2690 reset the SIGCANCEL mask.
2691 * Makefile (tests): Add tst-cancel25.
2692 * tst-cancel25.c: New file.
2693
d052233c 26942006-09-05 Jakub Jelinek <jakub@redhat.com>
b42a214c 2695 Ulrich Drepper <drepper@redhat.com>
d052233c
UD
2696
2697 * sysdeps/pthread/gai_misc.h (GAI_MISC_NOTIFY): Don't decrement
2698 counterp if it is already zero.
2699 * sysdeps/pthread/aio_misc.h (AIO_MISC_NOTIFY): Likewise..
2700
cd248c3f 27012006-03-04 Jakub Jelinek <jakub@redhat.com>
b42a214c 2702 Roland McGrath <roland@redhat.com>
cd248c3f
UD
2703
2704 * sysdeps/unix/sysv/linux/i386/lowlevellock.h
2705 (LLL_STUB_UNWIND_INFO_START, LLL_STUB_UNWIND_INFO_END,
2706 LLL_STUB_UNWIND_INFO_3, LLL_STUB_UNWIND_INFO_4): Define.
2707 (lll_mutex_lock, lll_robust_mutex_lock, lll_mutex_cond_lock,
2708 lll_robust_mutex_cond_lock, lll_mutex_timedlock,
2709 lll_robust_mutex_timedlock, lll_mutex_unlock,
2710 lll_robust_mutex_unlock, lll_lock, lll_unlock): Use them.
2711 Add _L_*_ symbols around the subsection.
2712 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Add unwind info.
2713 * sysdeps/unix/sysv/linux/i386/i486/lowlevelrobustlock.S: Likewise.
2714
27152006-03-03 Jakub Jelinek <jakub@redhat.com>
b42a214c 2716 Roland McGrath <roland@redhat.com>
cd248c3f
UD
2717
2718 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h
2719 (LLL_STUB_UNWIND_INFO_START, LLL_STUB_UNWIND_INFO_END,
2720 LLL_STUB_UNWIND_INFO_5, LLL_STUB_UNWIND_INFO_6): Define.
2721 (lll_mutex_lock, lll_robust_mutex_lock, lll_mutex_cond_lock,
2722 lll_robust_mutex_cond_lock, lll_mutex_timedlock,
2723 lll_robust_mutex_timedlock, lll_mutex_unlock,
2724 lll_robust_mutex_unlock, lll_lock, lll_unlock): Use them.
2725 Add _L_*_ symbols around the subsection.
2726 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Add unwind info.
2727 * sysdeps/unix/sysv/linux/x86_64/lowlevelrobustlock.S: Likewise.
2728
b80770b2
UD
27292006-08-31 Ulrich Drepper <drepper@redhat.com>
2730
2731 * pthread_rwlock_trywrlock.c (__pthread_rwlock_trywrlock): Undo last
2732 change because it can disturb too much existing code. If real hard
2733 reader preference is needed we'll introduce another type.
2734 * sysdeps/pthread/pthread_rwlock_timedwrlock.c
2735 (pthread_rwlock_timedwrlock): Likewise.
2736 * sysdeps/pthread/pthread_rwlock_wrlock.c (__pthread_rwlock_wrlock):
2737 Likewise.
2738
bee2df0b
UD
27392006-08-30 Ulrich Drepper <drepper@redhat.com>
2740
2741 * pthread_rwlock_trywrlock.c (__pthread_rwlock_trywrlock): Respect
2742 reader preference.
2743 * sysdeps/pthread/pthread_rwlock_timedwrlock.c
2744 (pthread_rwlock_timedwrlock): Likewise.
2745 * sysdeps/pthread/pthread_rwlock_wrlock.c (__pthread_rwlock_wrlock):
2746 Likewise.
2747
d678ebc1
UD
27482006-08-25 Jakub Jelinek <jakub@redhat.com>
2749
2750 * sysdeps/unix/sysv/linux/libc_pthread_init.c (freeres_libpthread):
2751 Only define ifdef SHARED.
2752
ba408f84
UD
27532006-08-23 Ulrich Drepper <drepper@redhat.com>
2754
2755 * allocatestack.c (queue_stack): Move freeing of surplus stacks to...
2756 (free_stacks): ...here.
2757 (__free_stack_cache): New function.
2758 * pthreadP.h: Declare __free_stack_cache.
2759 * sysdeps/pthread/pthread-functions.h (pthread_functions): Add
2760 ptr_freeres.
2761 * init.c (pthread_functions): Initialize ptr_freeres.
2762 * sysdeps/unix/sysv/linux/libc_pthread_init.c (freeres_libptread):
2763 New freeres function.
2764
376e973a
UD
27652006-07-30 Joseph S. Myers <joseph@codesourcery.com>
2766
2767 [BZ #3018]
2768 * Makefile (extra-objs): Add modules to extra-test-objs instead.
2769
2b34af01
UD
27702006-08-20 Ulrich Drepper <drepper@redhat.com>
2771
2772 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define
2773 _XOPEN_REALTIME_THREADS.
2774
89c85f87
UD
27752006-08-15 Jakub Jelinek <jakub@redhat.com>
2776
2777 * sysdeps/unix/sysv/linux/clock_settime.c (INTERNAL_VSYSCALL): Use
2778 HAVE_CLOCK_GETRES_VSYSCALL as guard macro rather than
2779 HAVE_CLOCK_GETTIME_VSYSCALL.
2780 (maybe_syscall_settime_cpu): Use plain INTERNAL_VSYSCALL here.
2781
f17efcb4
UD
27822006-08-14 Jakub Jelinek <jakub@redhat.com>
2783
2784 * sysdeps/unix/sysv/linux/bits/posix_opt.h
2785 (_POSIX_THREAD_PRIO_PROTECT): Define to 200112L.
2786 * descr.h (struct priority_protection_data): New type.
2787 (struct pthread): Add tpp field.
2788 * pthreadP.h (PTHREAD_MUTEX_PP_NORMAL_NP,
2789 PTHREAD_MUTEX_PP_RECURSIVE_NP, PTHREAD_MUTEX_PP_ERRORCHECK_NP,
2790 PTHREAD_MUTEX_PP_ADAPTIVE_NP): New enum values.
2791 * pthread_mutex_init.c (__pthread_mutex_init): Handle non-robust
2792 TPP mutexes.
2793 * pthread_mutex_lock.c (__pthread_mutex_lock): Handle TPP mutexes.
2794 * pthread_mutex_trylock.c (__pthread_mutex_trylock): Likewise.
2795 * pthread_mutex_timedlock.c (pthread_mutex_timedlock): Likewise.
2796 * pthread_mutex_unlock.c (__pthread_mutex_unlock_usercnt): Likewise.
2797 * tpp.c: New file.
2798 * pthread_setschedparam.c (__pthread_setschedparam): Handle priority
2799 boosted by TPP.
2800 * pthread_setschedprio.c (pthread_setschedprio): Likewise.
2801 * pthread_mutexattr_getprioceiling.c
2802 (pthread_mutexattr_getprioceiling): If ceiling is 0, ensure it is
2803 in the SCHED_FIFO priority range.
2804 * pthread_mutexattr_setprioceiling.c
2805 (pthread_mutexattr_setprioceiling): Fix prioceiling validation.
2806 * pthread_mutex_getprioceiling.c (pthread_mutex_getprioceiling): Fail
2807 if mutex is not TPP. Ceiling is now in __data.__lock.
2808 * pthread_mutex_setprioceiling.c: Include stdbool.h.
2809 (pthread_mutex_setprioceiling): Fix prioceiling validation. Ceiling
2810 is now in __data.__lock. Add locking.
2811 * pthread_create.c (__free_tcb): Free pd->tpp structure.
2812 * Makefile (libpthread-routines): Add tpp.
2813 (xtests): Add tst-mutexpp1, tst-mutexpp6 and tst-mutexpp10.
2814 * tst-tpp.h: New file.
2815 * tst-mutexpp1.c: New file.
2816 * tst-mutexpp6.c: New file.
2817 * tst-mutexpp10.c: New file.
2818 * tst-mutex1.c (TEST_FUNCTION): Don't redefine if already defined.
2819 * tst-mutex6.c (TEST_FUNCTION): Likewise.
2820
22bb134c
UD
28212006-08-12 Ulrich Drepper <drepper@redhat.com>
2822
2823 [BZ #2843]
2824 * pthread_join.c (pthread_join): Account for self being canceled
2825 when checking for deadlocks.
2826 * tst-join5.c: Cleanups. Allow to be used in tst-join6.
2827 (tf1): Don't print anything after pthread_join returns, this would be
2828 another cancellation point.
2829 (tf2): Likewise.
2830 * tst-join6.c: New file.
2831 * Makefile (tests): Add tst-join6.
2832
f1762c0c
UD
28332006-08-03 Ulrich Drepper <drepper@redhat.com>
2834
9c06eb66
UD
2835 [BZ #2892]
2836 * pthread_setspecific.c (__pthread_setspecific): Check
2837 out-of-range index before checking for unused key.
2838
f1762c0c
UD
2839 * sysdeps/pthread/gai_misc.h: New file.
2840
7bb1b2c9
UD
28412006-08-01 Ulrich Drepper <drepper@redhat.com>
2842
2843 * sysdeps/unix/sysv/linux/i386/smp.h: New file. Old Linux-specific
2844 file. Don't use sysctl.
2845 * sysdeps/unix/sysv/linux/smp.h: Always assume SMP. Archs can
2846 overwrite the file if this is likely not true.
2847
b06e7e9a
UD
28482006-07-31 Daniel Jacobowitz <dan@codesourcery.com>
2849
2850 * allocatestack.c (__reclaim_stacks): Reset the PID on cached stacks.
2851 * Makefile (tests): Add tst-getpid3.
2852 * tst-getpid3.c: New file.
2853
b894c2ea
RM
28542006-07-30 Roland McGrath <roland@redhat.com>
2855
2856 * Makefile (libpthread-routines): Add ptw-sigsuspend.
2857
2858 * sysdeps/unix/sysv/linux/i386/not-cancel.h
2859 (pause_not_cancel): New macro.
2860 (nanosleep_not_cancel): New macro.
2861 (sigsuspend_not_cancel): New macro.
2862 * pthread_mutex_timedlock.c (pthread_mutex_timedlock): Use
2863 nanosleep_not_cancel macro from <not-cancel.h>.
2864 * pthread_mutex_lock.c (__pthread_mutex_lock): Use pause_not_cancel
2865 macro from <not-cancel.h>.
2866
df47504c
UD
28672006-07-28 Ulrich Drepper <drepper@redhat.com>
2868 Jakub Jelinek <jakub@redhat.com>
2869
2870 * descr.h: Change ENQUEUE_MUTEX and DEQUEUE_MUTEX for bit 0
2871 notification of PI mutex. Add ENQUEUE_MUTEX_PI.
2872 * pthreadP.h: Define PTHREAD_MUTEX_PI_* macros for PI mutex types.
2873 * pthread_mutex_setprioceilining.c: Adjust for mutex type name change.
2874 * pthread_mutex_init.c: Add support for priority inheritance mutex.
2875 * pthread_mutex_lock.c: Likewise.
2876 * pthread_mutex_timedlock.c: Likewise.
2877 * pthread_mutex_trylock.c: Likewise.
2878 * pthread_mutex_unlock.c: Likewise.
2879 * sysdeps/pthread/pthread_cond_broadcast.c: For PI mutexes wake
2880 all mutexes.
2881 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.c: Likewise.
2882 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.c: Likewise.
2883 * sysdeps/unix/sysv/linux/pthread-pi-defines.sym: New file.
2884 * sysdeps/unix/sysv/linux/Makefile (gen-as-const-header): Add
2885 pthread-pi-defines.sym.
2886 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Define FUTEX_LOCK_PI,
2887 FUTEX_UNLOCK_PI, and FUTEX_TRYLOCK_PI.
2888 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
d5ba53f9
UD
2889 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h: Likewise.
2890 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h: Likewise.
2891 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Likewise.
2892 * sysdeps/unix/sysv/linux/s390/lowlevellock.h: Likewise.
2893 * sysdeps/unix/sysv/linux/sh/lowlevellock.h: Likewise.
2894 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h: Likewise.
df47504c
UD
2895 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define
2896 _POSIX_THREAD_PRIO_INHERIT to 200112L.
2897 * tst-mutex1.c: Adjust to allow use in PI mutex test.
2898 * tst-mutex2.c: Likewise.
2899 * tst-mutex3.c: Likewise.
2900 * tst-mutex4.c: Likewise.
2901 * tst-mutex5.c: Likewise.
2902 * tst-mutex6.c: Likewise.
2903 * tst-mutex7.c: Likewise.
2904 * tst-mutex7a.c: Likewise.
2905 * tst-mutex8.c: Likewise.
2906 * tst-mutex9.c: Likewise.
2907 * tst-robust1.c: Likewise.
2908 * tst-robust7.c: Likewise.
2909 * tst-robust8.c: Likewise.
2910 * tst-mutexpi1.c: New file.
2911 * tst-mutexpi2.c: New file.
2912 * tst-mutexpi3.c: New file.
2913 * tst-mutexpi4.c: New file.
2914 * tst-mutexpi5.c: New file.
2915 * tst-mutexpi6.c: New file.
2916 * tst-mutexpi7.c: New file.
2917 * tst-mutexpi7a.c: New file.
2918 * tst-mutexpi8.c: New file.
2919 * tst-mutexpi9.c: New file.
2920 * tst-robust1.c: New file.
2921 * tst-robust2.c: New file.
2922 * tst-robust3.c: New file.
2923 * tst-robust4.c: New file.
2924 * tst-robust5.c: New file.
2925 * tst-robust6.c: New file.
2926 * tst-robust7.c: New file.
2927 * tst-robust8.c: New file.
2928 * Makefile (tests): Add the new tests.
2929
2930 * pthread_create.c (start_thread): Add some casts to avoid warnings.
2931 * pthread_mutex_destroy.c: Remove unneeded label.
2932
f3be81a9
UD
29332006-07-01 Ulrich Drepper <drepper@redhat.com>
2934
2935 * pthread_mutex_init.c (__pthread_mutex_init): Move some
2936 computations to compile time.
2937
c26ca5e1
UD
29382006-06-04 Ulrich Drepper <drepper@redhat.com>
2939
2940 * sysdeps/pthread/pthread.h: Add pthread_equal inline version.
2941
6f8a7dff
UD
29422006-05-15 Ulrich Drepper <drepper@redhat.com>
2943
c26ca5e1 2944 * sysdeps/unix/sysv/linux/fork.h: Mark __fork_handlers as hidden.
6f8a7dff 2945
3d237e42
UD
29462006-05-11 Ulrich Drepper <drepper@redhat.com>
2947
04974d63
UD
2948 * pthread_key_create.c (__pthread_key_create): Do away with
2949 __pthread_keys_lock.
2950
2951 * sysdeps/unix/sysv/linux/pthread_setaffinity.c
2952 (__kernel_cpumask_size): Mark as hidden.
2953 * sysdeps/unix/sysv/linux/pthread_attr_setaffinity.c: Likewise.
2954
3d237e42
UD
2955 * sem_open.c (__sem_mappings_lock): Mark as hidden.
2956 * semaphoreP.h (__sem_mappings_lock): Likewise.
2957
790fc6e4
UD
29582006-05-10 Ulrich Drepper <drepper@redhat.com>
2959
2960 * pthread_atfork.c: Mark __dso_handle as hidden.
2961
be434a72
UD
29622006-05-09 Ulrich Drepper <drepper@redhat.com>
2963
2964 [BZ #2644]
2965 * sysdeps/pthread/unwind-forcedunwind.c: Different solution for
2966 the reload problem. Change the one path in pthread_cancel_init
2967 which causes the problem. Force gcc to reload. Simplify callers.
2968 * sysdeps/unix/sysv/linux/ia64/unwind-forcedunwind.c
2969 (_Unwind_GetBSP): Undo last patch.
2970
3142b1ac
UD
29712006-05-07 Ulrich Drepper <drepper@redhat.com>
2972
bf3635d3
UD
2973 * sysdeps/unix/sysv/linux/ia64/unwind-forcedunwind.c: Make sure the
2974 function pointer is reloaded after pthread_cancel_init calls.
3142b1ac
UD
2975
2976 [BZ #2644]
2977 * sysdeps/pthread/unwind-forcedunwind.c: Make sure functions
2978 pointers are reloaded after pthread_cancel_init calls.
2979
27488789
UD
29802006-05-01 Ulrich Drepper <drepper@redhat.com>
2981
2982 * sysdeps/pthread/allocalim.h (__libc_use_alloca): Mark with
2983 __always_inline.
2984
a6375d11
UD
29852006-04-27 Ulrich Drepper <drepper@redhat.com>
2986
2987 * sysdeps/unix/sysv/linux/timer_routines.c (timer_helper_thread):
2988 Allocate new object which is passed to timer_sigev_thread so that
2989 the timer can be deleted before the new thread is scheduled.
2990
16a1d952
RM
29912006-04-26 Roland McGrath <roland@redhat.com>
2992
2993 * sysdeps/x86_64/tls.h: Include <asm/prctl.h> inside [! __ASSEMBLER__].
2994
7960f2a7
UD
29952006-04-08 Ulrich Drepper <drepper@redhat.com>
2996
ab9a9ff8
UD
2997 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Remove branch predicion
2998 suffix for conditional jumps.
2999 * sysdeps/unix/sysv/linux/i386/i486/sem_trywait.S: Likewise.
3000 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Likewise.
3001 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Likewise.
3002 * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S: Likewise.
3003 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: Likewise.
3004 * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S: Likewise.
3005
7960f2a7
UD
3006 * init.c (sigcancel_handler): Compare with correct PID even if the
3007 thread is in the middle of a fork call.
3008 (sighandler_setxid): Likewise.
3009 Reported by Suzuki K P <suzuki@in.ibm.com> .
3010
2035d91c
UD
30112006-04-07 Jakub Jelinek <jakub@redhat.com>
3012
3013 * pthreadP.h (FUTEX_TID_MASK): Sync with kernel.
3014
0292b0dd
UD
30152006-04-06 Ulrich Drepper <drepper@redhat.com>
3016
3017 * pthread_getattr_np.c (pthread_getattr_np): Close fp if getrlimit
3018 fails [Coverity CID 105].
3019
6738b3c0
UD
30202006-04-05 Ulrich Drepper <drepper@redhat.com>
3021
3022 * sysdeps/pthread/pthread.h: Add nonnull attributes.
3023
359157a5
RM
30242006-04-03 Steven Munroe <sjmunroe@us.ibm.com>
3025
3026 [BZ #2505]
3027 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h [_ARCH_PWR4]:
3028 Define __lll_rel_instr using lwsync.
3029
cd277b2d
UD
30302006-03-27 Ulrich Drepper <drepper@redhat.com>
3031
3032 * allocatestack.c (allocate_stack): Always initialize robust_head.
3033 * descr.h: Define struct robust_list_head.
3034 (struct pthread): Use robust_list_head in robust mutex list definition.
3035 Adjust ENQUEUE_MUTEX and DEQUEUE_MUTEX.
3036 * init.c [!__ASSUME_SET_ROBUST_LIST] (__set_robust_list_avail): Define.
3037 (__pthread_initialize_minimal_internal): Register robust_list with
3038 the kernel.
3039 * pthreadP.h: Remove PRIVATE_ from PTHREAD_MUTEX_ROBUST_* names.
3040 Declare __set_robust_list_avail.
3041 * pthread_create.c (start_thread): Register robust_list of new thread.
3042 [!__ASSUME_SET_ROBUST_LIST]: If robust_list is not empty wake up
3043 waiters.
3044 * pthread_mutex_destroy.c: For robust mutexes don't look at the
3045 number of users, it's unreliable.
3046 * pthread_mutex_init.c: Allow use of pshared robust mutexes if
3047 set_robust_list syscall is available.
3048 * pthread_mutex_consistent.c: Adjust for PTHREAD_MUTEX_ROBUST_* rename.
3049 * pthread_mutex_lock.c: Simplify robust mutex code a bit.
3050 Set robust_head.list_op_pending before trying to lock a robust mutex.
3051 * pthread_mutex_timedlock.c: Likewise.
3052 * pthread_mutex_trylock.c: Likewise.
3053 * pthread_mutex_unlock.c: Likewise for unlocking.
3054 * Makefile (tests): Add tst-robust8.
3055 * tst-robust8.c: New file.
3056
facac085
UD
30572006-03-08 Andreas Schwab <schwab@suse.de>
3058
3059 * sysdeps/unix/sysv/linux/ia64/dl-sysdep.h
3060 (DL_SYSINFO_IMPLEMENTATION): Add missing newline.
3061
7ccbe1a1
RM
30622006-03-05 Roland McGrath <roland@redhat.com>
3063
3064 * configure (libc_add_on): Disable add-on when $add_ons_automatic = yes
3065 and $config_os doesn't match *linux*.
3066
043cee37
RM
30672006-03-05 David S. Miller <davem@sunset.davemloft.net>
3068
3069 * sysdeps/unix/sysv/linux/sparc/sparc32/pt-vfork.S:
3070 Use __syscall_error.
3071 * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h: Likewise.
3072 * sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S: Likewise.
3073 * sysdeps/unix/sysv/linux/sparc/sparc64/pt-vfork.S: Likewise.
3074 * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h: Likewise.
3075 * sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S: Likewise.
3076 * sysdeps/unix/sysv/linux/sparc/Makefile: New file.
3077
88bce79e
UD
30782006-03-02 Ulrich Drepper <drepper@redhat.com>
3079
3080 * sysdeps/unix/sysv/linux/aio_misc.h: Various cleanups.
3081
672ec465
UD
30822006-03-01 Ulrich Drepper <drepper@redhat.com>
3083
3084 * sysdeps/unix/sysv/linux/x86_64/lowlevelrobustlock.S
3085 (__lll_robust_lock_wait): Also set FUTEX_WAITERS bit if we got the
3086 mutex.
3087 (__lll_robust_timedlock_wait): Likewise.
3088 * sysdeps/unix/sysv/linux/i386/i486/lowlevelrobustlock.S
3089 (__lll_robust_lock_wait): Likewise.
3090 (__lll_robust_timedlock_wait): Likewise.
3091 * sysdeps/unix/sysv/linux/lowlevelrobustlock.c
3092 (__lll_robust_lock_wait): Likewise.
3093 (__lll_robust_timedlock_wait): Likewise.
3094
c4a4875d
RM
30952006-03-01 Jakub Jelinek <jakub@redhat.com>
3096
3097 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h (lll_robust_mutex_dead,
3098 lll_robust_mutex_trylock, lll_robust_mutex_lock,
3099 lll_robust_mutex_cond_lock, lll_robust_mutex_timedlock,
3100 lll_robust_mutex_unlock): Define.
3101 (__lll_robust_lock_wait, __lll_robust_timedlock_wait): New prototypes.
3102
3192fd8e
RM
31032006-02-28 H.J. Lu <hongjiu.lu@intel.com>
3104
3105 * sysdeps/unix/sysv/linux/ia64/clone2.S: Include <clone2.S>
3106 instead of <clone.S>.
3107
14d44b19
RM
31082006-02-27 Jakub Jelinek <jakub@redhat.com>
3109
3110 * Makefile (libpthread-routines): Add
3111 pthread_mutexattr_[sg]etprotocol, pthread_mutexattr_[sg]etprioceiling
3112 and pthread_mutex_[sg]etprioceiling.
3113 * Versions (GLIBC_2.4): Export pthread_mutexattr_getprotocol,
3114 pthread_mutexattr_setprotocol, pthread_mutexattr_getprioceiling,
3115 pthread_mutexattr_setprioceiling, pthread_mutex_getprioceiling and
3116 pthread_mutex_setprioceiling.
3117 * sysdeps/pthread/pthread.h (PTHREAD_PRIO_NONE, PTHREAD_PRIO_INHERIT,
3118 PTHREAD_PRIO_PROTECT): New enum values.
3119 (pthread_mutexattr_getprotocol, pthread_mutexattr_setprotocol,
3120 pthread_mutexattr_getprioceiling, pthread_mutexattr_setprioceiling,
3121 pthread_mutex_getprioceiling, pthread_mutex_setprioceiling): New
3122 prototypes.
3123 * pthreadP.h (PTHREAD_MUTEX_PRIO_INHERIT_PRIVATE_NP,
3124 PTHREAD_MUTEX_PRIO_PROTECT_PRIVATE_NP): New enum values.
3125 (PTHREAD_MUTEX_PRIO_CEILING_SHIFT, PTHREAD_MUTEX_PRIO_CEILING_MASK):
3126 Define.
3127 (PTHREAD_MUTEXATTR_PROTOCOL_SHIFT, PTHREAD_MUTEXATTR_PROTOCOL_MASK,
3128 PTHREAD_MUTEXATTR_PRIO_CEILING_SHIFT,
3129 PTHREAD_MUTEXATTR_PRIO_CEILING_MASK): Define.
3130 (PTHREAD_MUTEXATTR_FLAG_BITS): Or in PTHREAD_MUTEXATTR_PROTOCOL_MASK
3131 and PTHREAD_MUTEXATTR_PRIO_CEILING_MASK.
3132 * pthread_mutex_init.c (__pthread_mutex_init): For the time being
3133 return ENOTSUP for PTHREAD_PRIO_INHERIT or PTHREAD_PRIO_PROTECT
3134 protocol mutexes.
3135 * pthread_mutex_getprioceiling.c: New file.
3136 * pthread_mutex_setprioceiling.c: New file.
3137 * pthread_mutexattr_getprioceiling.c: New file.
3138 * pthread_mutexattr_setprioceiling.c: New file.
3139 * pthread_mutexattr_getprotocol.c: New file.
3140 * pthread_mutexattr_setprotocol.c: New file.
3141
62f6b9b2
RM
31422006-02-27 Daniel Jacobowitz <dan@codesourcery.com>
3143
3144 * sysdeps/unix/sysv/linux/aio_misc.h: Include <limits.h>.
3145
e0a3ed4f
RM
31462006-02-27 Roland McGrath <roland@redhat.com>
3147
3148 * sysdeps/pthread/Subdirs: List nptl here too.
3149 * configure (libc_add_on_canonical): New variable.
3150
3151 * sysdeps/unix/sysv/linux/sh/sh4/lowlevellock.h: Use #include_next.
3152
3153 * sysdeps/unix/sysv/linux/sleep.c: Use #include_next after #include of
3154 self to get main source tree's file.
3155 * sysdeps/unix/sysv/linux/alpha/clone.S: Likewise.
3156 * sysdeps/unix/sysv/linux/i386/clone.S: Likewise.
3157 * sysdeps/unix/sysv/linux/i386/vfork.S: Likewise.
3158 * sysdeps/unix/sysv/linux/ia64/clone2.S: Likewise.
3159 * sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S: Likewise.
3160 * sysdeps/unix/sysv/linux/powerpc/powerpc64/clone.S: Likewise.
3161 * sysdeps/unix/sysv/linux/s390/s390-32/clone.S: Likewise.
3162 * sysdeps/unix/sysv/linux/s390/s390-64/clone.S: Likewise.
3163 * sysdeps/unix/sysv/linux/sh/clone.S: Likewise.
3164 * sysdeps/unix/sysv/linux/sparc/sparc32/clone.S: Likewise.
3165 * sysdeps/unix/sysv/linux/sparc/sparc64/clone.S: Likewise.
3166 * sysdeps/unix/sysv/linux/x86_64/clone.S: Likewise.
3167 * sysdeps/unix/sysv/linux/x86_64/vfork.S: Likewise.
3168
3169 * Makefile: Use $(sysdirs) in vpath directive.
3170
3171 * sysdeps/pthread/Makefile (CFLAGS-libc-start.c): Variable removed.
3172 (CPPFLAGS-timer_routines.c): Likewise.
3173
3174 * Makeconfig (includes): Variable removed.
3175
84cfa284
RM
31762006-02-26 Roland McGrath <roland@redhat.com>
3177
3178 * sysdeps/generic/pt-raise.c: Moved to ...
3179 * pt-raise.c: ... here.
3180 * sysdeps/generic/lowlevellock.h: Moved to ...
3181 * lowlevellock.h: ... here.
3182
c5132ca1
RM
31832006-02-23 Roland McGrath <roland@redhat.com>
3184
3185 * descr.h (struct pthread): Add final member `end_padding'.
3186 (PTHREAD_STRUCT_END_PADDING): Use it.
3187
31882006-02-20 Roland McGrath <roland@redhat.com>
3189
3190 * sysdeps/mips: Directory removed, saved in ports repository.
3191 * sysdeps/unix/sysv/linux/mips: Likewise.
3192
a93317a1
UD
31932006-02-18 Ulrich Drepper <drepper@redhat.com>
3194
3195 * tst-robust1.c: Add second mutex to check that the mutex list is
3196 handled correctly.
3197
f1740bc4
UD
31982006-02-17 Jakub Jelinek <jakub@redhat.com>
3199
3200 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h (lll_robust_mutex_dead,
3201 lll_robust_mutex_trylock, lll_robust_mutex_lock,
3202 lll_robust_mutex_cond_lock, lll_robust_mutex_timedlock,
3203 lll_robust_mutex_unlock): New macros.
3204 (__lll_robust_lock_wait, __lll_robust_timedlock_wait): New prototypes.
3205 * sysdeps/unix/sysv/linux/s390/lowlevellock.h: Likewise.
3206 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Likewise.
3207 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h: Likewise.
3208 * sysdeps/unix/sysv/linux/lowlevelrobustlock.c: New file.
3209
a7245bf5
UD
32102006-02-17 Kaz Kojima <kkojima@rr.iij4u.or.jp>
3211
3212 * sysdeps/unix/sysv/linux/sh/lowlevellock.h: Add lll_robust_mutex_*
3213 definitions.
3214 * sysdeps/unix/sysv/linux/sh/lowlevelrobustlock.S: New file.
3215
49bfc1fe
UD
32162006-02-17 Ulrich Drepper <drepper@redhat.com>
3217
3218 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h
3219 (lll_robust_mutex_unlock): Avoid unnecessary wakeups.
3220 * sysdeps/unix/sysv/linux/i386/lowlevellock.h
3221 (lll_robust_mutex_unlock): Likewise.
3222
56e987ac
UD
32232006-02-13 Jakub Jelinek <jakub@redhat.com>
3224
3225 * descr.h [!__PTHREAD_MUTEX_HAVE_PREV] (DEQUEUE_MUTEX):
3226 Set robust_list.__next rather than robust_list.
3227 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h
3228 (__pthread_list_t): New typedef.
3229 (pthread_mutex_t): Replace __next and __prev fields with __list.
3230 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h
3231 (__pthread_list_t): New typedef.
3232 (pthread_mutex_t): Replace __next and __prev fields with __list.
3233 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h
3234 (__pthread_list_t, __pthread_slist_t): New typedefs.
3235 (pthread_mutex_t): Replace __next and __prev fields with __list.
3236 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h
3237 (__pthread_list_t, __pthread_slist_t): New typedefs.
3238 (pthread_mutex_t): Replace __next and __prev fields with __list.
3239 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h
3240 (__pthread_list_t, __pthread_slist_t): New typedefs.
3241 (pthread_mutex_t): Replace __next and __prev fields with __list.
3242 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h
3243 (__pthread_slist_t): New typedef.
3244 (pthread_mutex_t): Replace __next field with __list.
3245
683040c3
UD
32462006-02-15 Ulrich Drepper <drepper@redhat.com>
3247
25bc77e6 3248 * pthreadP.h: Define PTHREAD_MUTEX_INCONSISTENT instead of
683040c3
UD
3249 PTHREAD_MUTEX_OWNERDEAD.
3250 (PTHREAD_MUTEX_ROBUST_PRIVATE_NP): Define as 16, not 256.
3251 Define FUTEX_WAITERS, FUTEX_OWNER_DIED, FUTEX_TID_MASK.
3252 * Makefile (libpthread-routines): Add lowlevelrobustlock.
3253 * pthread_create.c (start_thread): Very much simplify robust_list loop.
3254 * pthread_mutex_consistent.c: Inconsistent mutex have __owner now set
3255 to PTHREAD_MUTEX_INCONSISTENT.
3256 * pthread_mutex_destroy.c: Allow destroying of inconsistent mutexes.
3257 * pthread_mutex_lock.c: Reimplement robust mutex handling.
3258 * pthread_mutex_trylock.c: Likewise.
3259 * pthread_mutex_timedlock.c: Likewise.
3260 * pthread_mutex_unlock.c: Likewise.
3261 * sysdeps/unix/sysv/linux/pthread_mutex_cond_lock.c: Likewise.
3262 * sysdeps/unix/sysv/linux/Makefile (gen-as-const-headers): Add
3263 lowlevelrobustlock.sym.
3264 * sysdeps/unix/sysv/linux/lowlevelrobustlock.sym: New file.
3265 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Add lll_robust_mutex_*
3266 definitions.
3267 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
3268 * sysdeps/unix/sysv/linux/i386/i486/lowlevelrobustlock.S: New file.
3269 * sysdeps/unix/sysv/linux/i386/i586/lowlevelrobustlock.S: New file.
3270 * sysdeps/unix/sysv/linux/i386/i686/lowlevelrobustlock.S: New file.
3271 * sysdeps/unix/sysv/linux/x86_64/lowlevelrobustlock.S: New file.
3272
bbf209a4
UD
32732006-02-12 Ulrich Drepper <drepper@redhat.com>
3274
b007ce7c
UD
3275 * allocatestack.c (allocate_stack): Initialize robust_list.
3276 * init.c (__pthread_initialize_minimal_internal): Likewise.
3277 * descr.h (struct xid_command): Pretty printing.
3278 (struct pthread): Use __pthread_list_t or __pthread_slist_t for
3279 robust_list. Adjust macros.
3280 * pthread_create.c (start_thread): Adjust robust_list handling.
3281 * phtread_mutex_unlock.c: Don't allow unlocking from any thread
3282 but the owner for all robust mutex types.
3283 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Define
3284 __pthread_list_t and __pthread_slist_t. Use them in pthread_mutex_t.
0ca3379d 3285 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
b007ce7c
UD
3286 * sysdeps/pthread/pthread.h: Adjust mutex initializers.
3287
bbf209a4 3288 * sysdeps/unix/sysv/linux/i386/not-cancel.h: Define openat_not_cancel,
b42a214c 3289 openat_not_cancel_3, openat64_not_cancel, and openat64_not_cancel_3.
bbf209a4 3290
b576fca1
UD
32912006-02-08 Jakub Jelinek <jakub@redhat.com>
3292
3293 * sysdeps/unix/sysv/linux/i386/lowlevellock.h (lll_futex_wait,
3294 lll_futex_timedwait, lll_wait_tid): Add "memory" clobber.
3295
a6df7387
UD
32962006-01-20 Kaz Kojima <kkojima@rr.iij4u.or.jp>
3297
3298 * sysdeps/unix/sysv/linux/sh/lowlevellock.h (lll_futex_wait):
3299 Return status.
3300 (lll_futex_timed_wait): Define.
3301
7c65e900
UD
33022006-01-19 Ulrich Drepper <drepper@redhat.com>
3303
3304 * tst-cancel4.c: Test ppoll.
3305
5f9f21e8
AJ
33062006-01-18 Andreas Jaeger <aj@suse.de>
3307
cf407dfb 3308 [BZ #2167]
5f9f21e8
AJ
3309 * sysdeps/unix/sysv/linux/mips/bits/pthreadtypes.h
3310 (pthread_mutex_t): Follow changes for other archs. Based on patch
3311 by Jim Gifford <patches@jg555.com>.
3312
251278c6
UD
33132006-01-13 Richard Henderson <rth@redhat.com>
3314
3315 * sysdeps/alpha/tls.h (tcbhead_t): Rename member to __private.
3316
de59a291
RM
33172006-01-10 Roland McGrath <roland@redhat.com>
3318
3319 * sysdeps/alpha/jmpbuf-unwind.h: File moved to main source tree.
3320 * sysdeps/i386/jmpbuf-unwind.h: Likewise.
3321 * sysdeps/mips/jmpbuf-unwind.h: Likewise.
3322 * sysdeps/powerpc/jmpbuf-unwind.h: Likewise.
3323 * sysdeps/s390/jmpbuf-unwind.h: Likewise.
3324 * sysdeps/sh/jmpbuf-unwind.h: Likewise.
3325 * sysdeps/sparc/sparc32/jmpbuf-unwind.h: Likewise.
3326 * sysdeps/sparc/sparc64/jmpbuf-unwind.h: Likewise.
3327 * sysdeps/x86_64/jmpbuf-unwind.h: Likewise.
0ca13e14 3328 * sysdeps/unix/sysv/linux/ia64/jmpbuf-unwind.h: Likewise.
de59a291 3329
931786ee
RM
33302006-01-09 Roland McGrath <roland@redhat.com>
3331
5d42c8c3
RM
3332 * tst-initializers1-c89.c: New file.
3333 * tst-initializers1-c99.c: New file.
3334 * tst-initializers1-gnu89.c: New file.
3335 * tst-initializers1-gnu99.c: New file.
3336 * Makefile (tests): Add them.
3337 (CFLAGS-tst-initializers1-c89.c): New variable.
3338 (CFLAGS-tst-initializers1-c99.c): New variable.
3339 (CFLAGS-tst-initializers1-gnu89.c): New variable.
3340 (CFLAGS-tst-initializers1-gnu99.c): New variable.
3341
931786ee
RM
3342 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_mutex_t):
3343 Use __extension__ on anonymous union definition.
3344 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
3345 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Likewise.
3346 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
3347 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
3c238452 3348 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: Likewise.
931786ee 3349
8dd18431
RM
33502006-01-08 Jakub Jelinek <jakub@redhat.com>
3351
3352 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h (pthread_mutex_t):
3353 Don't give the union a name because it changes the mangled name.
3354 Instead name the struct for __data.
3355 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h (pthread_mutex_t):
3356 Likewise.
3357 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h (pthread_mutex_t):
3358 Likewise.
3359
ae11e412
UD
33602006-01-09 Jakub Jelinek <jakub@redhat.com>
3361
3362 * sysdeps/sparc/sparc64/jmpbuf-unwind.h (_JMPBUF_UNWINDS_ADJ): Add
3363 stack bias to mc_ftp field.
3364
c6885aa1
UD
33652006-01-07 Ulrich Drepper <drepper@redhat.com>
3366
3367 * sysdeps/pthread/aio_misc.h (AIO_MISC_WAIT): Work around gcc
6e741bc3 3368 being too clever and reloading the futex value where it shouldn't.
c6885aa1 3369
ae4ad00a
UD
33702006-01-06 Ulrich Drepper <drepper@redhat.com>
3371
3372 * descr.h [!__PTHREAD_MUTEX_HAVE_PREV] (DEQUEUE_MUTEX): Use
3373 correct type.
3374
ced368f7
UD
33752006-01-06 Jakub Jelinek <jakub@redhat.com>
3376
3377 * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h (PSEUDO):
3378 Add cfi directives.
3379
d804f5df
UD
33802006-01-06 Ulrich Drepper <drepper@redhat.com>
3381
cbbbb188 3382 * sysdeps/ia64/tls.h (tcbhead_t): Rename private member to __private.
719046c1
UD
3383 * sysdeps/ia64/tcb-offsets.sym: Adjust for private->__private
3384 rename in tcbhead_t.
3385
d804f5df
UD
3386 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_mutex_t):
3387 Don't give the union a name because it changes the mangled name.
3388 Instead name the struct for __data.
3389 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
3390 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
3391 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
3392 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
3393 * pthread_create.c (start_thread): Adjust robust mutex free loop.
3394 * descr.h (ENQUEUE_MUTEX, DEQUEUE_MUTEX): Adjust.
3395
679d83ba
UD
33962006-01-05 Ulrich Drepper <drepper@redhat.com>
3397
3398 * sysdeps/unix/sysv/linux/i386/lowlevellock.h (lll_futex_wait):
3399 Return status.
3400 (lll_futex_timed_wait): Define.
3401 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
3402 * sysdeps/pthread/aio_misc.h: New file.
3403
06dc5bf3
RM
34042006-01-03 Joseph S. Myers <joseph@codesourcery.com>
3405
3406 * Makefile ($(objpfx)$(multidir)): Use mkdir -p.
3407
9759bbf1
UD
34082006-01-03 Steven Munroe <sjmunroe@us.ibm.com>
3409
3410 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h
3411 (PSEUDO): Remove redundant cfi_startproc and cfi_endproc directives.
3412 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h: Likewise.
3413
db59b28b
UD
34142006-01-04 Ulrich Drepper <drepper@redhat.com>
3415
3416 * tst-cancel24.cc: Use C headers instead of C++ headers.
3417
b01fe5f7
UD
34182006-01-03 Jakub Jelinek <jakub@redhat.com>
3419
3420 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h: Remove #error for
3421 sparc-linux configured glibc.
3422 (lll_futex_wake_unlock): Define to 1 for sparc-linux configured glibc.
3423 (__lll_mutex_trylock, __lll_mutex_cond_trylock, __lll_mutex_lock,
3424 __lll_mutex_cond_lock, __lll_mutex_timedlock): Use
3425 atomic_compare_and_exchange_val_24_acq instead of
3426 atomic_compare_and_exchange_val_acq.
3427 (lll_mutex_unlock, lll_mutex_unlock_force): Use atomic_exchange_24_rel
3428 instead of atomic_exchange_rel.
3429 * sysdeps/unix/sysv/linux/sparc/sparc32/lowlevellock.c: New file.
3430 * sysdeps/unix/sysv/linux/sparc/sparc32/pthread_barrier_init.c: New
3431 file.
3432 * sysdeps/unix/sysv/linux/sparc/sparc32/pthread_barrier_wait.c: New
3433 file.
3434 * sysdeps/unix/sysv/linux/sparc/sparc32/sem_init.c: New file.
3435 * sysdeps/unix/sysv/linux/sparc/sparc32/sem_post.c: New file.
3436 * sysdeps/unix/sysv/linux/sparc/sparc32/sem_timedwait.c: New file.
3437 * sysdeps/unix/sysv/linux/sparc/sparc32/sem_trywait.c: New file.
3438 * sysdeps/unix/sysv/linux/sparc/sparc32/sem_wait.c: New file.
3439 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/pthread_barrier_init.c:
3440 New file.
3441 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/pthread_barrier_wait.c:
3442 New file.
3443 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_init.c: New file.
3444 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_post.c: New file.
3445 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_timedwait.c: New
3446 file.
3447 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_trywait.c: New
3448 file.
3449 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_wait.c: New file.
3450
35c2fd59
UD
34512006-01-03 Ulrich Drepper <drepper@redhat.com>
3452
3453 * sysdeps/pthread/pthread.h [__WORDSIZE==64]: Don't use cast in
3454 mutex initializers.
3455
305bb37e
UD
34562006-01-02 Jakub Jelinek <jakub@redhat.com>
3457
3458 * sysdeps/sparc/tls.h (tcbhead_t): Add pointer_guard field.
3459 (THREAD_GET_POINTER_GUARD, THREAD_SET_POINTER_GUARD,
3460 THREAD_COPY_POINTER_GUARD): Define.
3461 * sysdeps/sparc/tcb-offsets.sym (POINTER_GUARD): Define.
3462 * sysdeps/sparc/sparc64/jmpbuf-unwind.h: Revert 2005-12-27 changes.
3463
cc792128
UD
34642006-01-01 Ulrich Drepper <drepper@redhat.com>
3465
3466 * version.c: Update copyright year.
3467
db0a00d3
UD
34682005-12-29 Kaz Kojima <kkojima@rr.iij4u.or.jp>
3469
3470 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h: Remove explicit
3471 .eh_frame section, use cfi_* directives.
3472 * sysdeps/unix/sysv/linux/sh/lowlevellock.S: Add cfi instrumentation.
3473
b36205c4
UD
34742005-12-30 Ulrich Drepper <drepper@redhat.com>
3475
3476 * sysdeps/unix/sysv/linux/ia64/jmpbuf-unwind.h: Undo last change for
3477 now.
3478
8b4f1598
UD
34792005-12-29 Ulrich Drepper <drepper@redhat.com>
3480
3481 * sysdeps/pthread/sigaction.c: Removed.
3482 * sigaction.c: New file.
3483 * sysdeps/unix/sysv/linux/Makefile: Define CFLAGS-sigaction.c.
3484
fec5592d
UD
34852005-12-28 Ulrich Drepper <drepper@redhat.com>
3486
3487 * Makefile (tests): Add tst-signal7.
3488 * tst-signal7.c: New file.
3489
db169ed5
RM
34902005-12-27 Roland McGrath <roland@redhat.com>
3491
3492 * sysdeps/x86_64/jmpbuf-unwind.h (_jmpbuf_sp): New inline function.
3493 (_JMPBUF_UNWINDS_ADJ): Use it, to PTR_DEMANGLE before comparison.
3494 * sysdeps/alpha/jmpbuf-unwind.h: Likewise.
3495 * sysdeps/i386/jmpbuf-unwind.h: Likewise.
3496 * sysdeps/mips/jmpbuf-unwind.h: Likewise.
3497 * sysdeps/powerpc/jmpbuf-unwind.h: Likewise.
3498 * sysdeps/s390/jmpbuf-unwind.h: Likewise.
3499 * sysdeps/sh/jmpbuf-unwind.h: Likewise.
3500 * sysdeps/sparc/sparc32/jmpbuf-unwind.h: Likewise.
3501 * sysdeps/sparc/sparc64/jmpbuf-unwind.h: Likewise.
3502 * sysdeps/unix/sysv/linux/ia64/jmpbuf-unwind.h: Likewise.
3503
bfffffae
UD
35042005-12-27 Jakub Jelinek <jakub@redhat.com>
3505
3506 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h: Add __next
3507 and __prev field to pthread_mutex_t.
3508 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
3509 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
3510 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
3511 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: Likewise.
3512 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Add __next field
3513 to pthread_mutex_t.
3514
1bcfb5a5
UD
35152005-12-26 Ulrich Drepper <drepper@redhat.com>
3516
3517 * pthreadP.h: Define PTHREAD_MUTEX_ROBUST_PRIVATE_NP,
3518 PTHREAD_MUTEX_ROBUST_PRIVATE_RECURSIVE_NP,
3519 PTHREAD_MUTEX_ROBUST_PRIVATE_ERRORCHECK_NP,
3520 PTHREAD_MUTEX_ROBUST_PRIVATE_ADAPTIVE_NP,
3521 PTHREAD_MUTEXATTR_FLAG_ROBUST, PTHREAD_MUTEXATTR_FLAG_PSHARED,
3522 and PTHREAD_MUTEXATTR_FLAG_BITS.
3523 * descr.h (struct pthread): Add robust_list field and define
3524 ENQUEUE_MUTEX and DEQUEUE_MUTEX macros.
3525 * pthread_mutexattr_getrobust.c: New file.
3526 * pthread_mutexattr_setrobust.c: New file.
3527 * pthread_mutex_consistent.c: New file.
3528 * sysdeps/pthread/pthread.h: Declare pthread_mutexattr_getrobust,
3529 pthread_mutexattr_setrobust, and pthread_mutex_consistent.
3530 Define PTHREAD_MUTEX_STALLED_NP and PTHREAD_MUTEX_ROBUST_NP.
3531 Adjust pthread_mutex_t initializers.
3532 * nptl/sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Add __next
3533 field to pthread_mutex_t.
3534 * nptl/sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Add __next
3535 and __prev field to pthread_mutex_t.
3536 * Versions [GLIBC_2.4]: Export pthread_mutexattr_getrobust_np,
3537 pthread_mutexattr_setrobust_np, and pthread_mutex_consistent_np.
3538 * pthread_mutexattr_getpshared.c: Use PTHREAD_MUTEXATTR_FLAG_PSHARED
3539 and PTHREAD_MUTEXATTR_FLAG_BITS macros instead of magic numbers.
3540 * pthread_mutexattr_gettype.c: Likewise.
3541 * pthread_mutexattr_setpshared.c: Likewise.
3542 * pthread_mutexattr_settype.c: Likewise.
3543 * pthread_mutex_init.c: Reject robust+pshared attribute for now.
3544 Initialize mutex kind according to robust flag.
3545 * pthread_mutex_lock.c: Implement local robust mutex.
3546 * pthread_mutex_timedlock.c: Likewise.
3547 * pthread_mutex_trylock.c: Likewise.
3548 * pthread_mutex_unlock.c: Likewise.
3549 * pthread_create.c (start_thread): Mark robust mutexes which remained
3550 locked as dead.
3551 * tst-robust1.c: New file.
3552 * tst-robust2.c: New file.
3553 * tst-robust3.c: New file.
3554 * tst-robust4.c: New file.
3555 * tst-robust5.c: New file.
3556 * tst-robust6.c: New file.
3557 * tst-robust7.c: New file.
3558 * Makefile (libpthread-routines): Add pthread_mutexattr_getrobust,
3559 pthread_mutexattr_setrobust, and pthread_mutex_consistent.
3560 (tests): Add tst-robust1, tst-robust2, tst-robust3, tst-robust4,
3561 tst-robust5, tst-robust6, and tst-robust7.
3562
3563 * tst-typesizes.c: New file.
3564 * Makefile (tests): Add tst-typesizes.
3565
3566 * tst-once3.c: More debug output.
3567
9333ed0d
UD
35682005-12-24 Ulrich Drepper <drepper@redhat.com>
3569
d4d138a4
UD
3570 * pthread_mutex_trylock.c (__pthread_mutex_trylock): Add break
3571 missing after last change.
3572
bfffffae 3573 * version.c: Update copyright year.
9333ed0d 3574
dcc73a8d
UD
35752005-12-23 Ulrich Drepper <drepper@redhat.com>
3576
3577 * pthread_mutex_destroy.c: Set mutex type to an invalid value.
3578 * pthread_mutex_lock.c: Return EINVAL for invalid mutex type.
3579 * pthread_mutex_trylock.c: Likewise.
3580 * pthread_mutex_timedlock.c: Likewise.
3581 * pthread_mutex_unlock.c: Likewise.
3582
879f3ca6
RM
35832005-12-22 Roland McGrath <roland@redhat.com>
3584
3585 * sysdeps/pthread/sigaction.c: Use "" instead of <> to include self,
3586 so that #include_next's search location is not reset to the -I..
3587 directory where <nptl/...> can be found.
3588
077a0da7
UD
35892005-12-22 Ulrich Drepper <drepper@redhat.com>
3590
3591 [BZ #1913]
3592 * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S (__new_sem_wait):
3593 Fix unwind info. Remove useless branch prediction prefix.
7735afa2
UD
3594 * tst-cancel24.cc: New file.
3595 * Makefile: Add rules to build and run tst-cancel24.
077a0da7 3596
8dea90aa
RM
35972005-12-21 Roland McGrath <roland@redhat.com>
3598
3599 * libc-cancellation.c: Use <> rather than "" #includes.
3600 * pt-cleanup.c: Likewise.
3601 * pthread_create.c: Likewise.
3602 * pthread_join.c: Likewise.
3603 * pthread_timedjoin.c: Likewise.
3604 * pthread_tryjoin.c: Likewise.
3605 * sysdeps/unix/sysv/linux/libc_pthread_init.c: Likewise.
3606 * sysdeps/unix/sysv/linux/register-atfork.c: Likewise.
3607 * sysdeps/unix/sysv/linux/unregister-atfork.c: Likewise.
3608 * unwind.c: Likewise.
3609
8da21f96
UD
36102005-12-19 Kaz Kojima <kkojima@rr.iij4u.or.jp>
3611
3612 * sysdeps/sh/tcb-offsets.sym: Add POINTER_GUARD.
3613 * sysdeps/sh/tls.h (tcbhead_t): Remove private and add pointer_guard.
3614 (THREAD_GET_POINTER_GUARD, THREAD_SET_POINTER_GUARD,
3615 THREAD_COPY_POINTER_GUARD): Define.
3616
00c2b3b9
UD
36172005-12-19 Jakub Jelinek <jakub@redhat.com>
3618
3619 * sysdeps/ia64/tls.h (TLS_PRE_TCB_SIZE): Make room for 2 uintptr_t's
3620 rather than one.
3621 (THREAD_GET_POINTER_GUARD, THREAD_SET_POINTER_GUARD,
3622 THREAD_COPY_POINTER_GUARD): Define.
3623 * sysdeps/powerpc/tcb-offsets.sym (POINTER_GUARD): Add.
3624 * sysdeps/powerpc/tls.h (tcbhead_t): Add pointer_guard field.
3625 (THREAD_GET_POINTER_GUARD, THREAD_SET_POINTER_GUARD,
3626 THREAD_COPY_POINTER_GUARD): Define.
3627 * sysdeps/s390/tcb-offsets.sym (STACK_GUARD): Add.
3628 * sysdeps/s390/tls.h (THREAD_GET_POINTER_GUARD,
3629 THREAD_SET_POINTER_GUARD, THREAD_COPY_POINTER_GUARD): Define.
3630 * sysdeps/unix/sysv/linux/ia64/__ia64_longjmp.S (__ia64_longjmp):
3631 Use PTR_DEMANGLE for B0 if defined.
3632
827b7087
UD
36332005-12-17 Ulrich Drepper <drepper@redhat.com>
3634
3635 * pthread_create.c (__pthread_create_2_1): Use
3636 THREAD_COPY_POINTER_GUARD if available.
3637 * sysdeps/i386/tcb-offsets.sym: Add POINTER_GUARD.
3638 * sysdeps/x86_64/tcb-offsets.sym: Likewise.
3639 * sysdeps/i386/tls.h (tcbhead_t): Add pointer_guard.
3640 Define THREAD_SET_POINTER_GUARD and THREAD_COPY_POINTER_GUARD.
3641 * sysdeps/x86_64/tls.h: Likewise.
3642
2826ac7e
RM
36432005-12-15 Roland McGrath <roland@redhat.com>
3644
3645 * sysdeps/unix/sysv/linux/mq_notify.c: Don't use sysdeps/generic.
3646
b6ab06ce
UD
36472005-12-13 Ulrich Drepper <drepper@redhat.com>
3648
3649 * sysdeps/pthread/sigfillset.c: Adjust for files moved out of
3650 sysdeps/generic.
3651 * errno-loc.c: New file.
3652
f0d1a3b5
RM
36532005-12-12 Roland McGrath <roland@redhat.com>
3654
3655 * init.c (__pthread_initialize_minimal_internal): Do __static_tls_size
3656 adjustments before choosing stack size. Update minimum stack size
3657 calculation to match allocate_stack change.
3658
db13ddbc
UD
36592005-12-12 Ulrich Drepper <drepper@redhat.com>
3660
3661 * allocatestack.c (allocate_stack): Don't demand that there is an
3662 additional full page available on the stack beside guard, TLS, the
3663 minimum stack.
3664
088f460f
UD
36652005-11-24 Ulrich Drepper <drepper@redhat.com>
3666
3667 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h
3668 (__cleanup_fct_attribute): Use __regparm__ not regparm.
3669
3670 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: When
3671 compiling 32-bit code we must define __cleanup_fct_attribute.
3672
16feadf2
UD
3673005-11-24 Jakub Jelinek <jakub@redhat.com>
3674
3675 [BZ #1920]
3676 * sysdeps/pthread/pthread.h (__pthread_unwind_next): Use
3677 __attribute__ instead of __attribute.
3678 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h
3679 (__cleanup_fct_attribute): Likewise.
3680
e6e493bb
UD
36812005-11-17 Jakub Jelinek <jakub@redhat.com>
3682
3683 * sysdeps/pthread/unwind-forcedunwind.c (pthread_cancel_init): Put
3684 a write barrier before writing libgcc_s_getcfa.
3685
8e635611
UD
36862005-11-06 Ulrich Drepper <drepper@redhat.com>
3687
3688 * sysdeps/unix/sysv/linux/configure: Removed.
3689
ce33ee7c
UD
36902005-11-05 Ulrich Drepper <drepper@redhat.com>
3691
3692 * sysdeps/unix/sysv/linux/ia64/pt-initfini.c: Remove trace of
3693 optional init_array/fini_array support.
3694
20d511e0
RM
36952005-10-24 Roland McGrath <roland@redhat.com>
3696
3697 * sysdeps/unix/sysv/linux/x86_64/sem_trywait.S: Remove unnecessary
3698 versioned_symbol use.
3699
fe60d146
RM
37002005-10-16 Roland McGrath <roland@redhat.com>
3701
3702 * init.c (__pthread_initialize_minimal_internal): Even when using a
3703 compile-time default stack size, apply the minimum that allocate_stack
3704 will require, and round up to page size.
3705
0faa1cf5
RM
37062005-10-10 Daniel Jacobowitz <dan@codesourcery.com>
3707
3708 * Makefile ($(test-modules)): Remove static pattern rule.
3709
f9126cc2 37102005-10-14 Jakub Jelinek <jakub@redhat.com>
b42a214c 3711 Ulrich Drepper <drepper@redhat.com>
f9126cc2
UD
3712
3713 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Fix stack
3714 alignment in callback function.
3715 * Makefile: Add rules to build and run tst-align3.
3716 * tst-align3.c: New file.
3717
015a5d22
RM
37182005-10-03 Jakub Jelinek <jakub@redhat.com>
3719
3720 * allocatestack.c (setxid_signal_thread): Add
3721 INTERNAL_SYSCALL_DECL (err).
3722
b71ce910
UD
37232005-10-02 Jakub Jelinek <jakub@redhat.com>
3724
3725 * allocatestack.c (setxid_signal_thread): Need to use
3726 atomic_compare_and_exchange_bool_acq.
3727
dff9a7a1 37282005-10-01 Ulrich Drepper <drepper@redhat.com>
b42a214c 3729 Jakub Jelinek <jakub@redhat.com>
dff9a7a1
UD
3730
3731 * descr.h: Define SETXID_BIT and SETXID_BITMASK. Adjust
3732 CANCEL_RESTMASK.
3733 (struct pthread): Move specific_used field to avoid padding.
3734 Add setxid_futex field.
3735 * init.c (sighandler_setxid): Reset setxid flag and release the
3736 setxid futex.
3737 * allocatestack.c (setxid_signal_thread): New function. Broken
3738 out of the bodies of the two loops in __nptl_setxid. For undetached
3739 threads check whether they are exiting and if yes, don't send a signal.
3740 (__nptl_setxid): Simplify loops by using setxid_signal_thread.
3741 * pthread_create.c (start_thread): For undetached threads, check
3742 whether setxid bit is set. If yes, wait until signal has been
3743 processed.
3744
3745 * allocatestack.c (STACK_VARIABLES): Initialize them.
3746 * pthread_create.c (__pthread_create_2_1): Initialize pd.
3747
560b4709
UD
37482004-09-02 Jakub Jelinek <jakub@redhat.com>
3749
3750 * pthread_cond_destroy.c (__pthread_cond_destroy): If there are
3751 waiters, awake all waiters on the associated mutex.
3752
5eac4760
RM
37532005-09-22 Roland McGrath <roland@redhat.com>
3754
3755 * perf.c [__x86_64__] (HP_TIMING_NOW): New macro (copied from
3756 ../sysdeps/x86_64/hp-timing.h).
3757
a3615024
UD
37582005-08-29 Jakub Jelinek <jakub@redhat.com>
3759
3760 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h (FUTEX_WAKE_OP,
3761 FUTEX_OP_CLEAR_WAKE_IF_GT_ONE): Define.
3762 (lll_futex_wake_unlock): Define.
3763 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h (FUTEX_WAKE_OP,
3764 FUTEX_OP_CLEAR_WAKE_IF_GT_ONE): Define.
3765 (lll_futex_wake_unlock): Define.
3766 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (FUTEX_WAKE_OP,
3767 FUTEX_OP_CLEAR_WAKE_IF_GT_ONE): Define.
3768 (lll_futex_wake_unlock): Define.
3769 * sysdeps/unix/sysv/linux/s390/lowlevellock.h (FUTEX_WAKE_OP,
3770 FUTEX_OP_CLEAR_WAKE_IF_GT_ONE): Define.
3771 (lll_futex_wake_unlock): Define.
3772 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h (FUTEX_WAKE_OP,
3773 FUTEX_OP_CLEAR_WAKE_IF_GT_ONE): Define.
3774 (lll_futex_wake_unlock): Define.
3775 * sysdeps/pthread/pthread_cond_signal.c (__pthread_cond_signal): Use
3776 lll_futex_wake_unlock.
3777 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
3778 (FUTEX_WAKE_OP, FUTEX_OP_CLEAR_WAKE_IF_GT_ONE): Define.
3779 (__pthread_cond_signal): Use FUTEX_WAKE_OP.
3780 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S
3781 (FUTEX_WAKE_OP, FUTEX_OP_CLEAR_WAKE_IF_GT_ONE): Define.
3782 (__pthread_cond_signal): Use FUTEX_WAKE_OP.
3783
bf017034
UD
37842005-09-05 Kaz Kojima <kkojima@rr.iij4u.or.jp>
3785
3786 * sysdeps/unix/sysv/linux/sh/lowlevellock.S (__lll_mutex_lock_wait):
3787 Fix typo in register name.
3788
fd4af664
UD
37892005-08-23 Ulrich Drepper <drepper@redhat.com>
3790
8558d715
UD
3791 * sysdeps/unix/sysv/linux/timer_routines.c (timer_helper_thread):
3792 Use __sigfillset. Document that sigfillset does the right thing wrt
3793 to SIGSETXID.
fd4af664 3794
3fd1bc67
UD
37952005-07-11 Jakub Jelinek <jakub@redhat.com>
3796
44d75caf 3797 [BZ #1102]
3fd1bc67
UD
3798 * sysdeps/pthread/pthread.h (PTHREAD_MUTEX_INITIALIZER,
3799 PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP,
3800 PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP,
3801 PTHREAD_MUTEX_ADAPTIVE_NP, PTHREAD_RWLOCK_INITIALIZER,
3802 PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP,
3803 PTHREAD_COND_INITIALIZER): Supply zeros for all fields
3804 in the structure.
3805 * Makefile (tests): Add tst-initializers1.
3806 (CFLAGS-tst-initializers1.c): Set.
3807 * tst-initializers1.c: New test.
3808
553185e2
UD
38092005-07-11 Jakub Jelinek <jakub@redhat.com>
3810
3811 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h (pthread_rwlock_t):
3812 Make sure __flags are located at offset 48 from the start of the
3813 structure.
3814
8df08cb2
RM
38152005-07-02 Roland McGrath <roland@redhat.com>
3816
3817 * Makeconfig: Comment fix.
3818
253eb3a0
UD
38192005-07-05 Jakub Jelinek <jakub@redhat.com>
3820
3821 * descr.h (PTHREAD_STRUCT_END_PADDING): Define.
3822 * sysdeps/ia64/tls.h (TLS_PRE_TCB_SIZE): If PTHREAD_STRUCT_END_PADDING
3823 is smaller than 8 bytes, increase TLS_PRE_TCB_SIZE by 16 bytes.
3824 (THREAD_SYSINFO, THREAD_SELF, DB_THREAD_SELF): Don't assume
3825 TLS_PRE_TCB_SIZE is sizeof (struct pthread).
3826 (THREAD_SET_STACK_GUARD, THREAD_COPY_STACK_GUARD): Define.
3827 * sysdeps/ia64/tcb-offsets.sym (PID, TID, MULTIPLE_THREADS_OFFSET):
3828 Use TLS_PRE_TCB_SIZE instead of sizeof (struct pthread).
3829 * sysdeps/unix/sysv/linux/ia64/createthread.c (TLS_VALUE): Don't
3830 assume TLS_PRE_TCB_SIZE is sizeof (struct pthread).
3831
bb6e8ca3
UD
38322005-06-25 Jakub Jelinek <jakub@redhat.com>
3833
3834 * sysdeps/i386/tls.h (tcbhead_t): Add stack_guard field.
3835 (THREAD_SET_STACK_GUARD, THREAD_COPY_STACK_GUARD): Define.
3836 * sysdeps/x86_64/tls.h (tcbhead_t): Add sysinfo and stack_guard
3837 fields.
3838 (THREAD_SET_STACK_GUARD, THREAD_COPY_STACK_GUARD): Define.
3839 * sysdeps/s390/tls.h (tcbhead_t): Add stack_guard
3840 field. Put in sysinfo field unconditionally.
3841 (THREAD_SET_STACK_GUARD, THREAD_COPY_STACK_GUARD): Define.
3842 * sysdeps/powerpc/tls.h (tcbhead_t): Add stack_guard field.
3843 (THREAD_SET_STACK_GUARD, THREAD_COPY_STACK_GUARD): Define.
3844 * sysdeps/sparc/tls.h (tcbhead_t): Add sysinfo and stack_guard
3845 fields.
3846 (THREAD_SET_STACK_GUARD, THREAD_COPY_STACK_GUARD): Define.
3847 * pthread_create.c (__pthread_create_2_1): Use
3848 THREAD_COPY_STACK_GUARD macro.
3849 * Makefile: Add rules to build and run tst-stackguard1{,-static}
3850 tests.
3851 * tst-stackguard1.c: New file.
3852 * tst-stackguard1-static.c: New file.
3853
99c7f870
UD
38542005-06-14 Alan Modra <amodra@bigpond.net.au>
3855
3856 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h (PSEUDO):
3857 Invoke CGOTSETUP and CGOTRESTORE.
3858 (CGOTSETUP, CGOTRESTORE): Define.
3859
8074c5c5
RM
38602005-05-29 Richard Henderson <rth@redhat.com>
3861
3862 * tst-cancel4.c (WRITE_BUFFER_SIZE): New.
3863 (tf_write, tf_writev): Use it.
3864 (do_test): Use socketpair instead of pipe. Set SO_SNDBUF to
3865 the system minimum.
3866
c179df4e
UD
38672005-05-23 Jakub Jelinek <jakub@redhat.com>
3868
3869 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h
3870 [IS_IN_librt] (CENABLE, CDISABLE): Use JUMPTARGET instead of
3871 __librt_*_asynccancel@local.
3872
b0e196a4
UD
38732005-05-17 Alan Modra <amodra@bigpond.net.au>
3874
3875 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h: Delete
3876 all occurrences of JUMPTARGET. Instead append @local to labels.
3877
f7d78e18
UD
38782005-05-20 Jakub Jelinek <jakub@redhat.com>
3879
3880 * sysdeps/i386/tls.h (TLS_INIT_TCB_SIZE, TLS_INIT_TCB_ALIGN): Define to
3881 size/alignment of struct pthread rather than tcbhead_t.
3882 * sysdeps/x86_64/tls.h (TLS_INIT_TCB_SIZE, TLS_INIT_TCB_ALIGN):
3883 Likewise.
3884 * sysdeps/s390/tls.h (TLS_INIT_TCB_SIZE, TLS_INIT_TCB_ALIGN):
3885 Likewise.
3886 * sysdeps/sparc/tls.h (TLS_INIT_TCB_SIZE, TLS_INIT_TCB_ALIGN):
3887 Likewise.
3888
363dd976
UD
38892005-05-19 Richard Henderson <rth@redhat.com>
3890
3891 * sysdeps/ia64/pthread_spin_lock.c (pthread_spin_lock): Use
3892 __sync_val_compare_and_swap, not explicit _si variant.
3893 * sysdeps/ia64/pthread_spin_trylock.c (pthread_spin_trylock): Likewise.
3894
1ad9da69
UD
38952005-05-03 Ulrich Drepper <drepper@redhat.com>
3896
3897 [BZ #915]
3898 * sysdeps/pthread/pthread.h: Avoid empty initializers.
3899
5085cd1f
UD
39002005-05-03 Jakub Jelinek <jakub@redhat.com>
3901
3902 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Remove explicit
3903 .eh_frame section, use cfi_* directives.
3904
ad529081
UD
39052005-04-27 Jakub Jelinek <jakub@redhat.com>
3906
3907 * sysdeps/unix/sysv/linux/pthread_getcpuclockid.c: Use <> instead
3908 of "" includes.
3909
dea99685
UD
39102005-04-27 Ulrich Drepper <drepper@redhat.com>
3911
c06aad09 3912 [BZ #1075]
dea99685
UD
3913 * tst-cancel17.c (do_test): Add arbitrary factor to make sure
3914 aio_write blocks.
3915
84060bad
RM
39162005-04-27 Roland McGrath <roland@redhat.com>
3917
5e2d8ac8
RM
3918 * Makefile (tests): Remove tst-clock2.
3919
84060bad
RM
3920 * sysdeps/unix/sysv/linux/timer_create.c (timer_create): Handle
3921 CLOCK_PROCESS_CPUTIME_ID and CLOCK_PROCESS_THREAD_ID specially,
3922 translating to the kernel clockid_t for our own process/thread clock.
3923
3924 * sysdeps/unix/sysv/linux/pthread_getcpuclockid.c: New file.
3925
4a035b9d
RM
39262005-04-15 Jakub Jelinek <jakub@redhat.com>
3927
3928 * old_pthread_cond_init.c: Include <errno.h>.
3929 (__pthread_cond_init_2_0): Fail with EINVAL if COND_ATTR is
3930 process shared or uses clock other than CLOCK_REALTIME.
3931 * pthread_cond_init.c (__pthread_cond_init): Remove bogus comment.
3932
edac0e8f
UD
39332005-04-13 David S. Miller <davem@davemloft.net>
3934
3935 * sysdeps/sparc/sparc64/jmpbuf-unwind.h: New file.
3936 * sysdeps/sparc/sparc64/clone.S: New file.
3937
613d8d52
RM
39382005-04-05 Jakub Jelinek <jakub@redhat.com>
3939
44d75caf 3940 [BZ #1102]
613d8d52
RM
3941 * sysdeps/pthread/pthread.h (__pthread_cleanup_routine): Use
3942 __inline instead of inline.
3943 * sysdeps/pthread/bits/libc-lock.h (__libc_cleanup_routine): Likewise.
3944
ee618985
UD
39452005-03-31 Jakub Jelinek <jakub@redhat.com>
3946
3947 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_unlock.S: Use
3948 functionally equivalent, but shorter instructions.
3949 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S: Likewise.
3950 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h: Likewise.
3951 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S:
3952 Likewise.
3953 * sysdeps/unix/sysv/linux/x86_64/pthread_barrier_wait.S: Likewise.
3954 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S: Likewise.
3955 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Likewise.
3956 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S: Likewise.
3957 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
3958 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Likewise.
3959 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S:
3960 Likewise.
3961 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S: Likewise.
3962 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Likewise.
3963 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
3964 * sysdeps/unix/sysv/linux/x86_64/sem_post.S: Likewise.
3965 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Likewise.
3966
f850220b
AJ
39672005-03-28 Daniel Jacobowitz <dan@codesourcery.com>
3968
3969 * sysdeps/mips/Makefile: New file.
3970 * sysdeps/mips/nptl-sysdep.S: New file.
3971 * sysdeps/mips/tcb-offsets.sym: New file.
3972 * sysdeps/mips/pthread_spin_lock.S: New file.
3973 * sysdeps/mips/pthread_spin_trylock.S: New file.
3974 * sysdeps/mips/pthreaddef.h: New file.
3975 * sysdeps/mips/tls.h: New file.
3976 * sysdeps/mips/jmpbuf-unwind.h: New file.
3977 * sysdeps/unix/sysv/linux/mips/lowlevellock.h: New file.
3978 * sysdeps/unix/sysv/linux/mips/bits/pthreadtypes.h: New file.
3979 * sysdeps/unix/sysv/linux/mips/bits/semaphore.h: New file.
3980 * sysdeps/unix/sysv/linux/mips/pthread_once.c: New file.
3981 * sysdeps/unix/sysv/linux/mips/fork.c: New file.
3982 * sysdeps/unix/sysv/linux/mips/pt-vfork.S: New file.
3983 * sysdeps/unix/sysv/linux/mips/vfork.S: New file.
3984 * sysdeps/unix/sysv/linux/mips/clone.S: New file.
3985 * sysdeps/unix/sysv/linux/mips/createthread.c: New file.
3986 * sysdeps/unix/sysv/linux/mips/sysdep-cancel.h: New file.
3987
1e6da2b0
UD
39882005-03-23 Ulrich Drepper <drepper@redhat.com>
3989
c06aad09 3990 [BZ #1112]
1e6da2b0
UD
3991 * pthread_create.c (__pthread_create_2_1): Rename syscall error
3992 variable to scerr.
3993
5233d576
RM
39942005-03-10 Jakub Jelinek <jakub@redhat.com>
3995
3996 * tst-getpid1.c (do_test): Align stack passed to clone{2,}.
3997
3053ff11
RM
39982005-02-25 Roland McGrath <roland@redhat.com>
3999
4000 * alloca_cutoff.c: Correct license text.
4001 * tst-unload.c: Likewise.
4002 * sysdeps/pthread/allocalim.h: Likewise.
4003 * sysdeps/pthread/pt-initfini.c: Likewise.
4004 * sysdeps/pthread/bits/libc-lock.h: Likewise.
4005 * sysdeps/pthread/bits/sigthread.h: Likewise.
4006 * sysdeps/unix/sysv/linux/bits/local_lim.h: Likewise.
4007 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Likewise.
4008
9cfe5381
RM
40092005-02-16 Roland McGrath <roland@redhat.com>
4010
4011 * sysdeps/pthread/pthread-functions.h (struct pthread_functions):
4012 Use unsigned int * for ptr_nthreads.
4013
7de00121
RM
40142005-02-14 Alan Modra <amodra@bigpond.net.au>
4015
20d511e0 4016 [BZ #721]
7de00121
RM
4017 * sysdeps/powerpc/tcb-offsets.sym (thread_offsetof): Redefine to suit
4018 gcc4.
4019
4bae262d
UD
40202005-02-07 Richard Henderson <rth@redhat.com>
4021
613d8d52 4022 [BZ #787]
4bae262d
UD
4023 * sysdeps/pthread/pthread.h (__sigsetjmp): Use pointer as first
4024 argument.
4025
75df54b7
RM
40262004-11-03 Marcus Brinkmann <marcus@gnu.org>
4027
4028 * sysdeps/generic/lowlevellock.h (__generic_mutex_unlock): Fix
4029 order of arguments in invocation of atomic_add_zero.
4030
ea9c93cc
UD
40312005-01-26 Jakub Jelinek <jakub@redhat.com>
4032
9cfe5381 4033 [BZ #737]
ea9c93cc
UD
4034 * sysdeps/unix/sysv/linux/i386/i486/sem_trywait.S (__new_sem_trywait):
4035 Use direct %gs segment access or, if NO_TLS_DIRECT_SEG_REFS,
4036 at least gotntpoff relocation and addition.
4037 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S (sem_timedwait):
4038 Likewise.
4039 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S (__new_sem_post):
4040 Likewise.
4041 * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S (__new_sem_wait):
4042 Likewise.
4043
9dcafc55
UD
40442005-01-06 Ulrich Drepper <drepper@redhat.com>
4045
4046 * allocatestack.c (init_one_static_tls): Adjust initialization of DTV
4047 entry for static tls deallocation fix.
4048 * sysdeps/alpha/tls.h (dtv_t): Change pointer type to be struct which
4049 also contains information whether the memory pointed to is static
4050 TLS or not.
4051 * sysdeps/i386/tls.h: Likewise.
4052 * sysdeps/ia64/tls.h: Likewise.
4053 * sysdeps/powerpc/tls.h: Likewise.
4054 * sysdeps/s390/tls.h: Likewise.
4055 * sysdeps/sh/tls.h: Likewise.
4056 * sysdeps/sparc/tls.h: Likewise.
4057 * sysdeps/x86_64/tls.h: Likewise.
4058
a71c152c
UD
40592004-12-27 Ulrich Drepper <drepper@redhat.com>
4060
4061 * init.c (__pthread_initialize_minimal_internal): Use __sigemptyset.
4062
d143c49e
UD
40632004-12-21 Jakub Jelinek <jakub@redhat.com>
4064
4065 * sysdeps/i386/tls.h (CALL_THREAD_FCT): Maintain 16 byte alignment of
4066 %esp.
4067 * Makefile (tests): Add tst-align2.
4068 * tst-align2.c: New test.
4069 * sysdeps/i386/Makefile (CFLAGS-tst-align{,2}.c): Add
4070 -mpreferred-stack-boundary=4.
4071
50130ded
RM
40722004-12-18 Roland McGrath <roland@redhat.com>
4073
4074 * sysdeps/unix/sysv/linux/powerpc/powerpc64/bits/local_lim.h:
4075 New file removed withdrawn for the moment.
4076
cbc53df0
RH
40772004-12-17 Richard Henderson <rth@redhat.com>
4078
4079 * sysdeps/unix/sysv/linux/alpha/clone.S: New file.
4080 * sysdeps/alpha/tcb-offsets.sym (TID_OFFSET): New.
50130ded 4081
fb9d5c73
UD
40822004-12-16 Ulrich Drepper <drepper@redhat.com>
4083
03332aa6
UD
4084 * sysdeps/unix/sysv/linux/powerpc/powerpc64/bits/local_lim.h: New file.
4085 Increased PTHREAD_STACK_MIN.
4086
fb9d5c73
UD
4087 * tst-context1.c (stacks): Use bigger stack size.
4088
e853ea00
UD
40892004-12-16 Jakub Jelinek <jakub@redhat.com>
4090
4091 * sysdeps/unix/sysv/linux/sparc/sparc32/clone.S: New file.
4092 * sysdeps/sparc/tcb-offsets.sym: Add TID.
4093
f23673fc
UD
40942004-12-15 Jakub Jelinek <jakub@redhat.com>
4095
4096 * sysdeps/unix/sysv/linux/s390/s390-32/clone.S: New file.
4097 * sysdeps/unix/sysv/linux/s390/s390-64/clone.S: New file.
4098 * sysdeps/s390/tcb-offsets.sym (TID): Add.
4099
917fbe70
UD
41002004-12-15 Ulrich Drepper <drepper@redhat.com>
4101
4102 * sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S: New file.
4103
1f9d7c27
UD
41042004-12-14 Ulrich Drepper <drepper@redhat.com>
4105
4106 * sysdeps/powerpc/tcb-offsets.sym: Add TID.
4107 * sysdeps/unix/sysv/linux/powerpc/powerpc64/clone.S: New file.
4108
4109 * tst-getpid1.c: If child crashes, report this first. Print which
4110 signal.
4111
bf7c04cd
UD
41122004-12-09 Ulrich Drepper <drepper@redhat.com>
4113
4114 * init.c (__pthread_initialize_minimal_internal): Also unblock
4115 SIGSETXID.
4116
41172004-12-01 Jakub Jelinek <jakub@redhat.com>
4118
4119 * sysdeps/unix/sysv/linux/bits/posix_opt.h (_POSIX_CPUTIME,
4120 _POSIX_THREAD_CPUTIME): Define to 0.
4121 * sysdeps/pthread/timer_create.c (timer_create): Remove unused code
4122 handling CLOCK_PROCESS_CPUTIME_ID and CLOCK_THREAD_CPUTIME_ID.
4123 * sysdeps/pthread/timer_routines.c (__timer_signal_thread_pclk,
4124 __timer_signal_thread_tclk): Remove.
4125 (init_module): Remove their initialization.
4126 (thread_cleanup): Remove their cleanup assertions.
4127 * sysdeps/pthread/posix-timer.h (__timer_signal_thread_pclk,
4128 __timer_signal_thread_tclk): Remove.
4129 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Removed.
75df54b7 4130 * sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h: Removed.
bf7c04cd
UD
4131 * sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h: Removed.
4132
484cc801
UD
41332004-12-07 Jakub Jelinek <jakub@redhat.com>
4134
4135 * sysdeps/ia64/tcb-offsets.sym (TID): Add.
4136 * sysdeps/unix/sysv/linux/ia64/clone2.S: New file.
4137
4138 * Makefile (tests): Add tst-getpid2.
4139 * tst-getpid1.c (TEST_CLONE_FLAGS): Define.
4140 (do_test): Use it. Use __clone2 instead of clone on ia64.
4141 * tst-getpid2.c: New test.
4142
2da9a6a1
UD
41432004-12-07 Kaz Kojima <kkojima@rr.iij4u.or.jp>
4144
4145 * sysdeps/unix/sysv/linux/sh/clone.S: New file.
4146
1ff241b8
UD
41472004-12-04 Ulrich Drepper <drepper@redhat.com>
4148
4149 * Makefile (tests): Add tst-getpid1.
4150 * tst-getpid1.c: New file.
4151 * sysdeps/unix/sysv/linux/i386/clone.S: New file.
4152 * sysdeps/unix/sysv/linux/x86_64/clone.S: New file.
4153
3f488b9c
RM
41542004-12-02 Roland McGrath <roland@redhat.com>
4155
4156 * Makefile (libpthread-nonshared): Variable removed.
4157 ($(objpfx)libpthread_nonshared.a): Target removed.
4158 ($(inst_libdir)/libpthread_nonshared.a): Likewise.
4159 These are now handled by generic magic from
4160 libpthread-static-only-routines being set.
4161
597ce09c
UD
41622004-11-27 Ulrich Drepper <drepper@redhat.com>
4163
4164 * sysdeps/unix/sysv/linux/bits/posix_opt.h (_POSIX_PRIORITIZED_IO,
4165 _POSIX2_CHAR_TERM, _POSIX_THREAD_PRIO_INHERIT,
4166 _POSIX_THREAD_PRIO_PROTECT): Define.
4167 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
4168 * sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h: Likewise.
4169 * sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h: Likewise.
4170
60e4523a
UD
41712004-11-26 Jakub Jelinek <jakub@redhat.com>
4172
4173 * sysdeps/unix/sysv/linux/bits/posix_opt.h (_POSIX_ADVISORY_INFO,
4174 _POSIX_SPORADIC_SERVER, _POSIX_THREAD_SPORADIC_SERVER, _POSIX_TRACE,
4175 _POSIX_TRACE_EVENT_FILTER, _POSIX_TRACE_INHERIT, _POSIX_TRACE_LOG,
4176 _POSIX_TYPED_MEMORY_OBJECTS, _POSIX_IPV6, _POSIX_RAW_SOCKETS): Define.
4177 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
4178 * sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h: Likewise.
4179 * sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h: Likewise.
4180
f1f2cafc
UD
41812004-11-24 Ulrich Drepper <drepper@redhat.com>
4182
bca2d208
UD
4183 * sysdeps/x86_64/Makefile [nptl]: Define CFLAGS-pthread_create.c.
4184
f1f2cafc
UD
4185 * Makefile (libpthread-routines): Add pthread_setschedprio.
4186 * Versions [libpthread, GLIBC_2.3.4]: Add pthread_setschedprio.
4187 * sysdeps/pthread/pthread.h: Declare pthread_setschedprio.
4188 * pthread_setschedprio.c: New file.
4189
b639d0c9
UD
41902004-11-20 Jakub Jelinek <jakub@redhat.com>
4191
ef2bb413
UD
4192 * pthread_create.c (pthread_cancel): Add PTHREAD_STATIC_FN_REQUIRE.
4193 * pthread_cancel.c (pthread_create): Likewise.
4194
b639d0c9
UD
4195 * Makefile (libpthread-routines): Add vars.
4196 * sysdeps/pthread/createthread.c (__pthread_multiple_threads): Remove.
4197 * init.c (__default_stacksize, __is_smp): Remove.
4198 * vars.c: New file.
4199 * pthreadP.h (__find_thread_by_id): If !SHARED, add weak_function
4200 and define a wrapper macro.
4201 (PTHREAD_STATIC_FN_REQUIRE): Define.
4202 * allocatestack.c (__find_thread_by_id): Undefine.
4203 * pthread_create (__pthread_keys): Remove.
4204 (pthread_mutex_lock, pthread_mutex_unlock, pthread_once,
4205 pthread_key_create, pthread_setspecific, pthread_getspecific): Add
4206 PTHREAD_STATIC_FN_REQUIRE.
4207
3defcff3
UD
42082004-11-18 Kaz Kojima <kkojima@rr.iij4u.or.jp>
4209
4210 * sysdeps/sh/tls.h (DB_THREAD_SELF): Set the correct bias
4211 parameter to REGISTER macro.
4212
ec188f92
RM
42132004-11-17 Roland McGrath <roland@redhat.com>
4214
4215 * sysdeps/unix/sysv/linux/timer_routines.c (__start_helper_thread):
4216 Make sure SIGCANCEL is blocked as well.
4217
ccd8de9a
UD
42182004-11-10 Jakub Jelinek <jakub@redhat.com>
4219
4220 * sysdeps/pthread/setxid.h: New file.
4221 * sysdeps/pthread/pthread-functions.h (HAVE_PTR__NPTL_SETXID): Remove.
4222 (struct xid_command): Add forward decl.
4223 (struct pthread_functions): Change return type of __nptl_setxid hook
4224 to int.
4225 * pthreadP.h (__nptl_setxid): Change return type to int.
4226 * allocatestack.c (__nptl_setxid): Call INTERNAL_SYSCALL_NCS in the
4227 calling thread, return its return value and set errno on failure.
4228 * descr.h (struct xid_command): Change id type to long array.
4229
4230 * Makefile: Add rules to build and test tst-setuid1 and
4231 tst-setuid1-static.
4232 * tst-setuid1.c: New test.
4233 * tst-setuid1-static.c: New test.
4234
ed2ced8a
UD
42352004-11-10 Jakub Jelinek <jakub@redhat.com>
4236
4237 * Makefile (tests): Add tst-exit3.
4238 * tst-exit3.c: New test.
4239
948603ee
UD
42402004-11-09 Ulrich Drepper <drepper@redhat.com>
4241
4242 * Makefile (tests): Add tst-exit2.
4243 * tst-exit2.c: New file.
4244
ba5ffd2a
RM
42452004-11-09 Roland McGrath <roland@redhat.com>
4246
4247 [BZ #530]
4248 * sysdeps/pthread/createthread.c (do_clone): Increment __nptl_nthreads
4249 here, before calling clone.
4250 * pthread_create.c (start_thread): Don't do it here.
4251
c4d7bd39
RM
42522004-11-02 Jakub Jelinek <jakub@redhat.com>
4253
4254 * sysdeps/unix/sysv/linux/smp.h: Include <errno.h>.
4255
543fb0c8
UD
42562004-10-29 Kaz Kojima <kkojima@rr.iij4u.or.jp>
4257
4258 * sysdeps/unix/sysv/linux/sh/sem_timedwait.S (sem_timedwait):
4259 Set ETIMEDOUT to errno when time is up. Tweak to avoid
4260 assembler warning.
4261
a1fbd858
UD
42622004-10-28 Jakub Jelinek <jakub@redhat.com>
4263
4264 * pthread_create.c (__pthread_create_2_1): Avoid leaking stacks
4265 if sched_priority is not between minprio and maxprio.
4266
c2a4357a
UD
42672004-10-25 Kaz Kojima <kkojima@rr.iij4u.or.jp>
4268
4269 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S
4270 (__pthread_cond_timedwait): Use clock_gettime syscall if exists.
4271
4272 * sysdeps/unix/sysv/linux/sh/lowlevellock.S
4273 (__lll_mutex_timedlock_wait): Fix a bad branch condition.
4274
78d8d211
UD
42752004-10-24 Ulrich Drepper <drepper@redhat.com>
4276
4277 * sysdeps/unix/sysv/linux/smp.h (is_smp_system): Use
4278 not-cancelable I/O functions.
4279
dd28590f
UD
42802004-10-21 Kaz Kojima <kkojima@rr.iij4u.or.jp>
4281
4282 * sysdeps/unix/sysv/linux/sh/lowlevellock.S
4283 (__lll_mutex_timedlock_wait): If woken but cannot get the lock,
4284 make sure 2 is stored in the futex and we looked at the old value.
4285 Fix a few other problems to return the correct value.
4286
f8c97af7
RH
42872004-10-14 Richard Henderson <rth@redhat.com>
4288
4289 * sysdeps/alpha/tcb-offsets.sym (thread_offsetof): Redefine to
4290 make gcc4 happy.
4291
3feb8efa
UD
42922004-10-06 Jakub Jelinek <jakub@redhat.com>
4293
4294 * sysdeps/unix/sysv/linux/jmp-unwind.c: Include pthreadP.h instead
4295 of pthread-functions.h and pthreaddef.h.
4296 * sysdeps/unix/sysv/linux/s390/jmp-unwind.c: Likewise.
4297
4298 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h (pthread_cond_t):
4299 Change __data.__nwaiters from int to unsigned int.
4300
4301 * tst-clock2.c (do_test): Don't fail if _POSIX_THREAD_CPUTIME == 0 and
4302 sysconf (_SC_THREAD_CPUTIME) returns negative value.
4303
4304 * allocatestack.c (__find_thread_by_id): Move attribute_hidden
4305 before return type.
4306
4307 * sysdeps/s390/jmpbuf-unwind.h: Include bits/wordsize.h.
4308 (JMPBUF_CFA_UNWINDS_ADJ): Subtract 96 resp. 160 bytes from CFA.
4309
67060ef5
UD
43102004-10-06 Ulrich Drepper <drepper@redhat.com>
4311
4312 * tst-cancel4.c (tf_msgrcv): Check for failure in msgget. If the
4313 test fails, remove message queue.
4314 (tf_msgsnd): Likewise.
4315
f38a3086
UD
43162004-10-05 Jakub Jelinek <jakub@redhat.com>
4317
4318 * tst-clock1.c: Change #ifdef to #if defined.
4319 * tst-clock2.c: Likewise.
4320 * tst-cond11.c: Likewise.
4321
2c03b6db
UD
4322 * sysdeps/pthread/timer_create.c (timer_create): Use
4323 defined _POSIX_CPUTIME && _POSIX_CPUTIME >= 0 instead of
4324 defined CLOCK_PROCESS_CPUTIME_ID #ifs and similarly for
4325 THREAD_CPUTIME.
4326
6ab5f50d
UD
43272004-10-05 Jakub Jelinek <jakub@redhat.com>
4328
4329 * sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h (_POSIX_CPUTIME,
4330 _POSIX_THREAD_CPUTIME): Define to 0.
4331
e4bb4853
UD
43322004-10-04 Ulrich Drepper <drepper@redhat.com>
4333
4334 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Define _POSIX_CPUTIME
4335 and _POSIX_THREAD_CPUTIME to zero.
4336 * sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h: Likewise.
4337 * tst-barrier2.c: Fix testing for POSIX feature.
4338 * tst-clock1.c: Likewise.
4339 * tst-clock2.c: Likewise.
4340 * tst-cond11.c: Likewise.
4341 * tst-cond4.c: Likewise.
4342 * tst-cond6.c: Likewise.
4343 * tst-flock2.c: Likewise.
4344 * tst-mutex4.c: Likewise.
4345 * tst-mutex9.c: Likewise.
4346 * tst-rwlock12.c: Likewise.
4347 * tst-rwlock4.c: Likewise.
4348 * tst-signal1.c: Likewise.
4349 * tst-spin2.c: Likewise.
4350 * sysdeps/pthread/posix-timer.h: Likewise.
4351 * sysdeps/pthread/timer_create.c: Likewise.
4352 * sysdeps/pthread/timer_routines.c: Likewise.
4353
c1b48791
UD
43542004-10-01 Ulrich Drepper <drepper@redhat.com>
4355
927f0673
UD
4356 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
4357 (__lll_mutex_timedlock_wait): Address futex correctly.
4358
c1b48791 4359 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
b610fa2d 4360 (__lll_mutex_timedlock_wait): If woken but cannot get the lock,
c1b48791
UD
4361 make sure 2 is stored in the futex and we looked at the old value.
4362 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
4363 (__lll_mutex_timedlock_wait): Likewise. Fix a few other problems
4364 which might very well made the code not working at all before.
7b87aca6 4365 [BZ #417]
c1b48791 4366
e9f4e844
UD
43672004-09-28 Ulrich Drepper <drepper@redhat.com>
4368
4f21c95d
UD
4369 * sysdeps/unix/sysv/linux/pthread_kill.c (__pthread_kill): Don't
4370 allow SIGSETXID to be sent.
4371 * sysdeps/pthread/sigaction.c (__sigaction): Don't allow action
4372 for SIGSETXID to be defined.
4373 * sysdeps/pthread/pthread_sigmask.c (pthread_sigmask): Make sure
4374 SIGSETXID cannot be blocked.
4375
e9f4e844
UD
4376 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h (pthread_cond_t):
4377 Add __extension__ to long long types.
4378 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: Likewise.
4379 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
4380 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
4381 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
4382 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h: Likewise.
4383 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Likewise.
4384 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
4385
5f66b766
UD
43862004-09-25 Ulrich Drepper <drepper@redhat.com>
4387
4388 * descr.h (struct pthread): Add stopped_start field.
4389 * sysdeps/pthread/createthread.c (create_thread): Set
4390 start_stopped flag in descriptor for new thread appropriately.
4391 * pthread_create.c (start_thread): Only take lock to be stopped on
4392 startup if stopped_start flag says so.
4393
362038b0
UD
43942004-09-24 Ulrich Drepper <drepper@redhat.com>
4395
3f80a99b
UD
4396 * pthread_create.c (__pthread_create_2_1): Remember whether thread
4397 is created detached and if yes, do not try to free the stack in case
4398 the thread creation failed.
4399 * sysdeps/pthread/createthread.c (do_clone): Free stack here if clone
4400 call fails. Don't depend on INTERNAL_SYSCALL_ERRNO return zero in
4401 case there has been no error. [BZ #405]
4402
362038b0
UD
4403 * pthread_create.c (start_thread): Don't wait for scheduler data
4404 etc to be set at the beginning of the function. The cancellation
4405 infrastructure must have been set up. And enable async
4406 cancellation before potentially going to sleep. [BZ #401]
4407
65f0beb9
UD
44082004-09-20 Ulrich Drepper <drepper@redhat.com>
4409
3c12b91a 4410 * Versions: Remove exports for pthread_set*id_np functions.
65f0beb9
UD
4411 * sysdeps/pthread/pthread.h: Remove pthread_set*id_np prototypes
4412 for now.
4413 * Makefile: Don't build pthread_set*id code for now.
4414
2edb61e3
UD
44152004-09-19 Ulrich Drepper <drepper@redhat.com>
4416
4417 * sysdeps/unix/sysv/linux/allocrtsig.c: Allocate second signal for
4418 internal use.
4419 * allocatestack.c (__nptl_setxid): New function.
4420 * descr.h (struct xid_command): Define type.
4421 * init.c (pthread_functions): Add ptr__nptl_setxid initialization.
4422 (sighandler_setxid): New function.
4423 (__pthread_initialize_minimal): Register sighandler_setxid for
4424 SIGCANCEL.
4425 * pt-allocrtsig.c: Update comment.
4426 * pthreadP.h: Define SIGSETXID. Declare __xidcmd variable.
4427 Declare __nptl_setxid.
4428 * sysdeps/pthread/pthread-functions.h: Add ptr__nptl_setxid.
4429 * sysdeps/pthread/pthread.h: Declare pthread_setgid_np,
4430 pthread_setuid_np, pthread_setegid_np, pthread_seteuid_np,
4431 pthread_setregid_np, pthread_setreuid_np, pthread_setresgid_np,
4432 and pthread_setresuid_np.
4433 * pthread_setgid_np.c: New file.
4434 * pthread_setuid_np.c: New file.
4435 * pthread_setegid_np.c: New file.
4436 * pthread_seteuid_np.c: New file.
4437 * pthread_setregid_np.c: New file.
4438 * pthread_setreuid_np.c: New file.
4439 * pthread_setresgid_np.c: New file.
4440 * pthread_setresuid_np.c: New file.
4441 * Versions [libpthread, GLIBC_2.3.4]: Add pthread_setgid_np,
4442 pthread_setuid_np, pthread_setegid_np, pthread_seteuid_np,
4443 pthread_setregid_np, pthread_setreuid_np, pthread_setresgid_np,
4444 and pthread_setresuid_np.
4445 * Makefile (libpthread-routines): Add pthread_setuid, pthread_seteuid,
4446 pthread_setreuid, pthread_setresuid, pthread_setgid, pthread_setegid,
4447 pthread_setregid, and pthread_setresgid.
4448
1ab1fa6f
UD
44492004-09-18 Ulrich Drepper <drepper@redhat.com>
4450
4451 * allocatestack.c (allocate_stack): Return EAGAIN instead of
4452 ENOMEM when out of memory.
4453
ae9e6b36
RM
44542004-09-10 Roland McGrath <roland@redhat.com>
4455
4456 [BZ #379]
4457 * allocatestack.c (allocate_stack): Remove [__ASSUME_CLONE_STOPPED]
4458 code, since we don't try to use the broken CLONE_STOPPED any more.
4459 * pthread_create.c (start_thread): Likewise.
4460
424bd2f8
RH
44612004-09-15 Richard Henderson <rth@redhat.com>
4462
4463 * sysdeps/unix/sysv/linux/alpha/vfork.S: Use libc_hidden_def.
4464
17b8a52d
UD
44652004-09-01 David Mosberger <davidm@hpl.hp.com>
4466
4467 * sysdeps/unix/sysv/linux/ia64/jmpbuf-unwind.h
4468 (__libc_unwind_longjmp): Delete macro and declare as function.
4469 * sysdeps/unix/sysv/linux/ia64/Makefile (sysdep_routines): Mention
4470 __ia64_longjmp, sigstack_longjmp, and __sigstack_longjmp for
4471 nptl directory.
4472 * sysdeps/unix/sysv/linux/ia64/__ia64_longjmp.S: New file.
4473 * sysdeps/unix/sysv/linux/ia64/__sigstack_longjmp.c: New file.
4474 * sysdeps/unix/sysv/linux/ia64/unwind_longjmp.c: New file.
4475
ccc63b07
UD
44762004-09-12 Ulrich Drepper <drepper@redhat.com>
4477
4478 * sysdeps/pthread/pthread.h: Make rwlock prototypes available also
4479 for __USE_XOPEN2K.
4480 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h: Define rwlock
4481 types also for __USE_XOPEN2K.
4482 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Likewise.
4483 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
4484 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
4485 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
4486 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Likewise.
4487 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: Likewise.
4488 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
4489 [BZ #320]
4490
31f93b3b
UD
44912004-09-08 Ulrich Drepper <drepper@redhat.com>
4492
4493 * sysdeps/pthread/pthread.h
4494 (PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP): Make safe for C++.
4495 (PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP): Likewise.
4496 (PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP): Likewise.
4497 (PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP): Likewise.
4498 [BZ #375]
4499
e0329987
UD
45002004-09-07 Ulrich Drepper <drepper@redhat.com>
4501
590b40f7
UD
4502 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h: Allow
4503 PSEUDO to be used with . prefix.
4504
67254a97
UD
4505 * sysdeps/unix/sysv/linux/alpha/pthread_once.c (__pthread_once):
4506 Use atomic_increment instead of atomic_exchange_and_add.
4507 * sysdeps/unix/sysv/linux/sparc/pthread_once.c (__pthread_once):
4508 Likewise.
4509 * sysdeps/unix/sysv/linux/ia64/pthread_once.c (__pthread_once):
4510 Likewise.
4511 * sysdeps/unix/sysv/linux/powerpc/pthread_once.c (__pthread_once):
4512 Likewise.
4513
4514 * allocatestack.c (allocate_stack): Use atomic_increment_val
4515 instead of atomic_exchange_and_add.
4516 * sysdeps/unix/sysv/linux/sem_post.c (__new_sem_post): Likewise.
4517 * sysdeps/unix/sysv/linux/powerpc/sem_post.c (__new_sem_post):
4518 Likewise.
4519 * sysdeps/pthread/pthread_barrier_wait.c (pthread_barrier_wait):
4520 Likewise.
4521
e0329987
UD
4522 * sysdeps/pthread/pthread.h (pthread_once): Remove __THROW since
4523 the initialization function might throw.
4524
42d86dd6 45252005-09-05 Richard Henderson <rth@redhat.com>
e0329987 4526
42d86dd6
RH
4527 * sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h (SINGLE_THREAD_P):
4528 Move definition inside libpthread, libc, librt check. Provide
4529 definition for rtld.
4530
73f7c32c
UD
45312004-09-02 Ulrich Drepper <drepper@redhat.com>
4532
f76c8499
UD
4533 * sysdeps/alpha/jmpbuf-unwind.h: Define __libc_unwind_longjmp.
4534 * sysdeps/i386/jmpbuf-unwind.h: Likewise
4535 * sysdeps/powerpc/jmpbuf-unwind.h: Likewise.
4536 * sysdeps/s390/jmpbuf-unwind.h: Likewise.
4537 * sysdeps/sh/jmpbuf-unwind.h: Likewise.
4538 * sysdeps/sparc/sparc32/jmpbuf-unwind.h: Likewise.
4539 * sysdeps/unix/sysv/linux/ia64/jmpbuf-unwind.h: Likewise.
4540 * sysdeps/x86_64/jmpbuf-unwind.h: Likewise.
4541 * unwind.c: Use it.
4542
73f7c32c
UD
4543 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_cond_t):
4544 Rename __data.__clock to __data.__nwaiters, make it unsigned int.
4545 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h (pthread_cond_t):
4546 Likewise.
4547 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S:
4548 Decrement __nwaiters. If pthread_cond_destroy has been called and
4549 this is the last waiter, signal pthread_cond_destroy caller and
4550 avoid using the pthread_cond_t structure after unlock.
4551 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
4552 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
4553 Read clock type from the least significant bits of __nwaiters instead
4554 of __clock.
4555 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
4556 * sysdeps/unix/sysv/linux/internaltypes.h: Define COND_CLOCK_BITS.
4557
45582004-08-31 Jakub Jelinek <jakub@redhat.com>
4559
4560 [BZ #342]
4561 * Makefile (tests): Add tst-cond20 and tst-cond21.
4562 * tst-cond20.c: New test.
4563 * tst-cond21.c: New test.
4564 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h
4565 (pthread_cond_t): Rename __data.__clock to __data.__nwaiters, make
4566 it unsigned int.
4567 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h (pthread_cond_t):
4568 Likewise.
4569 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h
4570 (pthread_cond_t): Likewise.
4571 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h (pthread_cond_t):
4572 Likewise.
4573 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h (pthread_cond_t):
4574 Likewise.
4575 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h (pthread_cond_t):
4576 Likewise.
4577 * sysdeps/unix/sysv/linux/lowlevelcond.sym (cond_clock): Remove.
4578 (cond_nwaiters): New.
4579 (clock_bits): New.
4580 * pthread_cond_destroy.c (__pthread_cond_destroy): Return EBUSY
4581 if there are waiters not signalled yet.
4582 Wait until all already signalled waiters wake up.
4583 * sysdeps/pthread/pthread_cond_wait.c (__condvar_cleanup): Decrement
4584 __nwaiters. If pthread_cond_destroy has been called and this is the
4585 last waiter, signal pthread_cond_destroy caller and avoid using
4586 the pthread_cond_t structure after unlock.
4587 (__pthread_cond_wait): Increment __nwaiters in the beginning,
4588 decrement it when leaving. If pthread_cond_destroy has been called
4589 and this is the last waiter, signal pthread_cond_destroy caller.
4590 * sysdeps/pthread/pthread_cond_timedwait.c (__pthread_cond_timedwait):
4591 Likewise. Read clock type from the least significant bits of
4592 __nwaiters instead of __clock.
4593 * pthread_condattr_setclock.c (pthread_condattr_setclock): Check
4594 whether clock ID can be encoded in COND_CLOCK_BITS bits.
4595 * pthread_condattr_getclock.c (pthread_condattr_getclock): Decode
4596 clock type just from the last COND_CLOCK_BITS bits of value.
4597 * pthread_cond_init.c (__pthread_cond_init): Initialize __nwaiters
4598 instead of __clock, just from second bit of condattr's value.
4599
409f7493
UD
46002004-08-30 Jakub Jelinek <jakub@redhat.com>
4601
4602 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Include
4603 bits/wordsize.h. Make the header match i386 header when __WORDSIZE
4604 != 64.
4605 * sysdeps/unix/sysv/linux/x86_64/bits/semaphore.h: Likewise.
4606
92c6ccd1
RM
46072004-08-15 Roland McGrath <roland@frob.com>
4608
4609 * pthread_atfork.c: Update copyright terms including special exception
4610 for these trivial files, which are statically linked into executables
4611 that use dynamic linking for the significant library code.
4612
4d004cfb
UD
46132004-08-09 Jakub Jelinek <jakub@redhat.com>
4614
4615 * DESIGN-rwlock.txt: Add decreasing of nr_readers_queued to
4616 pthread_rwlock_rdlock.
4617 * sysdeps/pthread/pthread_rwlock_rdlock (__pthread_rwlock_rdlock):
4618 Decrease __nr_readers_queued after reacquiring lock.
4619 * sysdeps/pthread/pthread_rwlock_timedrdlock
4620 (pthread_rwlock_timedrdlock): Likewise.
4621 Reported by Bob Cook <bobcook47@hotmail.com>.
4622
90595fb6
RM
46232004-08-11 Jakub Jelinek <jakub@redhat.com>
4624
4625 * tst-rwlock14.c (tf): Read main thread handle from *ARG
4626 before pthread_barrier_wait.
4627
fa46f7ab
UD
46282004-08-07 Ulrich Drepper <drepper@redhat.com>
4629
4630 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S:
4631 Remove unnecessary exception handling data.
4632
15ef4b55
UD
46332004-07-23 Jakub Jelinek <jakub@redhat.com>
4634
4635 [BZ #284]
4636 * sysdeps/pthread/pthread.h (pthread_getcpuclockid): Use __clockid_t
4637 instead of clockid_t.
4638
4fb907b7
RM
46392004-07-21 Roland McGrath <roland@redhat.com>
4640
4641 * Makefile ($(objpfx)multidir.mk): Use $(make-target-directory).
4642
46432004-07-19 Roland McGrath <roland@redhat.com>
4644
4645 * tst-cancel4.c (tf_waitid): Use WEXITED flag bit if available.
4646
8f73811b
RM
46472004-07-02 Roland McGrath <roland@redhat.com>
4648
4649 * configure: Don't exit.
4650
290639c3
UD
46512004-07-14 Kaz Kojima <kkojima@rr.iij4u.or.jp>
4652
4653 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S
4654 (__pthread_cond_timedwait): Check for invalid nanosecond in
4655 timeout value.
4656
8e5aaad9
UD
46572004-07-07 Ulrich Drepper <drepper@redhat.com>
4658
4659 * Makefile: Add rules to build and run tst-fini1.
4660 * tst-fini1.c: New file.
4661 * tst-fini1mod.c: New file.
4662
ce6e047f
UD
46632004-07-05 Ulrich Drepper <drepper@redhat.com>
4664
4665 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Define NO_CANCELLATION
4666 if no cancellation support is needed.
4667 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h: Likewise.
4668 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h: Likewise.
4669 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h: Likewise.
4670 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h: Likewise.
4671 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h: Likewise.
4672 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h: Likewise.
4673 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h: Likewise.
4674 * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h: Likewise.
4675 * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h: Likewise.
4676
4677 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Define __NR_futex
4678 only if not already defined.
4679
9b9ef823
UD
46802004-07-05 Jakub Jelinek <jakub@redhat.com>
4681
2dd18ce2
UD
4682 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (lll_unlock): Use
4683 constraint "m" instead of "0" for futex.
4684
9b9ef823
UD
4685 * shlib-versions: Add powerpc64-.*-linux.*.
4686
38205402
UD
46872004-07-04 Jakub Jelinek <jakub@redhat.com>
4688
4689 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S
4690 (pthread_rwlock_timedrdlock): Use cmpq instead of cmpl to check
4691 for valid tv_nsec.
4692 * tst-rwlock14.c (do_test): Test for invalid tv_nsec equal to
4693 1 billion and 64-bit tv_nsec which is valid when truncated to 32
4694 bits.
4695
78a9c837
RM
46962004-06-29 Roland McGrath <roland@redhat.com>
4697
4698 * Banner: NPTL no longer has its own version number.
4699 * Makefile (nptl-version): Variable removed.
4700 * sysdeps/pthread/Makefile (CFLAGS-confstr.c): Set LIBPTHREAD_VERSION
4701 using $(version), the glibc version number.
4702
d3d35527
UD
47032004-06-29 Kaz Kojima <kkojima@rr.iij4u.or.jp>
4704
4705 * sysdeps/unix/sysv/linux/sh/pthread_once.S (__pthread_once):
4706 Fix branch offset for a PLT entry.
4707 * sysdeps/unix/sysv/linux/sh/sem_post.S (__new_sem_post):
4708 Likewise.
4709 * sysdeps/unix/sysv/linux/sh/sem_timedwait.S (sem_timedwait):
4710 Likewise.
4711 * sysdeps/unix/sysv/linux/sh/sem_trywait.S (__new_sem_trywait):
4712 Likewise.
4713 * sysdeps/unix/sysv/linux/sh/sem_wait.S (__new_sem_wait):
4714 Likewise.
4715
346f18ae
UD
47162004-06-28 Jakub Jelinek <jakub@redhat.com>
4717
4718 * sysdeps/alpha/tcb-offsets.sym (MULTIPLE_THREADS_OFFSET): Define
4719 unconditionally.
4720
f3a19754
UD
47212004-06-28 Jakub Jelinek <jakub@redhat.com>
4722
4723 * sysdeps/pthread/pthread_rwlock_timedwrlock.c
4724 (pthread_rwlock_timedwrlock): Return EINVAL if tv_nsec is negative,
4725 instead of tv_sec.
4726 * sysdeps/pthread/pthread_rwlock_timedrdlock.c
4727 (pthread_rwlock_timedrdlock): Likewise.
4728
539842a4
UD
47292004-06-22 Jakub Jelinek <jakub@redhat.com>
4730
4731 * sysdeps/unix/sysv/linux/s390/lowlevellock.h (lll_futex_requeue):
4732 Set __r7 to val, not mutex.
4733
46f4c578
UD
47342004-06-27 Ulrich Drepper <drepper@redhat.com>
4735
4736 * Makefile: Add rules to build tst-rwlock14.
4737 * tst-rwlock14.c: New file.
4738
47392004-06-24 Boris Hu <boris.hu@intel.com>
4740
4741 * sysdeps/pthread/pthread_rwlock_timedrdlock.c: Add timeout validation
4742 check.
4743 * sysdeps/pthread/pthread_rwlock_timedwrlock.c: Likewise.
4744
9898e99c
AJ
47452004-06-19 Andreas Jaeger <aj@suse.de>
4746
4747 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Fix
4748 assembler in last patch.
4749
7c3164bc
UD
47502004-06-17 Ulrich Drepper <drepper@redhat.com>
4751
4752 * sysdeps/pthread/pthread_cond_timedwait.c
4753 (__pthread_cond_timedwait): Also check for negativ nanoseconds.
4754 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
4755 (__pthread_cond_timedwait): Check for invalid nanosecond in
4756 timeout value.
4757 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
4758 * tst-cond19.c: New file.
4759 * Makefile: Add rules to build and run tst-cond19.
4760
72e61500
UD
47612004-06-15 Steven Munroe <sjmunroe@us.ibm.com>
4762
4763 * tst-context1.c (GUARD_PATTERN): Defined.
4764 (tst_context_t): Define struct containing ucontext_t & guard words.
4765 (ctx): Declare as an array of tst_context_t.
4766 (fct): Verify uc_link & guard words are still valid.
4767 (tf): Initialize guard words in ctx. Adjust ctx refs for new struct.
4768
7c370086
UD
47692004-06-13 Kaz Kojima <kkojima@rr.iij4u.or.jp>
4770
4771 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h (pthread_cond_t):
4772 Add __data.__futex field, reshuffle __data.__clock.
4773 * sysdeps/unix/sysv/linux/sh/pthread_cond_signal.S
4774 (__pthread_cond_signal): Increment __futex at the same time as
4775 __wakeup_seq or __total_seq. Pass address of __futex instead of
4776 address of low 32-bits of __wakeup_seq to futex syscall.
4777 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S
4778 (__pthread_cond_wait): Likewise. Pass __futex value from before
4779 releasing internal lock to FUTEX_WAIT.
4780 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S
4781 (__pthread_cond_timedwait): Likewise.
4782 * sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S
4783 (FUTEX_CMP_REQUEUE): Define.
4784 (__pthread_cond_broadcast): Set __futex to 2 * __total_seq.
4785 Use FUTEX_CMP_REQUEUE operation instead of FUTEX_REQUEUE.
4786 Pass __futex value from before the unlock and __futex address instead
4787 of address of low 32-bits of __wakeup_seq to futex syscall.
4788 Fallback to FUTEX_WAKE all on any errors.
4789
a9e526e7
RM
47902004-06-08 Jakub Jelinek <jakub@redhat.com>
4791
4792 * pthread_mutexattr_getpshared.c (pthread_mutex_getpshared): Fix
4793 comment typo.
4794 * pthread_mutexattr_gettype.c (pthread_mutexattr_gettype): Likewise.
4795 * pthread_mutexattr_init.c (__pthread_mutexattr_init): Likewise.
4796 * pthread_mutexattr_settype.c (__pthread_mutexattr_settype): Likewise.
4797 * pthread_mutexattr_setpshared.c (pthread_mutexattr_setpshared):
4798 Likewise. Reported by Bob Cook <bobcook47@hotmail.com>.
4799
f1847a84
RM
48002004-06-11 Martin Schwidefsky <schwidefsky@de.ibm.com>
4801
4802 * sysdeps/unix/sysv/linux/s390/lowlevellock.h (lll_compare_and_swap):
4803 Add memory clobber to inline assembly.
4804 (__lll_mutex_trylock): Likewise.
4805 (__lll_mutex_cond_trylock): Likewise.
4806
f7c81e1a
UD
48072004-06-07 Martin Schwidefsky <schwidefsky@de.ibm.com>
4808
4809 * sysdeps/unix/sysv/linux/s390/lowlevellock.h (lll_futex_requeue):
4810 Pass val argument as 6th system call argument in %r7.
4811
75fccede
UD
48122004-05-21 Jakub Jelinek <jakub@redhat.com>
4813
4814 * Makefile (tests): Add tst-cond16.
4815 * sysdeps/unix/sysv/linux/lowlevelcond.sym (cond_futex): Add.
4816 * pthread_cond_init.c (__pthread_cond_init): Clear __data.__futex.
4817 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_cond_t):
4818 Add __data.__futex field, reshuffle __data.__clock.
4819 * sysdeps/unix/sysv/linux/i386/pthread_cond_signal.S
4820 (__pthread_cond_signal): Increment __futex at the same time as
4821 __wakeup_seq or __total_seq. Pass address of __futex instead of
4822 address of low 32-bits of __wakeup_seq to futex syscall.
4823 * sysdeps/unix/sysv/linux/i386/pthread_cond_wait.S
4824 (__pthread_cond_wait): Likewise. Pass __futex value from before
4825 releasing internal lock to FUTEX_WAIT.
4826 * sysdeps/unix/sysv/linux/i386/pthread_cond_timedwait.S
4827 (__pthread_cond_timedwait): Likewise.
4828 * sysdeps/unix/sysv/linux/i386/pthread_cond_broadcast.S
4829 (FUTEX_CMP_REQUEUE): Define.
4830 (__pthread_cond_broadcast): Set __futex to 2 * __total_seq.
4831 Use FUTEX_CMP_REQUEUE operation instead of FUTEX_REQUEUE.
4832 Pass __futex value from before the unlock and __futex address instead
4833 of address of low 32-bits of __wakeup_seq to futex syscall.
4834 Fallback to FUTEX_WAKE all on any errors.
4835 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h (FUTEX_CMP_REQUEUE):
4836 Define.
4837 (lll_futex_requeue): Add val argument, use FUTEX_CMP_REQUEUE
4838 internally. Return non-zero if error, zero if success.
4839 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h (pthread_cond_t):
4840 Add __data.__futex field, reshuffle __data.__clock.
4841 * sysdeps/unix/sysv/linux/s390/lowlevellock.h (FUTEX_CMP_REQUEUE):
4842 Define.
4843 (lll_futex_requeue): Add val argument, return 1 unconditionally
4844 for the time being.
4845 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h (pthread_cond_t):
4846 Add __data.__futex field, reshuffle __data.__clock.
4847 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h (FUTEX_CMP_REQUEUE):
4848 Define.
4849 (lll_futex_requeue): Add val argument, use FUTEX_CMP_REQUEUE
4850 internally. Return non-zero if error, zero if success.
4851 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h
4852 (pthread_cond_t): Add __data.__futex field, reshuffle __data.__clock.
4853 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h (FUTEX_CMP_REQUEUE):
4854 Define.
4855 (lll_futex_requeue): Add val argument, use FUTEX_CMP_REQUEUE
4856 internally. Return non-zero if error, zero if success.
4857 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h (pthread_cond_t):
4858 Add __data.__futex field, reshuffle __data.__clock.
4859 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (FUTEX_CMP_REQUEUE):
4860 Define.
4861 (lll_futex_requeue): Add val argument, use FUTEX_CMP_REQUEUE
4862 internally. Return non-zero if error, zero if success.
4863 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h (pthread_cond_t):
4864 Add __data.__futex field, reshuffle __data.__clock.
4865 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h (pthread_cond_t):
4866 Add __data.__futex field, reshuffle __data.__clock.
4867 * sysdeps/pthread/pthread_cond_signal.c (__pthread_cond_signal):
4868 Increment __futex at the same time as __wakeup_seq or __total_seq.
4869 Pass address of __futex instead of address of low 32-bits of
4870 __wakeup_seq to futex syscall.
4871 * sysdeps/pthread/pthread_cond_wait.c (__pthread_cond_wait): Likewise.
4872 Pass __futex value from before releasing internal lock
4873 to FUTEX_WAIT.
4874 * sysdeps/pthread/pthread_cond_timedwait.c (__pthread_cond_timedwait):
4875 Likewise. Avoid unnecessary shadowing of variables.
4876 * sysdeps/pthread/pthread_cond_broadcast.c (__pthread_cond_broadcast):
4877 Set __futex to 2 * __total_seq. Pass __futex value from before the
4878 unlock and __futex address instead of address of low 32-bits of
4879 __wakeup_seq to futex_requeue macro, adjust for new return value
4880 meaning.
4881 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S
4882 (__pthread_cond_signal): Increment __futex at the same time as
4883 __wakeup_seq or __total_seq. Pass address of __futex instead of
4884 address of low 32-bits of __wakeup_seq to futex syscall.
4885 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
4886 (__pthread_cond_wait): Likewise. Pass __futex value from before
4887 releasing internal lock to FUTEX_WAIT.
4888 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
4889 (__pthread_cond_timedwait): Likewise.
4890 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S
4891 (FUTEX_CMP_REQUEUE): Define.
4892 (__pthread_cond_broadcast): Set __futex to 2 * __total_seq.
4893 Use FUTEX_CMP_REQUEUE operation instead of FUTEX_REQUEUE.
4894 Pass __futex value from before the unlock and __futex address instead
4895 of address of low 32-bits of __wakeup_seq to futex syscall.
4896 Fallback to FUTEX_WAKE all on any errors.
4897
48982004-06-03 Kaz Kojima <kkojima@rr.iij4u.or.jp>
4899
4900 * sysdeps/unix/sysv/linux/sh/lowlevellock.h (lll_mutex_lock):
4901 Add nop to align the end of critical section.
4902 (lll_mutex_cond_lock, lll_mutex_timedlock): Likewise.
4903
fbf86dda
UD
49042004-06-01 Kaz Kojima <kkojima@rr.iij4u.or.jp>
4905
4906 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h (pthread_cond_t):
4907 Add __broadcast_seq field.
4908 * sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S: Mark
4909 all waiters as woken with woken_seq and bump broadcast counter.
4910 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Use new
4911 __broadcast_seq. Increment __woken_seq correctly when cleanuped.
4912 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise.
4913 Comment typo fixes. Avoid returning -ETIMEDOUT.
4914
49152004-06-01 Ulrich Drepper <drepper@redhat.com>
4916
4917 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
4918 (__condvar_tw_cleanup): Fix access to saved broadcast_seq value.
4919 Reported by Kaz Kojima.
4920
ffdd5e50
UD
49212004-05-25 Jakub Jelinek <jakub@redhat.com>
4922
4923 * sysdeps/unix/sysv/linux/aio_misc.h: New file.
4924
3abc82c8
UD
49252004-05-21 Jakub Jelinek <jakub@redhat.com>
4926
4927 * sysdeps/pthread/pthread_cond_wait.c (__pthread_cond_wait): Compare
4928 __broadcast_seq with bc_seq after acquiring internal lock instead of
4929 before it.
4930
893a3511
UD
49312004-05-18 Jakub Jelinek <jakub@redhat.com>
4932
4933 * Makefile (.NOTPARALLEL): Only serialize make check/xcheck, not
4934 compilation.
4935 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
4936 (__pthread_cond_timedwait): Avoid returning -ETIMEDOUT.
4937 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h
4938 (pthread_cond_t): Add __data.__broadcast_seq field.
4939 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
4940 (FRAME_SIZE): Define.
4941 (__pthread_cond_timedwait): Use it. Store/check broadcast_seq.
4942 Comment typo fixes.
4943 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S (FRAME_SIZE):
4944 Define.
4945 (__pthread_cond_wait): Use it. Store/check broadcast_seq. Comment
4946 typo fixes.
4947 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S
4948 (__pthread_cond_broadcast): Increment broadcast_seq. Comment typo
4949 fixes.
4950
49512004-05-18 Ulrich Drepper <drepper@redhat.com>
4952
4953 * sysdeps/unix/sysv/linux/lowlevelcond.sym: Add broadcast_seq entry.
4954 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h (pthread_cond_t):
4955 Add __broadcast_seq field.
4956 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
4957 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
4958 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: Likewise.
4959 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Likewise.
4960 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
4961 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S: Mark
4962 all waiters as woken with woken_seq and bump broadcast counter.
4963 * sysdeps/pthread/pthread_cond_broadcast.c: Likewise.
4964 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Use new
4965 __broadcast_seq field.
4966 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
4967 * sysdeps/pthread/pthread_cond_wait.c: Likewise.
4968 * sysdeps/pthread/pthread_cond_timedwait.c: Likewise.
4969 * pthread_cond_init.c: Initialize __broadcast_seq field.
4970 * Makefile (tests): Add tst-cond17 and tst-cond18.
4971 Add .NOTPARALLEL goal.
4972 * tst-cond16.c: New file. From Jakub.
4973 * tst-cond17.c: New file. From Jakub.
4974 * tst-cond18.c: New file. From Jakub.
4975
4123718e
UD
49762004-05-16 Ulrich Drepper <drepper@redhat.com>
4977
4978 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: Correct some
4979 unwind info.
4980
4981 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S:
4982 Parametrize frame size. Correct some unwind info.
4983 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
4984
2d7ae210
UD
49852004-05-04 Jakub Jelinek <jakub@redhat.com>
4986
4987 * tst-stack3.c: Note testing functionality beyond POSIX.
4988
50c2b6d7
UD
49892004-05-04 Jakub Jelinek <jakub@redhat.com>
4990
4991 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h (USE___THREAD):
4992 Change conditional from ifdef to if.
4993
27b02589
UD
49942004-04-23 Jakub Jelinek <jakub@redhat.com>
4995
4996 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h (SYSDEP_CANCEL_ERRNO,
4997 SYSDEP_CANCEL_ERROR): Define.
4998 (PSEUDO): Use it.
4999
4bb8fc33
UD
50002004-05-01 Jakub Jelinek <jakub@redhat.com>
5001
5002 * Versions (libpthread): Remove __pthread_cleanup_upto@@GLIBC_PRIVATE.
5003
f9a06dc1
UD
50042004-04-20 Jakub Jelinek <jakub@redhat.com>
5005
5006 * sem_unlink.c (sem_unlink): Change EPERM into EACCES.
5007
d3b52028
UD
50082004-04-19 Kaz Kojima <kkojima@rr.iij4u.or.jp>
5009
5010 * sysdeps/unix/sysv/linux/sh/sem_timedwait.S: Add frame info.
5011 Use HIDDEN_JUMPTARGET to jump to __pthread_unwind.
5012 * sysdeps/unix/sysv/linux/sh/sem_wait.S: Remove unneeded frame
5013 info. Use HIDDEN_JUMPTARGET to jump to __pthread_unwind.
5014
a5dd0a6c
UD
50152004-04-19 Ulrich Drepper <drepper@redhat.com>
5016
5017 * sysdeps/unix/sysv/linux/timer_routines.c: Make sure helper
5018 thread has all signals blocked.
5019
620c3354
AJ
50202004-04-18 Andreas Jaeger <aj@suse.de>
5021
5022 * sysdeps/unix/sysv/linux/x86_64/bits/semaphore.h
5023 (SEM_VALUE_MAX): Add missing brace.
5024
1683daeb
UD
50252004-04-17 Jakub Jelinek <jakub@redhat.com>
5026
5027 * sysdeps/pthread/Makefile (tests): Add tst-mqueue8x
5028 in rt subdir.
5029 (CFLAGS-tst-mqueue8x.c): Add -fexceptions.
5030 * sysdeps/pthread/tst-mqueue8x.c: New test.
5031 * tst-cancel4.c: Update comment about message queues.
5032
5033 * sysdeps/pthread/timer_gettime.c (timer_gettime): For expired timer
5034 return it_value { 0, 0 }.
5035 * sysdeps/pthread/timer_create.c (timer_create): Handle SIGEV_NONE
5036 like SIGEV_SIGNAL.
5037 * sysdeps/pthread/timer_routines.c (thread_expire_timer): Remove
5038 assertion for SIGEV_NONE.
5039 (thread_attr_compare): Compare all attributes, not just a partial
5040 subset.
5041
50422004-04-17 Jakub Jelinek <jakub@redhat.com>
5043
5044 * sysdeps/unix/sysv/linux/mq_notify.c: Include stdlib.h.
5045
f532641d
UD
50462004-04-17 Ulrich Drepper <drepper@redhat.com>
5047
5048 * sysdeps/unix/sysv/linux/alpha/bits/semaphore.h (SEM_VALUE_MAX):
5049 Just use a plain number.
5050 * sysdeps/unix/sysv/linux/i386/bits/semaphore.h: Likewise.
5051 * sysdeps/unix/sysv/linux/ia64/bits/semaphore.h: Likewise.
5052 * sysdeps/unix/sysv/linux/powerpc/bits/semaphore.h: Likewise.
5053 * sysdeps/unix/sysv/linux/s390/bits/semaphore.h: Likewise.
5054 * sysdeps/unix/sysv/linux/sh/bits/semaphore.h: Likewise.
5055 * sysdeps/unix/sysv/linux/sparc/bits/semaphore.h: Likewise.
5056 * sysdeps/unix/sysv/linux/x86_64/bits/semaphore.h: Likewise.
5057
7eb7fdda
UD
50582004-04-16 Kaz Kojima <kkojima@rr.iij4u.or.jp>
5059
53392906
UD
5060 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Remove unneeded
5061 frame info.
5062 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise.
7eb7fdda 5063
d7ba1313
UD
50642004-04-15 Jakub Jelinek <jakub@redhat.com>
5065
5066 * sysdeps/unix/sysv/linux/timer_routines.c: Include errno.h.
5067 (timer_helper_thread): Use inline rt_sigtimedwait syscall instead
5068 of calling sigwaitinfo.
5069
5adac0e4
UD
50702004-04-16 Ulrich Drepper <drepper@redhat.com>
5071
5072 * allocatestack.c (allocate_stack): Set reported_guardsize
5073 unconditionally.
5074 * pthread_getattr_np.c (pthread_getattr_np): Use
5075 reported_guardsize instead of guardsize.
5076 * descr.h (struct pthread): Add reported_guardsize field.
5077
f93fa7d4
UD
50782004-04-13 Jakub Jelinek <jakub@redhat.com>
5079
5080 * sysdeps/unix/sysv/linux/mq_notify.c: Shut up GCC warning.
5081
1b82c6c7
UD
50822004-04-12 Ulrich Drepper <drepper@redhat.com>
5083
5084 * sysdeps/unix/sysv/linux/mq-notify.c: New file.
5085
50862004-04-08 Jakub Jelinek <jakub@redhat.com>
5087
5088 * sysdeps/unix/sysv/linux/bits/local_lim.h (MQ_PRIO_MAX): Define.
5089 * sysdeps/unix/sysv/linux/alpha/bits/local_lim.h (MQ_PRIO_MAX): Define.
5090 * sysdeps/unix/sysv/linux/ia64/bits/local_lim.h (MQ_PRIO_MAX): Define.
5091 * sysdeps/unix/sysv/linux/sparc/bits/local_lim.h (MQ_PRIO_MAX): Define.
5092 * sysdeps/unix/sysv/linux/bits/posix_opt.h (_POSIX_MESSAGE_PASSING):
5093 Define.
5094 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h
5095 (_POSIX_MESSAGE_PASSING): Define.
5096 * sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h
5097 (_POSIX_MESSAGE_PASSING): Define.
5098 * sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h
5099 (_POSIX_MESSAGE_PASSING): Define.
5100
e6eb894e
UD
51012004-04-04 Ulrich Drepper <drepper@redhat.com>
5102
5103 * tst-context1.c (fct): Check whether correct stack is used.
5104
1e084487
UD
51052004-04-03 Ulrich Drepper <drepper@redhat.com>
5106
4e73e115
UD
5107 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Never use
5108 matching constraints for asm mem parameters.
5109
1e084487
UD
5110 * tst-clock2.c (tf): Don't define unless needed.
5111
feca5e0b
UD
51122004-03-30 H.J. Lu <hongjiu.lu@intel.com>
5113
5114 * Makefile (link-libc-static): Use $(static-gnulib) instead of
5115 $(gnulib).
5116
3fa21fd8
UD
51172004-03-30 Ulrich Drepper <drepper@redhat.com>
5118
5119 * sysdeps/pthread/pthread-functions.h: Add ptr__nptl_deallocate_tsd.
5120 * init.c (pthread_functions): Add ptr__nptl_deallocate_tsd.
5121 * pthreadP.h: Declare __nptl_deallocate_tsd.
5122 * pthread_create.c (deallocate_tsd): Remove to __nptl_deallocate_tsd.
5123 Adjust caller.
5124
5125 * Makefile (tests): Add tst-tsd5.
5126 * tst-tsd5.c: New file.
5127
8e32efa6
UD
51282004-03-29 Ulrich Drepper <drepper@redhat.com>
5129
5130 * sysdeps/unix/sysv/linux/pthread_attr_setaffinity.c
5131 (__pthread_attr_setaffinity_old): Prepend GLIBC_ to version names
5132 is SHLIB_COMPAT check.
5133 * sysdeps/unix/sysv/linux/pthread_attr_getaffinity.c
5134 (__pthread_attr_getaffinity_old): Likewise.
5135 * sysdeps/unix/sysv/linux/pthread_getaffinity.c
5136 (__pthread_getaffinity_old): Likewise.
5137 * sysdeps/unix/sysv/linux/pthread_setaffinity.c
5138 (__pthread_setaffinity_old): Likewise.
5139
eec8b6ca
UD
51402004-03-26 Ulrich Drepper <drepper@redhat.com>
5141
5142 * allocatestack.c (_make_stacks_executable): Call
5143 _dl_make_stack_executable first.
5144
db2f05ba
RM
51452004-03-24 Roland McGrath <roland@redhat.com>
5146
5147 * sysdeps/i386/pthread_spin_lock.c (pthread_spin_lock): Use "m"
5148 constraint instead of "0".
5149
6abbc501
UD
51502004-03-24 Ulrich Drepper <drepper@redhat.com>
5151
68dc4dcb
UD
5152 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h
5153 (lll_mutex_cond_trylock): Define as wrapper around __lll_cond_trylock.
5154
6abbc501
UD
5155 * sysdeps/unix/sysv/linux/getpid.c (really_getpid): Reorganize
5156 code to avoid warning.
5157
865e14d9
AJ
51582004-03-24 Andreas Jaeger <aj@suse.de>
5159
5160 * sysdeps/unix/sysv/linux/pthread_attr_setaffinity.c
5161 (__pthread_attr_setaffinity_old): Remove const.
5162
16b06b70
UD
51632004-03-23 Ulrich Drepper <drepper@redhat.com>
5164
2c0b891a
UD
5165 * sysdeps/unix/sysv/linux/smp.h: New file.
5166 * sysdeps/unix/sysv/linux/sh/smp.h: New file.
5167 * init.c: Define __is_smp.
5168 (__pthread_initialize_minimal_internal): Call is_smp_system to
5169 initialize __is_smp.
5170 * pthreadP.h: Declare __is_smp.
5171 Define MAX_ADAPTIVE_COUNT is necessary.
5172 * pthread_mutex_init.c: Add comment regarding __spins field.
5173 * pthread_mutex_lock.c: Implement adaptive mutex type.
5174 * pthread_mutex_timedlock.c: Likewise.
5175 * sysdeps/unix/sysv/linux/pthread_mutex_cond_lock.c: Likewise.
5176 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h (pthread_mutex_t):
5177 Add __spins field.
5178 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Likewise.
5179 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
5180 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
5181 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Likewise.
5182 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
5183 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: Likewise.
5184 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
5185 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h: Define
5186 lll_mutex_cond_trylock.
5187 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
5188 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Likewise.
5189 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
5190 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: Likewise.
5191 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Likewise.
5192 Define BUSY_WAIT_NOP.
5193 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
5194 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
5195
5196 * tst-mutex5.c: Add support for testing adaptive mutexes.
5197 * tst-mutex7.c: Likewise.
5198 * tst-mutex5a.c: New file.
5199 * tst-mutex7a.c: New file.
5200 * Makefile (tests): Add tst-mutex5a and tst-mutex7a.
5201
565699e4
UD
5202 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
5203 (__lll_mutex_timedlock_wait): Preserve r8 and r9 since the
6abbc501 5204 vgettimeofday call might destroy the content.
565699e4 5205
7fe1586f
UD
5206 * sysdeps/ia64/pthread_spin_lock.c (pthread_spin_lock): Use hint
5207 @pause in the loop.
5208
e408880b
UD
5209 * sysdeps/unix/sysv/linux/i386/lowlevellock.h (lll_mutex_trylock):
5210 No need to restrict type of ret. Make it int. Add comment.
5211
16b06b70
UD
5212 * sysdeps/unix/sysv/linux/i386/lowlevellock.h (lll_mutex_trylock):
5213 Remove unnecessary setne instruction.
5214
61645263
UD
52152004-03-22 Jakub Jelinek <jakub@redhat.com>
5216
5217 * sysdeps/unix/sysv/linux/pthread_getaffinity.c
5218 (__pthread_getaffinity_new): Use INT_MAX instead of UINT_MAX.
5219 * pthread_getattr_np.c (pthread_getattr_np): Double size every cycle.
5220 If realloc fails, break out of the loop.
5221
e3d4c585
AJ
52222004-03-20 Andreas Jaeger <aj@suse.de>
5223
5224 * sysdeps/unix/sysv/linux/pthread_setaffinity.c
5225 (__pthread_setaffinity_old): Fix interface.
5226 * sysdeps/unix/sysv/linux/pthread_getaffinity.c
5227 (__pthread_getaffinity_old): Likewise.
5228
5229 * sysdeps/unix/sysv/linux/pthread_setaffinity.c
5230 (__pthread_setaffinity_new): Remove duplicate declaration.
5231
3abb1ff7
UD
52322004-03-20 Kaz Kojima <kkojima@rr.iij4u.or.jp>
5233
5234 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h (CENABLE): Save
5235 the return value to a safe register.
5236 (CDISABLE): Set the function argument correctly.
5237
07bd2a3f
UD
52382004-03-17 Kaz Kojima <kkojima@rr.iij4u.or.jp>
5239
5240 * sysdeps/unix/sysv/linux/sh/lowlevel-atomic.h (XCHG): Define.
5241 * sysdeps/unix/sysv/linux/sh/lowlevellock.S (__lll_mutex_lock_wait):
5242 Rewrite so that only one locked memory operation per round is needed.
5243 * sysdeps/unix/sysv/linux/sh/pthread_barrier_wait.S
5244 (pthread_barrier_wait): After wakeup, release lock only when the
5245 last thread stopped using the barrier object.
5246 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S
5247 (__pthread_cond_wait): Don't store mutex address if the current
5248 value is ~0l. Add correct cleanup support and unwind info.
5249 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise.
5250 * sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S
5251 (__pthread_cond_broadcast): Don't use requeue for pshared condvars.
5252 * sysdeps/unix/sysv/linux/sh/pthread_cond_signal.S: Update comment.
5253 * sysdeps/unix/sysv/linux/sh/pthread_once.S (__pthread_once):
5254 Add correct cleanup support and unwind info.
5255 * sysdeps/unix/sysv/linux/sh/sem_wait.S (__new_sem_wait): Likewise.
5256 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h: Add unwind
5257 information for syscall wrappers.
5258
14c35863
UD
52592004-03-18 Ulrich Drepper <drepper@redhat.com>
5260
5261 * sysdeps/unix/sysv/linux/internaltypes.h (struct pthread_attr): Add
5262 cpusetsize field, remove next.
5263 * sysdeps/pthread/pthread.h (pthread_getaffinity_np): Add new second
5264 parameter for size of the CPU set.
5265 (pthread_setaffinity_np): Likewise.
5266 (pthread_attr_getaffinity_np): Likewise.
5267 (pthread_attr_setaffinity_np): Likewise.
5268 * sysdeps/unix/sysv/linux/pthread_attr_getaffinity.c: Implement
5269 interface change, keep compatibility code.
5270 * sysdeps/unix/sysv/linux/pthread_attr_setaffinity.c: Likewise.
5271 * sysdeps/unix/sysv/linux/pthread_getaffinity.c: Likewise.
5272 * sysdeps/unix/sysv/linux/pthread_setaffinity.c: Likewise.
5273 * pthreadP.h: Remove hidden_proto for pthread_getaffinity_np. Declare
5274 __pthread_getaffinity_np.
5275 * Versions: Add version for changed interfaces.
5276 * tst-attr3.c: Adjust test for interface change.
5277 * pthread_getattr_np.c: Query the kernel about the affinity mask with
5278 increasing buffer sizes.
5279 * pthread_attr_destroy.c: Remove unused list handling.
5280 * pthread_attr_init.c: Likewise.
5281
8e115d80
RM
52822004-03-17 Roland McGrath <roland@redhat.com>
5283
5284 * sysdeps/unix/sysv/linux/timer_create.c (timer_create): Pass missing
5285 first argument to clock_getres so we ever enable kernel timers.
5286
e3b22ad3
UD
52872004-03-15 Ulrich Weigand <uweigand@de.ibm.com>
5288
5289 * init.c (nptl_version): Add __attribute_used__ to nptl_version.
5290
841153fa
RH
52912004-03-12 Richard Henderson <rth@redhat.com>
5292
e3b22ad3
UD
5293 * sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h: Propagate
5294 oldvalue from CENABLE to CDISABLE.
841153fa 5295
932dfea7
UD
52962004-03-12 Ulrich Drepper <drepper@redhat.com>
5297
5298 * sysdeps/unix/sysv/linux/bits/local_lim.h: Define HOST_NAME_MAX.
5299 * sysdeps/unix/sysv/linux/alpha/bits/local_lim.h: Likewise.
5300 * sysdeps/unix/sysv/linux/ia64/bits/local_lim.h: Likewise.
5301 * sysdeps/unix/sysv/linux/sparc/bits/local_lim.h: Likewise.
5302
9852f6dc
RH
53032004-03-11 Richard Henderson <rth@redhat.com>
5304
5305 * sysdeps/alpha/tcb-offsets.sym (PID_OFFSET): New.
5306 * sysdeps/unix/sysv/linux/alpha/pt-vfork.S: Save/restore PID.
5307 * sysdeps/unix/sysv/linux/alpha/vfork.S: New file.
5308
43513fb7
UD
53092004-03-11 Jakub Jelinek <jakub@redhat.com>
5310
5311 * sysdeps/unix/sysv/linux/s390/s390-64/vfork.S (__vfork): Use jgnl
5312 instead of jnl instruction to jump to SYSCALL_ERROR_LABEL.
5313 * sysdeps/unix/sysv/linux/s390/s390-64/pt-vfork.S (__vfork): Likewise.
5314
53152004-03-11 Jakub Jelinek <jakub@redhat.com>
5316
5317 * forward.c (__pthread_cond_broadcast_2_0,
5318 __pthread_cond_destroy_2_0, __pthread_cond_init_2_0,
5319 __pthread_cond_signal_2_0, __pthread_cond_wait_2_0,
5320 __pthread_cond_timedwait_2_0): Use return 0 as defaction instead of 0.
5321
8a3e10e0
UD
53222004-03-11 Kaz Kojima <kkojima@rr.iij4u.or.jp>
5323
5324 * sysdeps/sh/tcb-offsets.sym: Add PID.
5325 * sysdeps/unix/sysv/linux/sh/pt-vfork.S: Properly handle PID cache.
5326 * sysdeps/unix/sysv/linux/sh/vfork.S: New file.
5327
6d3a2bec
UD
53282004-03-10 Ulrich Drepper <drepper@redhat.com>
5329
5330 * sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S: No need to
5331 include <sysdep-cancel.h>, vfork is no cancellation point.
5332 * sysdeps/unix/sysv/linux/powerpc/powerpc64/vfork.S: Likewise.
5333 * sysdeps/unix/sysv/linux/powerpc/powerpc64/pt-vfork.S: Likewise.
5334 * sysdeps/unix/sysv/linux/powerpc/powerpc32/pt-vfork.S: Likewise.
5335
d3a4a571
UD
53362004-03-10 Jakub Jelinek <jakub@redhat.com>
5337
73b4ce64
UD
5338 * sysdeps/unix/sysv/linux/s390/s390-32/vfork.S (__vfork): Add
5339 libc_hidden_def.
5340 * sysdeps/unix/sysv/linux/s390/s390-64/vfork.S (__vfork): Likewise.
5341 * sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S (__vfork):
5342 Likewise.
5343 * sysdeps/unix/sysv/linux/powerpc/powerpc64/vfork.S (__vfork):
5344 Likewise.
5345 * sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S (__vfork): Likewise.
5346 * sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S (__vfork): Likewise.
5347 * sysdeps/unix/sysv/linux/ia64/pt-vfork.S: Include tcb-offsets.h.
5348 * sysdeps/unix/sysv/linux/ia64/vfork.S (__vfork): Use DO_CALL instead
5349 of DO_CALL_VIA_BREAK. Work around a gas problem.
5350
d682a515
UD
5351 * sysdeps/unix/sysv/linux/powerpc/pt-vfork.S: Remove.
5352 * sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S: New file.
5353 * sysdeps/unix/sysv/linux/powerpc/powerpc32/pt-vfork.S: New file.
5354 * sysdeps/unix/sysv/linux/powerpc/powerpc64/vfork.S: New file.
5355 * sysdeps/unix/sysv/linux/powerpc/powerpc64/pt-vfork.S: New file.
5356 * sysdeps/powerpc/tcb-offsets.sym: Add PID.
5357
5358 * sysdeps/unix/sysv/linux/ia64/pt-vfork.S (__vfork): Don't use
5359 a local register for saving old PID. Negate PID in parent upon exit.
5360
d3a4a571
UD
5361 * sysdeps/unix/sysv/linux/s390/s390-32/pt-vfork.S: Include
5362 tcb-offsets.h.
5363 (__vfork): Negate PID if non-zero and set to INT_MIN if zero
5364 before syscall, set to the old value in the parent afterwards.
5365 * sysdeps/unix/sysv/linux/s390/s390-32/vfork.S: New file.
5366 * sysdeps/unix/sysv/linux/s390/s390-64/pt-vfork.S: Include
5367 tcb-offsets.h.
5368 (__vfork): Negate PID if non-zero and set to INT_MIN if zero
5369 before syscall, set to the old value in the parent afterwards.
5370 * sysdeps/unix/sysv/linux/s390/s390-64/vfork.S: New file.
5371 * sysdeps/s390/tcb-offsets.sym: Add PID.
5372
5373 * sysdeps/unix/sysv/linux/sparc/pt-vfork.S: Remove.
5374 * sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S: New file.
5375 * sysdeps/unix/sysv/linux/sparc/sparc32/pt-vfork.S: New file.
5376 * sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S: New file.
5377 * sysdeps/unix/sysv/linux/sparc/sparc64/pt-vfork.S: New file.
5378 * sysdeps/sparc/tcb-offsets.sym: Add PID.
5379
53802004-03-10 Andreas Schwab <schwab@suse.de>
5381
5382 * sysdeps/ia64/tcb-offsets.sym: Add PID.
5383 * sysdeps/unix/sysv/linux/ia64/vfork.S: New file.
5384 * sysdeps/unix/sysv/linux/ia64/pt-vfork.S: Properly handle PID cache.
5385
3f2fb223 53862004-03-09 Jakub Jelinek <jakub@redhat.com>
f4c024d1 5387
3f2fb223
UD
5388 * tst-cancel20.c (do_one_test): Clear in_sh_body first.
5389 * tst-cancel21.c (do_one_test): Likewise.
5390 Reported by Gordon Jin <gordon.jin@intel.com>.
f4c024d1 5391
8b9d6054
UD
53922004-02-09 Jakub Jelinek <jakub@redhat.com>
5393
5394 * sysdeps/unix/sysv/linux/i386/vfork.S (SAVE_PID): Negate PID
5395 if non-zero and set to INT_MIN if zero.
5396 * sysdeps/unix/sysv/linux/x86_64/vfork.S (SAVE_PID): Likewise.
5397 * sysdeps/unix/sysv/linux/i386/pt-vfork.S: Include tcb-offsets.h.
5398 (SAVE_PID, RESTORE_PID): Define.
5399 (__vfork): Use it.
5400 * sysdeps/unix/sysv/linux/x86_64/pt-vfork.S: Include tcb-offsets.h.
5401 Use relative path to avoid including NPTL i386/vfork.S.
5402 (SAVE_PID, RESTORE_PID): Define.
5403 * sysdeps/unix/sysv/linux/raise.c: Include limits.h.
5404 (raise): Handle THREAD_SELF->pid INT_MIN the same as 0.
5405 * Makefile (tests): Add tst-vfork1, tst-vfork2, tst-vfork1x and
5406 tst-vfork2x.
5407 (tests-reverse): Add tst-vfork1x and tst-vfork2x.
5408 * tst-vfork1.c: New test.
5409 * tst-vfork2.c: New test.
5410 * tst-vfork1x.c: New test.
5411 * tst-vfork2x.c: New test.
5412
02287d05
UD
54132004-03-08 Ulrich Drepper <drepper@redhat.com>
5414
c072ef6d 5415 * sysdeps/i386/tcb-offsets.sym: Add PID.
6fadea9f 5416 * sysdeps/x86_64/tcb-offsets.sym: Likewise.
c072ef6d 5417 * sysdeps/unix/sysv/linux/i386/vfork.S: New file.
6fadea9f 5418 * sysdeps/unix/sysv/linux/x86_64/vfork.S: New file.
02287d05 5419
d4acd24b
UD
54202004-03-08 Steven Munroe <sjmunroe@us.ibm.com>
5421
5422 * sysdeps/unix/sysv/linux/powerpc/Versions: Remove leading tabs.
5423
8acb4b81
UD
54242004-03-08 H.J. Lu <hongjiu.lu@intel.com>
5425
5426 * sysdeps/s390/tls.h (INIT_SYSINFO): _dl_sysinfo is now in
5427 _rtld_global_ro.
5428
4d1a02ef
UD
54292004-03-07 Ulrich Drepper <drepper@redhat.com>
5430
001836c8 5431 * sysdeps/ia64/tls.h (INIT_SYSINFO): _dl_sysinfo is now in
8acb4b81 5432 _rtld_global_ro.
001836c8 5433
4d1a02ef
UD
5434 * tst-once4.c: Remove unnecessary macro definition.
5435
5436 * tst-mutex7.c (do_test): Limit thread stack size.
5437 * tst-once2.c (do_test): Likewise.
5438 * tst-tls3.c (do_test): Likewise.
5439 * tst-tls1.c (do_test): Likewise.
5440 * tst-signal3.c (do_test): Likewise.
5441 * tst-kill6.c (do_test): Likewise.
5442 * tst-key4.c (do_test): Likewise.
5443 * tst-join4.c (do_test): Likewise.
5444 * tst-fork1.c (do_test): Likewise.
5445 * tst-context1.c (do_test): Likewise.
5446 * tst-cond2.c (do_test): Likewise.
5447 * tst-cond10.c (do_test): Likewise.
5448 * tst-clock2.c (do_test): Likewise.
5449 * tst-cancel10.c (do_test): Likewise.
5450 * tst-basic2.c (do_test): Likewise.
5451 * tst-barrier4.c (do_test): Likewise.
5452
aa420660
UD
54532004-03-05 Ulrich Drepper <drepper@redhat.com>
5454
5455 * sysdeps/i386/tls.h: Use GLRO instead of GL where appropriate.
5456
cff08c81
UD
54572004-03-01 Ulrich Drepper <drepper@redhat.com>
5458
5459 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
5460 (__pthread_cond_timedwait): Optimize wakeup test.
5461 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S
5462 (__pthread_cond_wait): Likewise.
5463 * sysdeps/pthread/pthread_cond_wait.c (__pthread_cond_wait): Likewise.
5464 * sysdeps/pthread/pthread_cond_timedwait.c (__pthread_cond_timedwait):
5465 Likewise.
5466
b7fe377c
UD
54672004-02-29 Ulrich Drepper <drepper@redhat.com>
5468
5469 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
5470 (__lll_mutex_lock_wait): Optimize a bit more. Just one copy of
5471 the atomic instruction needed.
5472 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
5473 (__lll_mutex_lock_wait): Likewise.
5474
4c771a3b
UD
54752004-02-28 Ulrich Drepper <drepper@redhat.com>
5476
5477 * Makefile (tests): Add tst-cond14 and tst-cond15.
5478 * tst-cond14.c: New file.
5479 * tst-cond15.c: New file.
5480
a2c33d5a
UD
54812004-02-27 Ulrich Drepper <drepper@redhat.com>
5482
5483 * sysdeps/pthread/createthread.c (create_thread): Remove use of
5484 CLONE_STOPPED. We cannot use SIGCONT which means CLONE_STOPPED
5485 needs to be implemented differently to be useful.
5486
261eada2
UD
54872004-02-26 Ulrich Drepper <drepper@redhat.com>
5488
14ffbc83
UD
5489 * pthread_attr_setschedparam.c: Don't test priority against limits
5490 here. Set ATTR_FLAG_SCHED_SET flag.
5491 * pthread_attr_setschedpolicy.c: Set ATTR_FLAG_POLICY_SET flag.
5492 * pthread_create.c (__pthread_create_2_1): Copy scheduling attributes
5493 from parent thread to child. If attribute is used and scheduling
5494 parameters are not inherited, copy parameters from attribute or
5495 compute them. Check priority value.
5496 * pthread_getschedparam.c: If the parameters aren't known yet get
5497 them from the kernel.
5498 * pthread_setschedparam.c: Set ATTR_FLAG_SCHED_SET and
5499 ATTR_FLAG_POLICY_SET flag for thread.
5500 * sysdeps/unix/sysv/linux/internaltypes.h: Define ATTR_FLAG_SCHED_SET
5501 and ATTR_FLAG_POLICY_SET.
5502
5503 * sysdeps/pthread/createthread.c: Use tgkill if possible.
5504
261eada2
UD
5505 * pthread_attr_getstackaddr.c (__pthread_attr_getstackaddr): Don't
5506 fail if stack address hasn't been set. Just return 0.
5507
701d185c
UD
55082004-02-25 Ulrich Drepper <drepper@redhat.com>
5509
25b8e63c
UD
5510 * Makefile (tests-nolibpthread): Add tst-unload. Don't link with
5511 libpthread for the files in this list.
5512 (CFLAGS-tst-unload): Removed.
5513 * tst-unload.c (do_test): Don't use complete path for
5514 LIBPHREAD_SO.
5515
701d185c
UD
5516 * Makefile: Define sonames for tst-tls5mod, tst-_res1mod1, and
5517 tst-_res1mod2.
5518
a8fd5a02
UD
55192004-02-22 Ulrich Drepper <drepper@redhat.com>
5520
5521 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
5522 (__lll_mutex_lock_wait): Rewrite so that only one locked memory
5523 operation per round is needed.
5524 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
5525 (__lll_mutex_lock_wait): Likewise.
5526
dd0b7b19
UD
55272004-02-20 Ulrich Drepper <drepper@redhat.com>
5528
5529 * tst-cancel9.c (cleanup): Don't print to stderr.
5530
5990e1fe
UD
55312004-02-20 Kaz Kojima <kkojima@rr.iij4u.or.jp>
5532
5533 * sysdeps/sh/jmpbuf-unwind.h (_JMPBUF_UNWINDS_ADJ): Fix variable name.
5534
33ab3b66
UD
55352004-02-20 Jakub Jelinek <jakub@redhat.com>
5536
1be3130e
UD
5537 * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h
5538 (__syscall_error_handler2): Call CDISABLE.
5539 * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h
5540 (__syscall_error_handler2): Call CDISABLE.
5541
8ba5025a
UD
5542 * sysdeps/pthread/pthread_barrier_wait.c (pthread_barrier_wait):
5543 Release lock before the loop, don't reacquire it.
8ba5025a 5544
33ab3b66
UD
5545 * sysdeps/unix/sysv/linux/ia64/dl-sysdep.h (DL_ARGV_NOT_RELRO): Define.
5546
11986c68
UD
55472004-02-19 Andreas Schwab <schwab@suse.de>
5548
5549 * sysdeps/pthread/pthread_barrier_wait.c (pthread_barrier_wait):
5550 Fix last change.
5551
dc391246
UD
55522004-02-18 Ulrich Drepper <drepper@redhat.com>
5553
37c054c7
UD
5554 * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S
5555 (pthread_barrier_wait): After wakeup, release lock only when the
5556 last thread stopped using the barrier object.
5557 * sysdeps/unix/sysv/linux/x86_64/pthread_barrier_wait.S
5558 (pthread_barrier_wait): Likewise.
5559 * sysdeps/pthread/pthread_barrier_wait.c (pthread_barrier_wait):
5560 Likewise.
5561 * Makefile (tests): Add tst-barrier4.
5562 * tst-barrier4.c: New file.
dc391246
UD
5563
5564 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
5565 (__pthread_cond_timedwait): Perform timeout test while holding
5566 internal lock to prevent wakeup race.
5567 Patch by Dinakar Guniguntala <dgunigun@in.ibm.com>.
5568 * sysdeps/pthread/pthread_cond_timedwait.c
5569 (__pthread_cond_timedwait): Likewise.
5570 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
5571 (__pthread_cond_timedwait): Likewise.
5572
4a08113c
UD
55732004-02-18 Jakub Jelinek <jakub@redhat.com>
5574
5575 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_unlock.S
5576 (__pthread_rwlock_unlock): Access WRITER as 32-bit value.
5577 * Makefile (tests): Add tst-rwlock13.
5578 * tst-rwlock13.c: New test.
5579
71b1675e
UD
55802004-02-16 Ulrich Drepper <drepper@redhat.com>
5581
5582 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
5583 (__condvar_tw_cleanup): Little optimization.
5584 Patch by Dinakar Guniguntala <dgunigun@in.ibm.com>.
5585
cd9fdc72
UD
55862004-02-16 Steven Munroe <sjmunroe@us.ibm.com>
5587
5588 * sysdeps/unix/sysv/linux/powerpc/pt-longjmp.c: Replace libc with
5589 libpthread as "lib" parameter to SHLIB_COMPAT.
5590 (__novmx_siglongjmp): Fix typo in function name.
5591 (__novmx_longjmp): Fix typo in function name.
5592
82038750
UD
55932004-02-13 Ulrich Drepper <drepper@redhat.com>
5594
b078c591
UD
5595 * sysdeps/pthread/pthread_cond_wait.c (__pthread_cond_wait): Add a
5596 __builtin_expect.
5597
82038750
UD
5598 * sysdeps/generic/pt-longjmp.c: Moved to...
5599 * sysdeps/pthread/pt-longjmp.c: ...here. New file.
5600
e2982bf0
UD
56012004-01-29 Steven Munroe <sjmunroe@us.ibm.com>
5602
5603 * Makefile (libpthread-routines): Add pt-cleanup.
5604 * pt-longjmp.c: Removed.
5605 * pt-cleanup.c: Copied __pthread_cleanup_upto to here. New file.
5606 * sysdeps/generic/pt-longjmp.c: Copied longjmp to here. New file.
5607 * sysdeps/unix/sysv/linux/powerpc/Versions: New file.
5608 Version longjmp, siglongjmp for GLIBC_2.3.4.
5609 * sysdeps/unix/sysv/linux/powerpc/pt-longjmp.c: New File.
5610
3730d95c
UD
56112004-02-13 Ulrich Drepper <drepper@redhat.com>
5612
219304ec
UD
5613 * sysdeps/pthread/pthread_cond_timedwait.c
5614 (__pthread_cond_timedwait): Optimize. Drop internal lock earlier.
5615 Reuse code. Add __builtin_expects.
5616
3730d95c
UD
5617 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
5618 (__pthread_cond_timedwait): Get internal lock in case timeout has
5619 passed before the futex syscall.
5620 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
5621
5673ccc1
UD
56222004-01-20 Ulrich Drepper <drepper@redhat.com>
5623
debddf64
UD
5624 * allocatestack.c: Pretty printing.
5625
5673ccc1
UD
5626 * sysdeps/pthread/createthread.c (create_thread): Don't add
5627 CLONE_DETACHED bit if it is not necessary.
5628
6bae8725
UD
56292004-01-16 Ulrich Drepper <drepper@redhat.com>
5630
5631 * pthread_getattr_np.c: Include ldsodefs.h.
5632
ff151400
RH
56332004-01-16 Richard Henderson <rth@redhat.com>
5634
6bae8725
UD
5635 * allocatestack.c: Don't declare __libc_stack_end.
5636 * init.c (__pthread_initialize_minimal_internal): Likewise.
5637 * pthread_getattr_np.c (pthread_getattr_np): Likewise.
ff151400 5638
ba683832
RH
56392004-01-15 Richard Henderson <rth@redhat.com>
5640
5641 * sysdeps/alpha/tls.h (tcbhead_t): Add private.
5642 (TLS_INIT_TCB_SIZE, TLS_INIT_TCB_ALIGN, TLS_TCB_SIZE,
5643 TLS_PRE_TCB_SIZE, TLS_TCB_ALIGN, INSTALL_DTV, INSTALL_NEW_DTV,
5644 GET_DTV, THREAD_DTV, THREAD_SELF, DB_THREAD_SELF): Match ia64.
5645 (TLS_TCB_OFFSET, THREAD_ID, NO_TLS_OFFSET): Remove.
5646 (THREAD_GETMEM, THREAD_GETMEM_NC): Simplify.
5647 (THREAD_SETMEM, THREAD_SETMEM_NC): Likewise.
5648 * sysdeps/unix/sysv/linux/alpha/createthread.c (TLS_VALUE): Match ia64.
5649
630d93a7
UD
56502004-01-14 Ulrich Drepper <drepper@redhat.com>
5651
219304ec 5652 * init.c (pthread_functions): Make array const.
630d93a7 5653
d1fc817e
UD
56542004-01-13 Ulrich Drepper <drepper@redhat.com>
5655
5656 * allocatestack.c (__make_stacks_executable): Change interface.
5657 Check parameters. Pass parameter on to libc counterpart.
5658 * pthreadP.h: Change declaration.
5659
dc927809
RH
56602004-01-13 Richard Henderson <rth@redhat.com>
5661
10677727
UD
5662 * pthread_attr_setstack.c (__old_pthread_attr_setstack): Use
5663 prototype form.
5664 * pthread_attr_setstacksize.c (__old_pthread_attr_setstacksize):
5665 Likewise.
5666
d1fc817e
UD
5667 * sysdeps/alpha/Makefile: New file.
5668 * sysdeps/alpha/tcb-offsets.sym: New file.
5669 * sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h (SINGLE_THREAD_P):
5670 Use MULTIPLE_THREADS_OFFSET to implement !libpthread !libc version.
dc927809 5671
d1fc817e
UD
5672 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h: Rewrite based
5673 on powerpc version.
dc927809 5674
249a3d0c
UD
56752004-01-08 Jakub Jelinek <jakub@redhat.com>
5676
5677 * Makefile (tests): Add tst-backtrace1.
5678 * tst-backtrace1.c: New test.
5679
763c0490
RM
56802003-12-11 Ulrich Weigand <uweigand@de.ibm.com>
5681
5682 * sysdeps/alpha/tls.h (DB_THREAD_SELF): Pass bit size of thread
5683 register as second parameter to the REGISTER macro.
5684 * sysdeps/ia64/tls.h (DB_THREAD_SELF): Likewise.
5685 * sysdeps/powerpc/tls.h (DB_THREAD_SELF): Likewise.
5686 * sysdeps/sh/tls.h (DB_THREAD_SELF): Likewise.
5687 * sysdeps/sparc/tls.h (DB_THREAD_SELF): Likewise.
5688 * sysdeps/s390/tls.h (DB_THREAD_SELF): Pass __WORDSIZE as bit size
5689 of thread register as second parameter to REGISTER macro in 64 case.
5690
c7baafd5
UD
56912004-01-03 Ulrich Drepper <drepper@redhat.com>
5692
5693 * sysdeps/unix/sysv/linux/Makefile (CFLAGS-getpid.c): Removed.
5694 (CFLAGS-getpid.o): Defined.
5695 (CFLAGS-getpid.os): Defined.
5696
25ac0258
UD
56972003-12-31 Ulrich Drepper <drepper@redhat.com>
5698
5699 * pthread_getattr_np.c (pthread_getattr_np): Make sure stack info
5700 returned for main thread does not overlap with any other VMA.
5701 Patch by Jakub Jelinek.
5702
795985e4
UD
57032003-12-29 Jakub Jelinek <jakub@redhat.com>
5704
5705 * tst-raise1.c: Include stdio.h.
5706
cb5b9388
UD
57072003-12-23 Jakub Jelinek <jakub@redhat.com>
5708
5709 * sysdeps/unix/sysv/linux/raise.c (raise): Protect pid = selftid
5710 setting with __ASSUME_TGKILL || defined __NR_tgkill.
5711 If pid is 0, set it to selftid.
5712 * sysdeps/unix/sysv/linux/getpid.c (really_getpid): Make inline.
5713 Don't set self->pid but self->tid. If self->pid == 0 and self->tid
5714 != 0, return self->tid without doing a syscall.
5715 * descr.h (struct pthread): Move pid field after tid.
5716
5717 * Makefile (tests): Add tst-raise1.
5718 * tst-raise1.c: New file.
5719
432aaf5b
RM
57202003-12-23 Roland McGrath <roland@redhat.com>
5721
5722 * tst-oddstacklimit.c: New file.
5723 * Makefile (tests): Add it.
5724 (tst-oddstacklimit-ENV): New variable.
5725
5726 * init.c (__pthread_initialize_minimal_internal): Round stack rlimit
5727 value up to page size for __default_stacksize.
5728
33ebea17
UD
57292003-12-21 Ulrich Drepper <drepper@redhat.com>
5730
5731 * Makefile (tests): Add tst-eintr5.
5732 * tst-eintr5.c: New file.
5733
5734 * eintr.c (eintr_source): Prevent sending signal to self.
5735
5736 * tst-eintr2.c (tf1): Improve error message.
5737
bbe35eb5
UD
57382003-12-20 Ulrich Drepper <drepper@redhat.com>
5739
5740 * sysdeps/unix/sysv/linux/Makefile (CFLAGS-getpid.c): Define.
5741 * sysdeps/unix/sysv/linux/getpid.c: New file.
c0ecb80a
UD
5742 * pthread_cancel.c: Add comment explaining use of PID field.
5743 * sysdeps/unix/sysv/linux/pthread_kill.c: Likewise.
5744 * pthread_getattr_np.c: Use abs() when comparing PID and TID fields.
5745 * sysdeps/unix/sysv/linux/fork.c: Negate PID field of parent
5746 temporarily to signal the field must not be relied on and updated
5747 by getpid().
5748 * sysdeps/unix/sysv/linux/pt-raise.c: Handle case where PID is
5749 temporarily negative.
5750 * sysdeps/unix/sysv/linux/raise.c: Likewise.
bbe35eb5 5751
4efdd8d3
UD
57522003-12-19 Ulrich Drepper <drepper@redhat.com>
5753
5754 * eintr.c (setup_eintr): Add new parameter. Pass to thread function.
5755 (eintr_source): If ARG != NULL, use pthread_kill.
5756 * tst-eintr1.c: Adjust for this change.
5757 * tst-eintr2.c: Likewise.
5758 * Makefile (tests): Add tst-eintr3 and tst-eintr4.
5759 * tst-eintr3.c: New file.
5760 * tst-eintr4.c: New file.
5761
57622003-12-19 Jakub Jelinek <jakub@redhat.com>
5763
5764 * libc-cancellation.c (__libc_enable_asynccancel): Don't cancel
5765 if CANCELSTATE_BITMASK is set.
5766 * sysdeps/pthread/librt-cancellation.c (__librt_enable_asynccancel):
5767 Likewise.
5768
5769 * Makefile (tests): Add tst-cancel22 and tst-cancel23.
5770 (tests-reverse): Add tst-cancel23.
5771 * tst-cancel22.c: New test.
5772 * tst-cancel23.c: New test.
5773
675620f7
UD
57742003-12-18 Ulrich Drepper <drepper@redhat.com>
5775
5776 * tst-eintr1.c: Better error messages.
5777
5778 * Makefile (tests): Add tst-eintr2.
5779 * tst-eintr2.c: New file.
5780
57812003-12-18 Jakub Jelinek <jakub@redhat.com>
5782
5783 * Makefile (tests): Add tst-cancel21 and tst-cancelx21.
5784 (CFLAGS-tst-cancelx21.c): Set.
5785 * tst-cancel21.c: New test.
5786 * tst-cancelx21.c: New test.
5787
5788 * unwind.c (FRAME_LEFT): Add adj argument. Subtract it from each
5789 comparison operand.
5790 (unwind_stop): Use _JMPBUF_CFA_UNWINDS_ADJ macro instead of
5791 _JMPBUF_CFA_UNWINDS. Adjust FRAME_LEFT invocations.
5792 * pt-longjmp.c: Include jmpbuf-unwind.h.
5793 (__pthread_cleanup_upto): Use _JMPBUF_UNWINDS_ADJ macro instead of
5794 _JMPBUF_UNWINDS. Adjust compared pointers.
5795 * init.c (__pthread_initialize_minimal_internal): Initialize
5796 pd->stackblock_size.
5797 * sysdeps/pthread/jmpbuf-unwind.h: Removed.
5798 * sysdeps/alpha/jmpbuf-unwind.h: New file.
5799 * sysdeps/i386/jmpbuf-unwind.h: New file.
5800 * sysdeps/powerpc/jmpbuf-unwind.h: New file.
5801 * sysdeps/s390/jmpbuf-unwind.h: New file.
5802 * sysdeps/sh/jmpbuf-unwind.h: New file.
5803 * sysdeps/sparc/sparc32/jmpbuf-unwind.h: New file.
5804 * sysdeps/x86_64/jmpbuf-unwind.h: New file.
2e5e031d 5805 * sysdeps/unix/sysv/linux/ia64/jmpbuf-unwind.h: Include stdint.h.
675620f7
UD
5806 (_JMPBUF_CFA_UNWINDS): Remove.
5807 (_JMPBUF_CFA_UNWINDS_ADJ, _JMPBUF_UNWINDS_ADJ): Define.
5808
58092003-12-12 Jakub Jelinek <jakub@redhat.com>
5810
5811 * Makefile (tests): Add tst-cancel20 and tst-cancelx20.
5812 (CFLAGS-tst-cancelx20.c): Set.
5813 * tst-cancel20.c: New test.
5814 * tst-cancelx20.c: New test.
5815
2d951ab6
UD
58162003-12-17 Ulrich Drepper <drepper@redhat.com>
5817
5818 * init.c (__pthread_initialize_minimal_internal): Don't treat
5819 architectures with separate register stack special here when
5820 computing default stack size.
5821
f8a3a2e7
RM
58222003-12-17 Roland McGrath <roland@redhat.com>
5823
5824 * Makefile (tst-cancelx7-ARGS): New variable.
5825 Reportd by Greg Schafer <gschafer@zip.com.au>.
5826
e796f92f
UD
58272003-12-17 Jakub Jelinek <jakub@redhat.com>
5828
5829 * Makefile (tests): Add tst-stack3. Depend on $(objpfx)tst-stack3-mem.
5830 (generated): Add tst-stack3.mtrace and tst-stack3-mem.
5831 (tst-stack3-ENV): Set.
5832 ($(objpfx)tst-stack3-mem): New.
5833 * tst-stack3.c: New test.
5834
092eb73c
UD
58352003-12-10 David Mosberger <davidm@hpl.hp.com>
5836
5837 * sysdeps/unix/sysv/linux/ia64/pt-initfini.c (_init_EPILOG_BEGINS):
5838 Add unwind directives. Drop unused .regstk directive.
5839 (_fini_EPILOG_BEGINS): Add unwind directives.
5840
ff48874d
UD
58412003-12-11 Ulrich Drepper <drepper@redhat.com>
5842
5843 * sysdeps/unix/sysv/linux/i386/lowlevellock.h (lll_futex_wait):
5844 Assume parameter is a pointer.
5845 (lll_futex_wake): Likewise.
20945457
UD
5846 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (lll_futex_wait):
5847 Likewise.
5848 (lll_futex_wake): Likewise.
ff48874d
UD
5849 Reported by Boris Hu.
5850 * sysdeps/unix/sysv/linux/unregister-atfork.c
5851 (__unregister_atfork): Pass pointer to refcntr to lll_futex_wait.
5852
5853 * sysdeps/unix/sysv/linux/sem_wait.c (__new_sem_wait): Simplify a bit.
5854
1d9d0b80
UD
58552003-12-10 Ulrich Drepper <drepper@redhat.com>
5856
5857 * sysdeps/pthread/bits/libc-lock.h (__rtld_lock_initialize): Define.
5858 * sysdeps/unix/sysv/linux/fork.c (__libc_fork): Call
5859 __rtld_lock_initialize for ld.so lock.
5860 Patch in part by Adam Li <adam.li@intel.com>.
5861
c776b3d7
UD
58622003-12-02 David Mosberger <davidm@hpl.hp.com>
5863
5864 * Makefile (link-libc-static): Remove -lgcc_eh---it's already mentioned
5865 in $(gnulib). Also, remove stale comment.
5866
58672003-11-12 David Mosberger <davidm@hpl.hp.com>
5868
5869 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h (PSEUDO): Take
5870 advantage of new syscall stub and optimize accordingly.
5871
5872 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (__NR_futex): Rename
5873 from SYS_futex, to match expectations of
5874 sysdep.h:DO_INLINE_SYSCALL.
5875 (lll_futex_clobbers): Remove.
5876 (lll_futex_timed_wait): Rewrite in terms of DO_INLINE_SYSCALL.
5877 (lll_futex_wake): Likewise.
5878 (lll_futex_requeue): Likewise.
5879 (__lll_mutex_trylock): Rewrite to a macro, so we can include this
5880 file before DO_INLINE_SYSCALL is defined (proposed by Jakub
5881 Jelinek).
5882 (__lll_mutex_lock): Likewise.
5883 (__lll_mutex_cond_lock): Likewise.
5884 (__lll_mutex_timed_lock): Likewise.
5885 (__lll_mutex_unlock): Likewise.
5886 (__lll_mutex_unlock_force): Likewise.
5887
5888 * sysdeps/ia64/tls.h: Move declaration of __thread_self up so it
5889 comes before the include of <sysdep.h>.
5890 (THREAD_SELF_SYSINFO): New macro.
5891 (THREAD_SYSINFO): Likewise.
5892 (INIT_SYSINFO): New macro.
5893 (TLS_INIT_TP): Call INIT_SYSINFO.
5894
5895 * sysdeps/ia64/tcb-offsets.sym: Add SYSINFO_OFFSET.
5896
5897 * sysdeps/pthread/createthread.c (create_thread): Use
5898 THREAD_SELF_SYSINFO and THREAD_SYSINFO instead of open code.
5899 * allocatestack.c (allocate_stack): Use THREAD_SYSINFO and
5900 THREAD_SELF_SYSINFO instead of open code.
5901 * sysdeps/i386/tls.h (THREAD_SELF_SYSINFO): New macro.
5902 (THREAD_SYSINFO): Likewise.
5903
5904 * sysdeps/unix/sysv/linux/ia64/dl-sysdep.h: New file.
5905
5906 * sysdeps/unix/sysv/linux/ia64/pt-vfork.S: Work around gas problem.
5907
57d20ee7
UD
59082003-12-06 Ulrich Drepper <drepper@redhat.com>
5909
5910 * sysdeps/unix/sysv/linux/ia64/pt-initfini.c: Use .init_array
5911 instead of .init. Patch by David Mosberger.
5912
67aeab2a
AJ
59132003-11-30 Thorsten Kukuk <kukuk@suse.de>
5914
5915 * sysdeps/pthread/configure.in: Remove broken declaration in C
5916 cleanup handling check.
5917
8ca203e6
AJ
59182003-11-30 Andreas Jaeger <aj@suse.de>
5919
5920 * Makefile (CFLAGS-pt-initfini.s): Add $(fno_unit_at_a_time).
5921 * sysdeps/unix/sysv/linux/x86_64/Makefile (CFLAGS-pt-initfini.s):
5922 Likewise.
5923
46bf9de7
UD
59242003-11-27 Jakub Jelinek <jakub@redhat.com>
5925
5926 * sysdeps/unix/sysv/linux/internaltypes.h (ATTR_FLAG_OLDATTR): Define.
5927 * pthread_attr_destroy.c: Include shlib-compat.h.
5928 (__pthread_attr_destroy): Return immediately if ATTR_FLAG_OLDATTR
5929 is set in iattr->flags.
5930 * pthread_attr_init.c (__pthread_attr_init_2_0): Set ATTR_FLAG_OLDATTR.
5931
1d9b73ab
UD
59322003-11-21 Jakub Jelinek <jakub@redhat.com>
5933
5934 * Makefile (distribute): Add tst-cleanup4aux.c.
5935
5936 * tst-cond12.c (prepare): Add prototype. Move after test-skeleton.c
5937 include.
5938
53f9084e
UD
59392003-11-21 Ulrich Drepper <drepper@redhat.com>
5940
1d9b73ab
UD
5941 * tst-cond12.c (do_test): If USE_COND_SIGNAL is defined, use
5942 pthread_cond_signal.
5943
e42a990e
UD
5944 * sysdeps/pthread/pthread_cond_wait.c (__pthread_cond_wait): Don't
5945 store mutex address if the current value is ~0l.
5946 * sysdeps/pthread/pthread_cond_timedwait.c
5947 (__pthread_cond_timedwait): Likewise.
5948 * sysdeps/pthread/pthread_cond_broadcast.c
5949 (__pthread_cond_broadcast): Don't use requeue for pshared
5950 condvars.
5951
5952 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
5953 (__pthread_cond_wait): Don't store mutex address if the current
5954 value is ~0l.
5955 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
5956 (__pthread_cond_timedwait): Likewise.
5957 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S
5958 (__pthread_cond_broadcast): Don't use requeue for pshared
5959 condvars.
5960
5961 * pthread_cond_init.c (__pthread_cond_init): Initialize __mutex
5962 element with ~0l for pshared condvars, with NULL otherwise.
5963
5964 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S
5965 (__pthread_cond_wait): Don't store mutex address if the current
5966 value is ~0l.
5967 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
5968 (__pthread_cond_timedwait): Likewise.
5969 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S
5970 (__pthread_cond_broadcast): Don't use requeue for pshared
5971 condvars.
5972
bf68b236 5973 * Makefile: Add rules to build and run tst-cond12 and tst-cond13.
53f9084e 5974 * tst-cond12.c: New file.
bf68b236 5975 * tst-cond13.c: New file.
53f9084e 5976
9780c971
UD
59772003-11-17 Ulrich Drepper <drepper@redhat.com>
5978
5979 * sysdeps/pthread/configure.in: Make missing forced unwind support
5980 fatal.
5981
74e12fbc
UD
59822003-11-11 Ulrich Drepper <drepper@redhat.com>
5983
5984 * pthreadP.h: Don't declare __pthread_unwind as weak inside libpthread.
5985
c685b2b0
UD
59862003-11-06 Ulrich Drepper <drepper@redhat.com>
5987
5988 * Makefile: Add magic to clean up correctly.
5989
44e94149
UD
59902003-11-05 Jakub Jelinek <jakub@redhat.com>
5991
5992 * unwind.c (FRAME_LEFT): Define.
5993 (unwind_stop): Handle old style cleanups here.
5994 (__pthread_unwind): Handle old style cleanups only if
5995 !HAVE_FORCED_UNWIND.
5996 * Makefile (tests): Add tst-cleanup4 and tst-cleanupx4.
5997 (CFLAGS-tst-cleanupx4.c): Add -fexceptions.
5998 ($(objpfx)tst-cleanup4): Depend on $(objpfx)tst-cleanup4aux.o.
5999 ($(objpfx)tst-cleanupx4): Likewise.
6000 * tst-cleanup4.c: New test.
6001 * tst-cleanup4aux.c: New.
6002 * tst-cleanupx4.c: New test.
6003
c28422b5
UD
60042003-11-04 Ulrich Drepper <drepper@redhat.com>
6005
6006 * sysdeps/pthread/bits/stdio-lock.h: Use lll_*lock instead of
6007 lll_mutex_*lock macros to skip atomic operations on some archs.
6008
27176677
UD
60092003-11-03 Ulrich Drepper <drepper@redhat.com>
6010
6011 * sysdeps/pthread/tst-timer.c (main): Initialize
6012 sigev2.sigev_value as well.
6013
026395a2
RM
60142003-10-15 Roland McGrath <roland@redhat.com>
6015
6016 * sysdeps/pthread/configure.in: Barf if visibility attribute support
6017 is missing.
6018 * sysdeps/pthread/configure: Regenerated.
6019
fa3cbe3d
UD
60202003-10-09 Kaz Kojima <kkojima@rr.iij4u.or.jp>
6021
6022 * sysdeps/unix/sysv/linux/sh/lowlevellock.h: Completely revamp the
6023 locking macros. No distinction between normal and mutex locking
6024 anymore.
6025 * sysdeps/unix/sysv/linux/sh/lowlevellock.S: Rewrite mutex locking.
6026 Merge bits from lowlevelmutex.S we still need.
6027 * sysdeps/unix/sysv/linux/sh/libc-lowlevelmutex.S: Remove.
6028 * sysdeps/unix/sysv/linux/sh/lowlevelmutex.S: Likewise.
6029 * sysdeps/unix/sysv/linux/sh/not-cancel.h: New file.
6030 * sysdeps/unix/sysv/linux/sh/pthread_barrier_wait.S: Adjust for
6031 new mutex implementation.
6032 * sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S: Likewise.
6033 * sysdeps/unix/sysv/linux/sh/pthread_cond_signal.S: Likewise.
6034 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise.
6035 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Likewise.
6036 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: Likewise.
6037 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S: Likewise.
6038 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S: Likewise.
6039 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S: Likewise.
6040 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: Likewise.
6041 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h (PSEUDO): Also defined
6042 symbol for entry point to avoid cancellation.
6043
e700a908
UD
60442003-10-07 Jakub Jelinek <jakub@redhat.com>
6045
6046 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Backout 2003-10-02
6047 changes.
6048 (SAVE_OLDTYPE_0): Fix a typo.
6049
c70a86b6
UD
60502003-10-03 Ulrich Drepper <drepper@redhat.com>
6051
6052 * sysdeps/unix/sysv/linux/i386/pthread_once.S (__pthread_once):
6053 Check __sigsetjmp return value. Reported by Daniel Jacobowitz.
6054
134abcb5
UD
60552003-10-02 Ulrich Drepper <drepper@redhat.com>
6056
6057 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h (DOCARGS_1): Use
6058 correct offset.
6059
b77ca0e8
UD
60602003-10-02 Jakub Jelinek <jakub@redhat.com>
6061
6062 * Makefile (tests): Add tst-cancel19.
6063 * tst-cancel19.c: New test.
6064
4d961dc7
UD
60652003-10-02 Ulrich Drepper <drepper@redhat.com>
6066
6067 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Fix saving and
6068 restoring of the old cancellation type.
6069
1d5b20ad 60702003-09-30 Jakub Jelinek <jakub@redhat.com>
94ae6d75 6071
1d5b20ad
UD
6072 * sysdeps/pthread/malloc-machine.h: Remove misleading comment.
6073
4106a403
RM
60742003-09-27 Wolfram Gloger <wg@malloc.de>
6075
4d961dc7 6076 * sysdeps/pthread/malloc-machine.h: New file
94ae6d75 6077
fca9d8e4
RM
60782003-09-24 Roland McGrath <roland@redhat.com>
6079
6080 * allocatestack.c (__make_stacks_executable): Don't ignore return
6081 value from _dl_make_stack_executable.
6082
c9c60884
UD
60832003-09-24 Ulrich Drepper <drepper@redhat.com>
6084
69c9fa04
UD
6085 * allocatestack.c (__make_stacks_executable): Also change
6086 permission of the currently unused stacks.
6087
279f1143
UD
6088 * allocatestack.c (change_stack_perm): Split out from
6089 __make_stacks_executable.
6090 (allocate_stack): If the required permission changed between the time
6091 we started preparing the stack and queueing it, change the permission.
6092 (__make_stacks_executable): Call change_stack_perm.
6093
c9c60884
UD
6094 * Makefile: Build tst-execstack-mod locally.
6095 * tst-execstack-mod.c: New file.
6096
54ee14b3
UD
60972003-09-23 Jakub Jelinek <jakub@redhat.com>
6098
6099 * Makefile (tests): Only add tst-execstack if have-z-execstack is yes.
6100
61012003-09-23 Roland McGrath <roland@redhat.com>
6102
6103 * tst-execstack.c: New file.
6104 * Makefile (tests): Add it.
6105 ($(objpfx)tst-execstack, $(objpfx)tst-execstack.out): New targets.
6106 (LDFLAGS-tst-execstack): New variable.
6107
6108 * allocatestack.c (allocate_stack): Use GL(dl_stack_flags) to decide
6109 whether to use PROT_EXEC for stack mmap.
6110 (__make_stacks_executable): New function.
6111 * pthreadP.h: Declare it.
6112 * init.c (__pthread_initialize_minimal_internal): Set
6113 GL(dl_make_stack_executable_hook) to that.
6114
365b1602
UD
61152003-09-22 Ulrich Drepper <drepper@redhat.com>
6116
6117 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Adjust for latest
6118 recommendation from AMD re avoidance of lock prefix.
6119
39358e8b
UD
61202003-09-22 Jakub Jelinek <jakub@redhat.com>
6121
6122 * sysdeps/unix/sysv/linux/lowlevellock.c (__lll_timedlock_wait): Use
6123 lll_futex_timed_wait instead of lll_futex_wait.
6124 * sysdeps/unix/sysv/linux/s390/lowlevellock.c: Removed.
6125 * sysdeps/unix/sysv/linux/s390/lowlevelmutex.c: Removed.
6126 * sysdeps/unix/sysv/linux/s390/libc-lowlevellock.c: Removed.
6127 * sysdeps/unix/sysv/linux/s390/libc-lowlevelmutex.c: Removed.
6128 * sysdeps/unix/sysv/linux/s390/sem_trywait.c: Removed.
6129 * sysdeps/unix/sysv/linux/s390/sem_wait.c: Removed.
6130 * sysdeps/unix/sysv/linux/s390/sem_post.c: Removed.
6131 * sysdeps/unix/sysv/linux/s390/sem_timedwait.c: Removed.
6132 * sysdeps/unix/sysv/linux/s390/lowlevellock.h: Include atomic.h.
6133 Completely revamp the locking macros. No distinction between
6134 normal and mutex locking anymore.
6135 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h: Likewise.
6136 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (__lll_lock_wait,
6137 __lll_lock_timedwait): Fix prototypes.
6138 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h (__lll_lock_wait,
6139 __lll_lock_timedwait): Likewise.
6140 (lll_mutex_lock, lll_mutex_cond_lock): Use _val instead of _bool
6141 macros, add __builtin_expect.
6142 (lll_mutex_timedlock): Likewise. Fix return value.
6143 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevelmutex.S: Removed.
6144 * sysdeps/unix/sysv/linux/i386/i586/libc-lowlevelmutex.S: Removed.
6145 * sysdeps/unix/sysv/linux/i386/i586/lowlevelmutex.S: Removed.
6146 * sysdeps/unix/sysv/linux/i386/i686/libc-lowlevelmutex.S: Removed.
6147 * sysdeps/unix/sysv/linux/i386/i686/lowlevelmutex.S: Removed.
6148 * sysdeps/unix/sysv/linux/x86_64/libc-lowlevelmutex.S: Removed.
6149 * sysdeps/unix/sysv/linux/lowlevelmutex.c: Removed.
6150 * sysdeps/unix/sysv/linux/libc-lowlevelmutex.c: Removed.
6151
9d08fbbb
UD
61522003-09-22 Ulrich Drepper <drepper@redhat.com>
6153
c0df57e1
UD
6154 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
6155 (__lll_mutex_lock_wait): Minor optimization to avoid one atomic
6156 operation if possible.
6157
9d08fbbb
UD
6158 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Don't play tricks
6159 like jumping over the lock prefix.
6160
71451de2
UD
61612003-09-21 Ulrich Drepper <drepper@redhat.com>
6162
6163 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Completely revamp the
6164 locking macros. No distinction between normal and mutex locking
6165 anymore.
3a226d33 6166 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
bc1989aa
UD
6167 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h: Likewise.
6168 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Likewise.
71451de2
UD
6169 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Rewrite mutex
6170 locking. Merge bits from lowlevelmutex.S we still need.
3a226d33 6171 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Likewise.
bc1989aa 6172 * sysdeps/unix/sysv/linux/lowlevellock.c: Likewise.
71451de2 6173 * sysdeps/unix/sysv/linux/i386/i486/lowlevelmutex.S: Removed.
3a226d33 6174 * sysdeps/unix/sysv/linux/x86_64/lowlevelmutex.S: Removed.
71451de2
UD
6175 * Makefile (routines): Remove libc-lowlevelmutex.
6176 (libpthread-rountines): Remove lowlevelmutex.
3a226d33
UD
6177 * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S: Adjust
6178 for new mutex implementation.
6179 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S: Likewise.
6180 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
6181 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
6182 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Likewise.
6183 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
6184 Likewise.
6185 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
6186 Likewise.
6187 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S: Likewise.
6188 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
6189 * sysdeps/unix/sysv/linux/x86_64/pthread_barrier_wait.S: Likewise
6190 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S: Likewise.
6191 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
6192 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
6193 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S: Likewise.
6194 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S:
6195 Likewise.
6196 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S:
6197 Likewise.
6198 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_unlock.S: Likewise.
6199 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S: Likewise.
6200 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S: Likewise.
6201 Don't use requeue.
6202 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S: Likewise.
bc1989aa 6203 * sysdeps/pthread/pthread_cond_signal.c: Don't use requeue.
71451de2 6204
8f31c0ef
UD
62052003-09-20 Ulrich Drepper <drepper@redhat.com>
6206
56a4aa98
UD
6207 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Don't match memory
6208 in parameters of asm with output parameters.
6209
8f31c0ef
UD
6210 * pthread_mutex_unlock.c (__pthread_mutex_unlock_usercnt): Change
6211 type of DECR parameter to int.
6212 * pthreadP.h: Adjust prototype of __pthread_mutex_unlock_usercnt.
6213
8b8074da
UD
62142003-09-18 Jakub Jelinek <jakub@redhat.com>
6215
6216 * tst-attr3.c (tf, do_test): Print stack start/end/size and
6217 guardsize for each thread.
6218
65af7e61
UD
62192003-09-17 Jakub Jelinek <jakub@redhat.com>
6220
9ba96eda
UD
6221 * sysdeps/pthread/pthread.h (pthread_getattr_np): Clarify usage.
6222 * sysdeps/unix/sysv/linux/pthread_attr_setaffinity.c
6223 (pthread_attr_setaffinity_np): Handle cpuset == NULL.
6224
06f6ca90
UD
6225 * sysdeps/unix/sysv/linux/pthread_attr_getaffinity.c
6226 (pthread_attr_getaffinity_np): Don't segfault if iattr->cpuset is
6227 NULL.
6228 * pthread_getattr_np.c: Set cpuset using pthread_getaffinity_np.
6229 * pthreadP.h (pthread_getaffinity_np): Add hidden_proto.
6230 * sysdeps/unix/sysv/linux/pthread_getaffinity.c
6231 (pthread_getaffinity_np): Add hidden_def.
6232
6233 * Makefile (tests): Add tst-attr3.
6234 * tst-attr3.c: New test.
6235
65af7e61
UD
6236 * sysdeps/i386/Makefile (CFLAGS-tst-align.c): Remove.
6237
3402852c
UD
62382003-09-15 Jakub Jelinek <jakub@redhat.com>
6239
6240 * sysdeps/i386/Makefile (CFLAGS-pthread_create.c,
6241 CFLAGS-tst-align.c): Add -mpreferred-stack-boundary=4.
6242
a4db3439
UD
62432003-09-17 Jakub Jelinek <jakub@redhat.com>
6244
6245 * Makefile (CFLAGS-tst-align.c): Add $(stack-align-test-flags).
6246 * tst-align.c: Include tst-stack-align.h.
6247 (tf, do_test): Use TEST_STACK_ALIGN macro.
6248
62492003-09-17 Ulrich Drepper <drepper@redhat.com>
6250
6251 * pthread_attr_init.c (__pthread_attr_init_2_0): Remove unused
6252 variable.
6253
92ce4676
UD
62542003-09-16 Ulrich Drepper <drepper@redhat.com>
6255
6256 * pthread_getattr_np.c (pthread_getattr_np): Correctly fill in the
6257 stack-related values for the initial thread.
6258
e07bb02a
UD
62592003-09-15 Jakub Jelinek <jakub@redhat.com>
6260
6261 * Makefile (CFLAGS-pthread_once.c): Add $(uses-callbacks).
6262
d087b5dc
UD
62632003-09-11 Ulrich Drepper <drepper@redhat.com>
6264
6265 * pthread_mutex_lock.c: Minor code rearrangements.
6266
7f08f55a
RM
62672003-09-05 Roland McGrath <roland@redhat.com>
6268
6269 * pthread_create.c (__pthread_pthread_sizeof_descr): Removed.
6270 Instead, include ../nptl_db/db_info.c to do its magic.
6271 * pthread_key_create.c (__pthread_pthread_keys_max): Removed.
6272 (__pthread_pthread_key_2ndlevel_size): Likewise.
6273 * sysdeps/alpha/tls.h (DB_THREAD_SELF): New macro.
6274 * sysdeps/i386/tls.h (DB_THREAD_SELF): New macro.
6275 * sysdeps/ia64/tls.h (DB_THREAD_SELF): New macro.
6276 * sysdeps/powerpc/tls.h (DB_THREAD_SELF): New macro.
6277 * sysdeps/s390/tls.h (DB_THREAD_SELF): New macro.
6278 * sysdeps/sh/tls.h (DB_THREAD_SELF): New macro.
6279 * sysdeps/sparc/tls.h (DB_THREAD_SELF): New macro.
6280 * sysdeps/x86_64/tls.h (DB_THREAD_SELF): New macro.
6281 * sysdeps/alpha/td_ta_map_lwp2thr.c: File removed.
6282 * sysdeps/generic/td_ta_map_lwp2thr.c: File removed.
6283 * sysdeps/i386/td_ta_map_lwp2thr.c: File removed.
6284 * sysdeps/ia64/td_ta_map_lwp2thr.c: File removed.
6285 * sysdeps/powerpc/td_ta_map_lwp2thr.c: File removed.
6286 * sysdeps/s390/td_ta_map_lwp2thr.c: File removed.
6287 * sysdeps/sh/td_ta_map_lwp2thr.c: File removed.
6288 * sysdeps/sparc/td_ta_map_lwp2thr.c: File removed.
6289 * sysdeps/x86_64/td_ta_map_lwp2thr.c: File removed.
6290
806e4a4a
UD
62912003-09-08 Ulrich Drepper <drepper@redhat.com>
6292
6293 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Change type
6294 of pthread_t to be compatible with LT.
6295 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: Likewise.
6296 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Likewise.
6297 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
6298 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
6299 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h: Likewise.
6300 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
6301 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Likewise.
6302
17f83e56
UD
63032003-09-04 Ulrich Drepper <drepper@redhat.com>
6304
6305 * sysdeps/unix/sysv/linux/i386/not-cancel.h (fcntl_not_cancel): Define.
6306
58e8ec84
UD
63072003-09-04 Jakub Jelinek <jakub@redhat.com>
6308
6309 * unwind-forcedunwind.c: Move to...
6310 * sysdeps/pthread/unwind-forcedunwind.c: ...here.
6311 (pthread_cancel_init): Use ARCH_CANCEL_INIT if defined.
6312 * sysdeps/pthread/jmpbuf-unwind.h: New file.
6313 * sysdeps/unix/sysv/linux/ia64/unwind-forcedunwind.c: New file.
6314 * sysdeps/unix/sysv/linux/ia64/jmpbuf-unwind.h: New file.
6315 * unwind.c: Include jmpbuf-unwind.h.
6316 (unwind_stop): Use _JMPBUF_CFA_UNWINDS macro.
6317
abf1cf21
JJ
63182003-09-02 Jakub Jelinek <jakub@redhat.com>
6319
4a244f0d
UD
6320 * sysdeps/unix/sysv/linux/ia64/bits/local_lim.h: New file.
6321 * sysdeps/unix/sysv/linux/ia64/Versions (libpthread): Export
6322 pthread_attr_setstack and pthread_attr_setstacksize @@GLIBC_2.3.3.
6323 * sysdeps/unix/sysv/linux/alpha/bits/local_lim.h: New file.
6324 * sysdeps/unix/sysv/linux/alpha/Versions: New file.
6325 * sysdeps/unix/sysv/linux/sparc/bits/local_lim.h: New file.
6326 * sysdeps/unix/sysv/linux/sparc/Versions: New file.
6327 * pthread_attr_setstack.c (__old_pthread_attr_setstack): New function.
6328 (pthread_attr_setstack): If PTHREAD_STACK_MIN != 16384, export
6329 as @@GLIBC_2.3.2 and also export compatibility @GLIBC_2.2.
6330 * pthread_attr_setstacksize.c (__old_pthread_attr_setstacksize): New
6331 function.
6332 (pthread_attr_setstacksize): If PTHREAD_STACK_MIN != 16384, export
6333 as @@GLIBC_2.3.2 and also export compatibility @GLIBC_2.1.
6334 * Makefile (tests): Add tst-stack2.
6335 * tst-stack2.c: New test.
6336 * tst-stack1.c: Include limits.h and sys/param.h.
6337 (do_test): Set size to MAX (4 * getpagesize (), PTHREAD_STACK_MIN).
6338
e29ef647
UD
6339 * pthread_condattr_setpshared.c: Include errno.h.
6340 (pthread_condattr_setpshared): Return EINVAL if pshared
6341 is neither PTHREAD_PROCESS_PRIVATE nor PTHREAD_PROCESS_SHARED.
6342
5777d565
UD
6343 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h (PSEUDO): Also
6344 defined symbol for entry point to avoid cancellation.
6345 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h (PSEUDO):
6346 Likewise.
6347 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h (PSEUDO):
6348 Likewise.
6349 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h (PSEUDO):
6350 Likewise.
6351 * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h (PSEUDO):
6352 Likewise.
6353 * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h (PSEUDO):
6354 Likewise.
6355 * sysdeps/unix/sysv/linux/i386/not-cancel.h (__open_nocancel,
6356 __close_nocancel, __read_nocancel, __write_nocancel,
6357 __waitpid_nocancel): Add attribute_hidden. If not in libc.so,
6358 libpthread.so or librt.so, define to corresponding function
6359 without _nocancel suffix.
6360 * sysdeps/unix/sysv/linux/s390/not-cancel.h: New file.
6361 * sysdeps/unix/sysv/linux/powerpc/not-cancel.h: New file.
6362 * sysdeps/unix/sysv/linux/sparc/not-cancel.h: New file.
6363
abf1cf21
JJ
6364 * sysdeps/unix/sysv/linux/x86_64/not-cancel.h: Fix a typo.
6365
8348dcc8
UD
63662003-09-02 Ulrich Drepper <drepper@redhat.com>
6367
6368 * sysdeps/unix/sysv/linux/i386/not-cancel.h: New file.
1e03e0af 6369 * sysdeps/unix/sysv/linux/x86_64/not-cancel.h: New file.
8348dcc8
UD
6370
6371 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Make sure the code
6372 in subsections has a symbol associated with it.
6373
6374 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h (PSEUDO): Also
6375 defined symbol for entry point to avoid cancellation.
6376 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h (PSEUDO): Likewise.
6377
c874a32e
UD
63782003-09-01 Jakub Jelinek <jakub@redhat.com>
6379
6380 * Makefile (tests): Add tst-tls5.
6381 (module-names): Add tst-tls5mod{,a,b,c,d,e,f}.
6382 ($(objpfx)tst-tls5mod{,a,b,c,d,e,f}.so-no-z-defs): Set to yes.
6383 ($(objpfx)tst-tls5): New.
6384 ($(objpfx)tst-tls6.out): Likewise.
6385 (tests): Depend on $(objpfx)tst-tls6.out.
6386 * tst-tls3.c: Include stdint.h and pthreaddef.h.
6387 (do_test): Check pthread_self () return value alignment.
6388 * tst-tls3mod.c: Include stdint.h and pthreaddef.h.
6389 (tf): Check pthread_self () return value alignment.
6390 * tst-tls5.c: New test.
6391 * tst-tls5.h: New.
6392 * tst-tls5mod.c: New.
6393 * tst-tls5moda.c: New.
6394 * tst-tls5modb.c: New.
6395 * tst-tls5modc.c: New.
6396 * tst-tls5modd.c: New.
6397 * tst-tls5mode.c: New.
6398 * tst-tls5modf.c: New.
6399 * tst-tls6.sh: New test.
6400
c503d3dc
UD
6401 * sysdeps/pthread/pthread-functions.h (struct pthread_functions): Add
6402 ptr___pthread_cond_timedwait and ptr___pthread_cond_timedwait_2_0.
6403 * init.c (pthread_functions): Initialize them.
6404 * forward.c (pthread_cond_timedwait@GLIBC_2.0,
6405 pthread_cond_timedwait@@GLIBC_2.3.2): New forwards.
6406 * Versions (libc): Export pthread_cond_timedwait@GLIBC_2.0,
6407 pthread_cond_timedwait@@GLIBC_2.3.2.
6408
48614753
JJ
64092003-09-01 Jakub Jelinek <jakub@redhat.com>
6410
56a1b877
JJ
6411 * sysdeps/unix/sysv/linux/alpha/timer_create.c: New file.
6412 * sysdeps/unix/sysv/linux/alpha/timer_delete.c: New file.
6413 * sysdeps/unix/sysv/linux/alpha/timer_getoverr.c: New file.
6414 * sysdeps/unix/sysv/linux/alpha/timer_gettime.c: New file.
6415 * sysdeps/unix/sysv/linux/alpha/timer_settime.c: New file.
6416 * sysdeps/unix/sysv/linux/alpha/Versions: New file.
6417
6418 * sysdeps/unix/sysv/linux/alpha/aio_cancel.c: New file.
6419
48614753
JJ
6420 * sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h: Define
6421 _POSIX_THREAD_PRIORITY_SCHEDULING.
6422 * sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h: Likewise.
6423
28c97261
UD
64242003-08-31 Ulrich Drepper <drepper@redhat.com>
6425
eef80cf8
UD
6426 * sysdeps/pthread/bits/stdio-lock.h (_IO_acquire_lock): Avoid
6427 nested function, use static inline function from libio.h.
6428 Code by Richard Henderson.
6429
28c97261
UD
6430 * sysdeps/pthread/bits/libc-lock.h: Mark pthread_setcancelstate as
6431 weak.
6432
cd2fbe58
UD
64332003-08-30 Jakub Jelinek <jakub@redhat.com>
6434
6435 * sysdeps/unix/sysv/linux/sparc/sparc64/Versions: New file.
6436 * sysdeps/unix/sysv/linux/sparc/sparc64/timer_create.c: New file.
6437 * sysdeps/unix/sysv/linux/sparc/sparc64/timer_delete.c: New file.
6438 * sysdeps/unix/sysv/linux/sparc/sparc64/timer_getoverr.c: New file.
6439 * sysdeps/unix/sysv/linux/sparc/sparc64/timer_gettime.c: New file.
6440 * sysdeps/unix/sysv/linux/sparc/sparc64/timer_settime.c: New file.
6441 * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h: New file.
6442 * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h: New file.
6443 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: New file.
6444 * sysdeps/unix/sysv/linux/sparc/bits/semaphore.h: New file.
6445 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h: New file.
6446 * sysdeps/unix/sysv/linux/sparc/pthread_once.c: New file.
6447 * sysdeps/unix/sysv/linux/sparc/pt-vfork.S: New file.
6448 * sysdeps/unix/sysv/linux/sparc/fork.c: New file.
6449 * sysdeps/unix/sysv/linux/sparc/aio_cancel.c: New file.
6450 * sysdeps/sparc/sparc32/sparcv9/pthread_spin_lock.c: New file.
6451 * sysdeps/sparc/sparc32/sparcv9/pthread_spin_trylock.c: New file.
6452 * sysdeps/sparc/sparc32/sparcv9/pthread_spin_unlock.c: New file.
6453 * sysdeps/sparc/sparc32/pthread_spin_lock.c: New file.
6454 * sysdeps/sparc/sparc32/pthread_spin_trylock.c: New file.
6455 * sysdeps/sparc/sparc32/pthreaddef.h: New file.
6456 * sysdeps/sparc/sparc64/pthread_spin_lock.c: New file.
6457 * sysdeps/sparc/sparc64/pthread_spin_trylock.c: New file.
6458 * sysdeps/sparc/sparc64/pthread_spin_unlock.c: New file.
6459 * sysdeps/sparc/sparc64/pthreaddef.h: New file.
6460 * sysdeps/sparc/tls.h: New file.
6461 * sysdeps/sparc/tcb-offsets.sym: New file.
6462 * sysdeps/sparc/Makefile: New file.
6463 * sysdeps/sparc/td_ta_map_lwp2thr.c: New file.
6464 * init.c [__sparc__] (__NR_set_tid_address): Define.
6465
feda52c0
UD
64662003-08-29 Jakub Jelinek <jakub@redhat.com>
6467
6468 * sysdeps/pthread/bits/stdio-lock.h (_IO_acquire_lock,
6469 _IO_release_lock): Define.
6470
7c868816
JJ
64712003-08-29 Jakub Jelinek <jakuB@redhat.com>
6472
0261d33f 6473 * tst-cancel4.c (tf_sigwait, tf_sigwaitinfo, tf_sigtimedwait): Add
7c868816
JJ
6474 sigemptyset before sigaddset. Reported by jreiser@BitWagon.com.
6475
68b9e1ae
UD
64762003-08-27 Ulrich Drepper <drepper@redhat.com>
6477
6478 * sysdeps/pthread/pthread.h (pthread_exit): Remove __THROW.
6479 (__pthread_cleanup_class): Add missing return types of member
6480 functions.
6481
13b3edfc
UD
64822003-08-26 Steven Munroe <sjmunroe@us.ibm.com>
6483
6484 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h
6485 (lll_mutex_unlock_force): Add memory barrier between store and futex
6486 syscall.
6487
bb606fbe
UD
64882003-08-25 Ulrich Drepper <drepper@redhat.com>
6489
6490 * tst-cancel4.c (do_test): Also unlink tempfname and remove
6491 tempmsg in first loop.
6492
ee4e5a3d
UD
64932003-08-18 Ulrich Drepper <drepper@redhat.com>
6494
6495 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define
6496 _POSIX_THREAD_PRIORITY_SCHEDULING.
6497 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
6498
334fcf2a
UD
64992003-08-07 Jakub Jelinek <jakub@redhat.com>
6500
6501 * sysdeps/pthread/bits/libc-lock.h [_LIBC && SHARED]
6502 (__rtld_lock_default_lock_recursive,
6503 __rtld_lock_default_unlock_recursive): Define.
6504 [_LIBC && SHARED] (__rtld_lock_lock_recursive,
6505 __rtld_lock_unlock_recursive): Define using
6506 GL(_dl_rtld_*lock_recursive).
6507 * init.c (__pthread_initialize_minimal_internal): Initialize
6508 _dl_rtld_lock_recursive and _dl_rtld_unlock_recursive.
6509 Lock GL(_dl_load_lock) the same number of times as
6510 GL(_dl_load_lock) using non-mt implementation was nested.
6511
6512 * pthreadP.h (__pthread_cleanup_upto): Add hidden_proto.
6513 * pt-longjmp.c (__pthread_cleanup_upto): Add hidden_def.
6514
a30fb2df
UD
65152003-08-06 Jakub Jelinek <jakub@redhat.com>
6516
6517 * tst-cancel17.c (do_test): Make len2 maximum of page size and
6518 PIPE_BUF.
6519
ce0d30a0
JJ
65202003-08-07 Jakub Jelinek <jakub@redhat.com>
6521
6522 * pthread_create.c (__pthread_create_2_0): Clear new_attr.cpuset.
6523
9c988b83
UD
65242003-08-03 Jakub Jelinek <jakub@redhat.com>
6525
6526 * sysdeps/pthread/createthread.c (do_clone): Move error handling
6527 to first syscall error check. Move syscall error check for tkill
6528 into __ASSUME_CLONE_STOPPED #ifdef.
6529
5c5252bd
UD
65302003-08-02 Ulrich Drepper <drepper@redhat.com>
6531
f1205aa7
UD
6532 * sysdeps/pthread/createthread.c (do_clone): If __ASSUME_CLONE_STOPPED
6533 is not defined, do explicit synchronization.
6534 (create_thread): Do not lock pd->lock here. If __ASSUME_CLONE_STOPPED
6535 is not defined also unlock pd->lock for non-debugging case in case
6536 it is necessary.
6537 * pthread_create.c (start_thread): Always get and release pd->lock
6538 if __ASSUME_CLONE_STOPPED is not defined.
6539 (start_thread_debug): Removed. Adjust users.
6540 * allocatestack.c (allocate_stack): Always initialize lock if
6541 __ASSUME_CLONE_STOPPED is not defined.
6542 * Makefile (tests): Add tst-sched1.
6543 * tst-sched1.c: New file.
6544
5c5252bd
UD
6545 * sysdeps/pthread/createthread.c (do_clone): Only use
6546 sched_setschduler and pass correct parameters.
6547
973d66e4
UD
65482003-07-31 Jakub Jelinek <jakub@redhat.com>
6549
6550 * sysdeps/pthread/pthread.h (pthread_attr_setstackaddr,
6551 pthread_attr_setstacksize): Change PTHREAD_STACK_SIZE to
6552 PTHREAD_STACK_MIN in comments.
6553
d347a4ab
UD
65542003-07-31 Jakub Jelinek <jakub@redhat.com>
6555
6556 * sysdeps/pthread/pthread_cond_timedwait.c (__pthread_cond_timedwait):
6557 Shut up warnings if INTERNAL_SYSCALL_ERROR_P does not use its first
6558 argument.
6559 * sysdeps/unix/sysv/linux/timer_create.c (timer_create): Likewise.
6560 * pthread_condattr_setclock.c (pthread_condattr_setclock): Likewise.
6561 * sysdeps/unix/sysv/linux/s390/jmp-unwind.c: Include pthreaddef.h.
6562 (__pthread_cleanup_upto): Fix prototype.
6563 (_longjmp_unwind): Adjust caller.
6564 * sysdeps/unix/sysv/linux/s390/lowlevellock.h (__lll_mutex_timedlock):
6565 Change second argument to const struct pointer.
6566 * tst-sem8.c (main): Remove unused s2 and s3 variables.
6567 * tst-sem9.c (main): Likewise.
6568 * unwind.c: Include string.h for strlen prototype.
6569
1b26e9a5
UD
65702003-07-31 Ulrich Drepper <drepper@redhat.com>
6571
6572 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
6573 (__pthread_cond_timedwait): Don't use cmov unless HAVE_CMOV is defined.
6574 * sysdeps/unix/sysv/linux/i386/i686/pthread_cond_timedwait.S:
6575 Define HAVE_CMOV.
6576 Patch by Nicholas Miell <nmiell@attbi.com>.
6577
adc12574
UD
65782003-07-30 Jakub Jelinek <jakub@redhat.com>
6579
6580 * init.c (__pthread_initialize_minimal_internal): Initialize
6581 GL(dl_init_static_tls).
6582 * pthreadP.h (__pthread_init_static_tls): New prototype.
6583 * allocatestack.c (init_one_static_tls, __pthread_init_static_tls):
6584 New functions.
6585 * Makefile (tests): Add tst-tls4.
6586 (modules-names): Add tst-tls4moda and tst-tls4modb.
6587 ($(objpfx)tst-tls4): Link against libdl and libpthread.
6588 ($(objpfx)tst-tls4.out): Depend on tst-tls4moda.so and
6589 tst-tls4modb.so.
6590 * tst-tls4.c: New file.
6591 * tst-tls4moda.c: New file.
6592 * tst-tls4modb.c: New file.
6593
a7f6c66e
RM
65942003-06-19 Daniel Jacobowitz <drow@mvista.com>
6595
6596 * sysdeps/pthread/timer_create.c (timer_create): Call timer_delref
6597 before __timer_dealloc.
6598 * sysdeps/pthread/timer_routines.c (__timer_thread_find_matching):
6599 Don't call list_unlink.
6600
172ce013
RM
66012003-07-29 Roland McGrath <roland@redhat.com>
6602
6603 * Makefile [$(build-shared) = yes] (tests): Depend on $(test-modules).
6604
7b787f85
UD
66052003-07-25 Jakub Jelinek <jakub@redhat.com>
6606
6607 * tst-cancel17.c (do_test): Check if aio_cancel failed.
6608 Don't reuse struct aiocb A if it failed.
6609 Write fpathconf (fds[1], _PC_PIPE_BUF) + 2 bytes using aio_write,
6610 not just one byte, as that does not block.
6611
0e9d6240
UD
66122003-07-22 Jakub Jelinek <jakub@redhat.com>
6613
9d79e037
UD
6614 * sysdeps/pthread/unwind-resume.c: New file.
6615 * sysdeps/pthread/Makefile (routines, shared-only-routines): Add
6616 unwind-resume in csu subdir.
6617 (CFLAGS-unwind-resume.c, CFLAGS-rt-unwind-resume.c): Compile with
6618 exceptions.
6619 (librt-sysdep_routines, librt-shared-only-routines): Add
6620 rt-unwind-resume.
6621 * sysdeps/pthread/rt-unwind-resume.c: New file.
6622 * unwind-forcedunwind.c: New file.
6623 * Makefile (libpthread-routines): Add unwind-forcedunwind.
6624 (libpthread-shared-only-routines): Likewise.
6625 (CFLAGS-unwind-forcedunwind.c): Compile with exceptions.
6626 * pthreadP.h (pthread_cancel_init): New prototype.
6627 * pthread_cancel.c (pthread_cancel): Call pthread_cancel_init.
6628
6629 * sysdeps/pthread/createthread.c (do_thread, create_thread): Make
6630 attr argument const struct pthread_attr *.
6631
0e9d6240
UD
6632 * res.c (__res_state): Return __resp.
6633 * descr.h: Include resolv.h.
6634 (struct pthread): Add res field.
6635 * pthread_create.c: Include resolv.h.
6636 (start_thread): Initialize __resp.
6637 * Makefile (tests): Add tst-_res1.
6638 (module-names): Add tst-_res1mod1, tst-_res1mod2.
6639 ($(objpfx)tst-_res1mod2.so): Depend on $(objpfx)tst-_res1mod1.so.
6640 ($(objpfx)tst-_res1): Depend on $(objpfx)tst-_res1mod2.so and
6641 libpthread.
6642 * tst-_res1.c: New file.
6643 * tst-_res1mod1.c: New file.
6644 * tst-_res1mod2.c: New file.
6645
1a379ea0
UD
66462003-07-21 Ulrich Drepper <drepper@redhat.com>
6647
7e939b21
UD
6648 * sysdeps/pthread/createthread.c: Don't define CLONE_STOPPED.
6649
1a379ea0
UD
6650 * Makefile: Define various *-no-z-defs variables for test DSOs
6651 which has undefined symbols.
6652
ca86a763
UD
66532003-07-21 Steven Munroe <sjmunroe@us.ibm.com>
6654
6655 * sysdeps/unix/sysv/linux/powerpc/pthread_once.c (__pthread_once):
6656 Retry if the stwcx fails to store once_control.
6657
80f536db
UD
66582003-07-20 Ulrich Drepper <drepper@redhat.com>
6659
6660 * Makefile (libpthread-routines): Add pthread_attr_getaffinity and
6661 pthread_attr_setaffinity.
6662 * Versions [libpthread] (GLIBC_2.3.3): Likewise.
6663 * sysdeps/unix/sysv/linux/pthread_attr_getaffinity.c: New file.
6664 * sysdeps/unix/sysv/linux/pthread_attr_setaffinity.c: New file.
6665 * pthread_attr_destroy.c: Free cpuset element if allocated.
6666 * pthread_create.c: Pass iattr as additional parameter to
6667 create_thread.
6668 * sysdeps/pthread/createthread.c: If attribute is provided and
6669 a new thread is created with affinity set or scheduling parameters,
6670 start thread with CLONE_STOPPED.
6671 * sysdeps/pthread/pthread.h: Declare pthread_attr_getaffinity and
6672 pthread_attr_setaffinity.
6673 * sysdeps/unix/sysv/linux/internaltypes.h (struct pthread_attr): Add
6674 cpuset element.
6675
73299943
UD
66762003-07-15 Ulrich Drepper <drepper@redhat.com>
6677
6678 * tst-tcancel-wrappers.sh: lseek and llseek are not cancelation points.
6679
da35d15e
UD
66802003-07-14 Ulrich Drepper <drepper@redhat.com>
6681
6682 * sysdeps/pthread/configure.in: Require CFI directives also for
6683 ppc and s390.
6684
75540d8a
UD
66852003-07-15 Jakub Jelinek <jakub@redhat.com>
6686
6687 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h (PSEUDO):
6688 Add cfi directives.
6689
4a17085f
UD
66902003-07-12 Kaz Kojima <kkojima@rr.iij4u.or.jp>
6691
6692 * sysdeps/sh/tcb-offsets.sym: Add RESULT, TID, CANCELHANDLING and
6693 CLEANUP_JMP_BUF.
6694 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Use more
6695 registers as variables. Call __pthread_mutex_unlock_usercnt.
6696 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise.
6697 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: Store TID
6698 not self pointer in __writer. Compare with TID to determine
6699 deadlocks.
6700 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: Likewise.
6701 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S:
6702 Likewise.
6703 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S:
6704 Likewise.
6705 * sysdeps/unix/sysv/linux/sh/sem_wait.S: Add cancellation support.
6706 * sysdeps/unix/sysv/linux/sh/sem_timedwait.S: Likewise.
6707 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h: Define all the nice
6708 macros also when compiling librt.
6709
6080ecdf
UD
67102003-07-11 Jakub Jelinek <jakub@redhat.com>
6711
6712 * Makefile (CFLAGS-pthread_once.c): Add -fexceptions
6713 -fasynchronous-unwind-tables.
6714 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h
6715 (PSEUDO): Add cfi directives.
6716 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h (PSEUDO):
6717 Likewise.
6718 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h (PSEUDO):
6719 Likewise.
6720
da0c02ee
UD
67212003-07-08 Jakub Jelinek <jakub@redhat.com>
6722
6723 * pthreadP.h (__pthread_unwind_next, __pthread_register_cancel,
6724 __pthread_unregister_cancel): Add prototypes and hidden_proto.
6725 * unwind.c (__pthread_unwind_next): Add hidden_def.
6726 * cleanup.c (__pthread_register_cancel, __pthread_unregister_cancel):
6727 Likewise.
6728 * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S (__new_sem_wait):
6729 Use HIDDEN_JUMPTARGET to jump to __pthread_unwind.
6730 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S (sem_timedwait):
6731 Likewise.
6732 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S (sem_wait): Likewise.
6733 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S (sem_timedwait):
6734 Likewise.
6735 * sysdeps/unix/sysv/linux/i386/pthread_once.S (__pthread_once): Use
6736 HIDDEN_JUMPTARGET to call __pthread_register_cancel,
6737 __pthread_unregister_cancel and __pthread_unwind_next.
6738
57a5ea02
UD
67392003-07-04 Jakub Jelinek <jakub@redhat.com>
6740
6741 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h (PSEUDO): Use
6742 different symbol for the cancellation syscall wrapper and
6743 non-cancellation syscall wrapper.
6744 (PSEUDO_END): Define.
6745
d810b358
UD
67462003-07-05 Richard Henderson <rth@redhat.com>
6747
6748 * sysdeps/alpha/elf/pt-initfini.c: Avoid .ent/.end.
6749 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h (lll_futex_wait,
42d86dd6
RH
6750 lll_futex_timed_wait, lll_futex_wake, lll_futex_requeue): On success
6751 return actual return value from the syscall, not 0.
d810b358 6752
db54f488
UD
67532003-07-07 Ulrich Drepper <drepper@redhat.com>
6754
6755 * descr.h (struct pthread): Add pid field.
6756 * allocatestack.c (allocate_stack): Initialize pid field in descriptor.
6757 (__reclaim_stacks): Likewise.
6758 * init.c (sigcancel_handler): If __ASSUME_CORRECT_SI_PID is defined
6759 also check for PID of the signal source.
6760 (__pthread_initialize_minimal_internal): Also initialize pid field
6761 of initial thread's descriptor.
6762 * pthread_cancel.c: Use tgkill instead of tkill if possible.
6763 * sysdeps/unix/sysv/linux/fork.c: Likewise.
6764 * sysdeps/unix/sysv/linux/pt-raise.c: Likewise.
6765 * sysdeps/unix/sysv/linux/pthread_kill.c: Likewise.
6766 * sysdeps/unix/sysv/linux/raise.c: Likewise.
6767
5e497a41
UD
67682003-07-05 Ulrich Drepper <drepper@redhat.com>
6769
6770 * sysdeps/pthread/bits/libc-lock.h (__libc_cleanup_push): Renamed.
6771 Fix use of parameter.
6772 (__libc_cleanup_pop): Likewise.
6773
86a0c4fa
UD
67742003-07-04 Ulrich Drepper <drepper@redhat.com>
6775
6776 * init.c (sigcancel_handler): Change parameters to match handler
6777 for SA_SIGACTION. Check signal number and code to recognize
6778 invalid invocations.
6779
bdbecaa3
RM
67802003-07-03 Roland McGrath <roland@redhat.com>
6781
6782 * sysdeps/ia64/td_ta_map_lwp2thr.c (td_ta_map_lwp2thr):
6783 Apply sizeof (struct pthread) bias to r13 value.
6784
56421b23
UD
67852003-07-03 Ulrich Drepper <drepper@redhat.com>
6786
fbd90f6c
UD
6787 * sysdeps/pthread/configure.in: Require CFI directives.
6788
56421b23
UD
6789 * sysdeps/pthread/librt-cancellation.c (__pthread_unwind): Remove
6790 definition.
6791 * pthreadP.h (__pthread_unwind): Add hidden_proto if used in
6792 libpthread compilation.
6793 * unwind.c (__pthread_unwind): Add hidden_def.
6794 * Versions (libpthread) [GLIBC_PRIVATE]: Add __pthread_unwind.
6795
ca2b4cd7
UD
67962003-07-01 Ulrich Drepper <drepper@redhat.com>
6797
6798 * libc-cancellation.c (__libc_cleanup_routine): Define.
6799 * sysdeps/pthread/bits/libc-lock.h (__pthread_cleanup_push): Define.
6800 (__pthread_cleanup_pop): Define.
6801
f036e569
UD
68022003-07-01 Richard Henderson <rth@redhat.com>
6803
6804 * sysdeps/alpha/elf/pt-initfini.c: New file.
6805 * sysdeps/alpha/pthread_spin_lock.S: New file.
6806 * sysdeps/alpha/pthread_spin_trylock.S: New file.
6807 * sysdeps/alpha/pthreaddef.h: New file.
6808 * sysdeps/alpha/td_ta_map_lwp2thr.c: New file.
6809 * sysdeps/alpha/tls.h: New file.
6810 * sysdeps/unix/sysv/linux/alpha/Makefile: New file.
6811 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h: New file.
6812 * sysdeps/unix/sysv/linux/alpha/bits/semaphore.h: New file.
6813 * sysdeps/unix/sysv/linux/alpha/createthread.c: New file.
6814 * sysdeps/unix/sysv/linux/alpha/fork.c: New file.
6815 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h: New file.
6816 * sysdeps/unix/sysv/linux/alpha/pt-vfork.S: New file.
6817 * sysdeps/unix/sysv/linux/alpha/pthread_once.c: New file.
6818 * sysdeps/unix/sysv/linux/alpha/sem_post.c: New file.
6819 * sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h: New file.
6820
3b985826
UD
68212003-07-01 Ulrich Drepper <drepper@redhat.com>
6822
6823 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Add correct
6824 cleanup support and unwind info.
6825
3a4d1e1e
UD
68262003-06-30 Ulrich Drepper <drepper@redhat.com>
6827
6828 * sysdeps/unix/sysv/linux/i386/pthread_once.S (__pthread_once):
6829 Use correct cleanup handler registration. Add unwind info.
96c814d3
UD
6830 * sysdeps/unix/sysv/linux/unwindbuf.sym: New file.
6831 * sysdeps/unix/sysv/linux/Makefile: Add rule to build unwindbuf.h.
3a4d1e1e
UD
6832 * tst-once3.c: Add cleanup handler and check it is called.
6833 * tst-once4.c: Likewise.
6834 * tst-oncex3.c: New file.
6835 * tst-oncex4.c: New file.
6836 * Makefile: Add rules to build and run tst-oncex3 and tst-oncex4.
6837
e479cc8e
UD
68382003-06-29 Ulrich Drepper <drepper@redhat.com>
6839
6840 * sysdeps/pthread/configure.in: Check for C cleanup handling in gcc.
6841
7d7ff54c
UD
68422003-06-27 Ulrich Drepper <drepper@redhat.com>
6843
483e95d0
UD
6844 * tst-cancel4.c (tf_msgrcv): Use IPC_PRIVATE in msgget call.
6845 (tf_msgsnd): Likewise.
6846
7d7ff54c
UD
6847 * tst-cancel4.c (tf_msgrcv): Strengthen test against valid
6848 premature returns a bit more.
6849
7539c7ec
UD
68502003-06-26 Ulrich Drepper <drepper@redhat.com>
6851
6852 * sysdeps/pthread/librt-cancellation.c: Move __pthread_unwind
6853 definition to the front.
6854
6855 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Rename
6856 the cleanup functions to make the names unique. Fix dwarf opcode
6857 un unwind table.
6858 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Rename cleanup
6859 functions to make the names unique. Fix CFA offset for two blocks.
6860
0af6a1d9
UD
68612003-06-25 Ulrich Drepper <drepper@redhat.com>
6862
6863 * sysdeps/pthread/pthread.h (class __pthread_cleanup_class): Add
6864 missing closing braces.
6865 Patch by Christophe Saout <christophe@saout.de>.
6866
eef4a9f3
RM
68672003-06-24 Roland McGrath <roland@redhat.com>
6868
6869 * pthread_mutex_trylock.c (__pthread_mutex_trylock): Typo fix.
6870
4165d44d
UD
68712003-06-24 Ulrich Drepper <drepper@redhat.com>
6872
7f8f7b9d
UD
6873 * sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h: New file.
6874 * sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h: New file.
6875
4165d44d
UD
6876 * pthreadP.h: Declare __find_thread_by_id.
6877 * allocatestack.c [HP_TIMING_AVAIL]: Define __find_thread_by_id.
6878 * pthread_clock_gettime.c: Allow using other thread's clock.
6879 * pthread_clock_settime.c: Likewise.
6880 * sysdeps/pthread/pthread_getcpuclockid.c: Likewise.
6881 * Makefile: Add rules to build and run tst-clock2.
6882 * tst-clock2.c: New file.
6883
67b78ef9
UD
68842003-06-23 Ulrich Drepper <drepper@redhat.com>
6885
6886 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Rewrite
6887 to use exception-based cleanup handler.
6888 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
6889
6890 * tst-cond8.c (ch): Announce that we are done.
6891
6892 * pthreadP.h (__pthread_mutex_cond_lock): Mark with internal_function.
6893
6894 * tst-cancel17.c (tf): Retry aio_suspend in case of EINTR.
6895 Also test aio_suspend with timeout value.
6896
61623643
UD
68972003-06-22 Ulrich Drepper <drepper@redhat.com>
6898
3a4f2043
UD
6899 * pthreadP.h: Mark __pthread_mutex_unlock_usercnt also hidden.
6900 * pthread_mutex_unlock.c (__pthread_mutex_unlock_usercnt): Add
6901 attribute_hidden.
6902
61623643
UD
6903 * pthreadP.h (__pthread_mutex_init_internal): Mark hidden.
6904 (__pthread_mutex_lock_internal): Likewise.
6905 (__pthread_mutex_unlock_internal): Likewise.
6906 (__pthread_mutex_unlock_usercnt): Declare.
6907 * pthread_mutex_destroy.c: Always fail if used in any way.
6908 * pthread_mutex_init.c: Update comment.
6909 * pthread_mutex_lock.c: If NO_INCR is not defined adjust __nusers.
6910 * pthread_mutex_timedlock.c: Adjust __nusers.
6911 * pthread_mutex_trylock.c: Adjust __nusers.
6912 * pthread_mutex_unlock.c: Old code is in __pthread_mutex_unlock_usercnt
6913 and public interfaces are wrapper with pass additional parameter.
6914 __pthread_mutex_unlock_usercnt does not adjust __nusers if second
6915 parameter zero.
6916 * tst-mutex8.c: New file.
6917 * Makefile (tests): Add tst-mutex8.
6918 * sysdeps/pthread/pthread_cond_timedwait.c: Call
6919 __pthread_mutex_unlock_usercnt.
6920 * sysdeps/pthread/pthread_cond_wait.c: Likewise.
6921 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
6922 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
6923 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
6924 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
6925 * sysdeps/unix/sysv/linux/pthread_mutex_cond_lock.c: Define NO_INCR.
6926 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_mutex_t):
6927 Add __nusers.
6928 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
6929 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
6930 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
6931 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Likewise.
6932 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
6933
6934 * pthread_mutex_lock.c: Don't store THREAD_ID in __owner, use TID.
6935 * pthread_mutex_timedlock.c: Likewise.
6936 * pthread_mutex_trylock.c: Adjust __nusers.
6937 * pthread_mutex_unlock.c: Compare with TID not THREAD_ID.
6938 * tst-mutex9.c: New file.
6939 * Makefile (tests): Add tst-mutex9.
6940 * sysdeps/i386/tls.h: Remove THREAD_ID definition.
6941 * sysdeps/ia64/tls.h: Likewise.
6942 * sysdeps/powerpc/tls.h: Likewise.
6943 * sysdeps/s390/tls.h: Likewise.
6944 * sysdeps/sh/tls.h: Likewise.
6945 * sysdeps/x86_64/tls.h: Likewise.
6946 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_mutex_t):
6947 Change type of __owner.
6948 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
6949 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
6950 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
6951 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Likewise.
6952 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
6953
9bdabb94
UD
69542003-06-19 Jakub Jelinek <jakub@redhat.com>
6955
6956 * sysdeps/unix/sysv/linux/ia64/sem_post.c: Move to...
6957 * sysdeps/unix/sysv/linux/sem_post.c: ...here.
6958
6959 * sysdeps/unix/sysv/linux/sem_post.c: Move to...
6960 * sysdeps/unix/sysv/linux/powerpc/sem_post.c: ... here. Pass nr + 1
6961 instead of nr to lll_futex_wake. Only set errno and return -1
6962 if err < 0.
6963
6964 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h (lll_futex_wait,
6965 lll_futex_timed_wait, lll_futex_wake, lll_futex_requeue): On success
6966 return actual return value from the syscall, not 0.
6967
f6c93bd9
UD
69682003-06-18 Ulrich Drepper <drepper@redhat.com>
6969
ca343e73
UD
6970 * tst-cancel4.c (tf_msgsnd): Don't always use 100 as the type,
6971 find a random value.
6972 (tf_msgrcv): Likewise. Also don't report msgrcv returns if
6973 errno==EIDRM.
6974
50441a98
UD
6975 * sysdeps/unix/sysv/linux/timer_settime.c: Add prototype for
6976 compat_timer_settime.
6977 * sysdeps/unix/sysv/linux/timer_gettime.c: Add prototype for
6978 compat_timer_gettime.
6979 * sysdeps/unix/sysv/linux/timer_getoverr.c: Add prototype for
9bdabb94 6980 compat_timer_getoverrun.
50441a98
UD
6981 * sysdeps/unix/sysv/linux/timer_delete.c: Add prototype for
6982 compat_timer_delete.
6983
f6c93bd9
UD
6984 * pthread_mutex_destroy.c (__pthread_mutex_destroy): For
6985 error-checking mutex detect busy mutexes.
6986
047aec8f
UD
69872003-06-17 Ulrich Drepper <drepper@redhat.com>
6988
1d53508d
UD
6989 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (lll_mutex_lock):
6990 Add ax to clobber list.
6991 (lll_mutex_cond_lock): Likewise.
6992 (lll_mutex_unlock): Likewise.
6993 (lll_lock): Likewise.
6994 (lll_unlock): Likewise.
6995
f23b30e2
UD
6996 * Makefile: Add rules to build and run tst-cancel18 and tst-cancelx18.
6997 * tst-cancel18.c: New file.
6998 * tst-cancelx18.c: New file.
6999
7000 * tst-cancel4.c: Test connect, creat, msgrcv, msgsnd, sendmsg, sendto,
7001 and tcdrain.
7002
7003 * Makefile: Add rules to build and run tst-cancel17 and tst-cancel17x.
7004 * tst-cancel17.c: New file.
7005 * tst-cancelx17.c: New file.
7006
7007 * sysdeps/unix/sysv/linux/sigtimedwait.c: New file.
7008 * sysdeps/unix/sysv/linux/sigwait.c: New file.
7009 * sysdeps/unix/sysv/linux/sigwaitinfo.c: New file.
7010
047aec8f
UD
7011 * tst-cancel4.c: Test open, close, pread, pwrite, fsync, and msync.
7012
bbde8527
UD
70132003-06-16 Jakub Jelinek <jakub@redhat.com>
7014
7015 * sysdeps/pthread/createthread.c (create_thread): Set
7016 header.multiple_threads unconditionally.
7017 * allocatestack.c (allocate_stack): Likewise.
7018 * descr.h (struct pthread): Add header.multiple_threads
7019 unconditionally.
7020 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h (CENABLE, CDISABLE):
7021 Define for librt. #error if neither libpthread, libc nor librt.
7022 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h (CENABLE, CDISABLE):
7023 Likewise.
7024 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h (CENABLE,
7025 CDISABLE): Likewise.
7026 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h (CENABLE,
7027 CDISABLE): Likewise.
7028 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h (CENABLE,
7029 CDISABLE): Likewise.
7030 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h (CENABLE,
7031 CDISABLE): Likewise. Access header.multiple_threads outside of
7032 libc and libpthread.
7033 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h (CENABLE, CDISABLE):
7034 Likewise.
7035 * sysdeps/x86_64/tls.h (tcbhead_t): Add multiple_threads.
7036 * sysdeps/x86_64/tcb-offsets.sym (MULTIPLE_THREADS_OFFSET): Define.
7037
26676450
UD
70382003-06-17 Ulrich Drepper <drepper@redhat.com>
7039
7040 * tst-cancel4.c: Add tests for the socket and signal functions, pause.
7041 Also test early cancellation before the thread reaches the cancellation
7042 point.
7043
7044 * Makefile: Compile forward.c with exceptions.
7045
7046 * sysdeps/unix/sysv/linux/sleep.c: New file.
7047
301a6724
UD
70482003-06-16 Ulrich Drepper <drepper@redhat.com>
7049
0e0deb03
UD
7050 * Makefile: Add CFLAGS definition to compile function wrappers
7051 duplicated from libc with exceptions.
7052 * tst-cancel4.c: Also check cancellation handlers.
7053
301a6724
UD
7054 * Makefile: Add rules to build and run tst-cancel16 and
7055 tst-cancelx16. Add missing CFLAGS definitions.
7056 * tst-cancel16.c: New file.
7057 * tst-cancelx16.c: New file.
7058
7a114794
UD
70592003-06-15 Ulrich Drepper <drepper@redhat.com>
7060
452aea84
UD
7061 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h
7062 (DL_SYSINFO_IMPLEMENTATION): Use CFI opcodes.
7063 * sysdeps/unix/sysv/linux/i386/i686/dl-sysdep.h
7064 (DL_SYSINFO_IMPLEMENTATION): Likewise.
7065
7a114794
UD
7066 * pthreadP.h (LIBC_CANCEL_ASYNC): Also define for librt.
7067 (LIBC_CANCEL_RESET): Likewise.
7068 Declare __librt_enable_asynccancel and __librt_disable_asynccancel.
7069 * sysdeps/pthread/Makefile (librt-sysdep_routines): Add
7070 librt-cancellation.
7071 (CFLAGS-libcrt-cancellation.c): Define.
7072 * sysdeps/pthread/librt-cancellation.c: New file.
7073 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Define all the nice
7074 macros also when compiling librt.
7075 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h: Likewise.
7076 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h: Likewise.
7077 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h: Likewise.
7078 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h: Likewise.
7079 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h: Likewise.
7080 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h: Likewise.
7081 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h: Likewise.
7082
7083 * sysdeps/unix/sysv/linux/timer_create.c: Add prototype for
7084 compat_timer_create.
7085
8ba1d429
UD
70862003-06-14 Ulrich Drepper <drepper@redhat.com>
7087
cc8fb6f3
UD
7088 * sysdeps/pthread/posix-timer.h (timespec_compare): Always inline.
7089
8ba1d429
UD
7090 * sysdeps/unix/sysv/linux/fork.h: Add libc_hidden_proto for
7091 __register_atfork.
7092 * sysdeps/unix/sysv/linux/register-atfork.c (__register_atfork):
7093 Add libc_hidden_def.
7094
d4f100e2
RM
70952003-06-13 Roland McGrath <roland@redhat.com>
7096
7097 * sysdeps/x86_64/td_ta_map_lwp2thr.c (td_ta_map_lwp2thr): Pass FS
7098 constant from <sys/reg.h> to ps_get_thread_area, not register contents.
7099
dd9423a6
UD
71002003-06-11 Ulrich Drepper <drepper@redhat.com>
7101
7102 * allocatestack.c (queue_stack): Always inline.
7103 * ptreadhP.h (__do_cancel): Likewise.
7104
ed24330d
JJ
71052003-06-10 Jakub Jelinek <jakub@redhat.com>
7106
7107 * sysdeps/unix/sysv/linux/s390/sem_timedwait.c (sem_timedwait): Fix
7108 a typo.
7109
06120d79
UD
71102003-06-10 Ulrich Drepper <drepper@redhat.com>
7111
7112 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
7113 (__pthread_cond_signal): Remove incorrect second addition for
7114 cond_lock!=0.
7115
b1720346
UD
71162003-06-09 Ulrich Drepper <drepper@redhat.com>
7117
5b318f85
UD
7118 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
7119 (__pthread_cond_signal): Use correct futex pointer in
7120 __lll_mutex_lock_wait call.
7121
b1720346
UD
7122 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
7123 (__pthread_cond_signal): Some more tweaks to handle cond_lock!=0.
7124
3e36c37d
UD
71252003-06-08 Ulrich Drepper <drepper@redhat.com>
7126
ecf7955d
UD
7127 * sysdeps/unix/sysv/linux/s390/sem_wait.c (__new_sem_wait): Make
7128 cancelable.
ed24330d 7129 * sysdeps/unix/sysv/linux/s390/sem_timedwait.c (sem_timedwait):
ecf7955d
UD
7130 Likewise.
7131
3e36c37d
UD
7132 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h: Remove
7133 hand-written CFI generation code. Since ENTRY/END also initiated
7134 CFI frames this caused two CFI sets to be generated.
7135
7726edc2
UD
71362003-06-07 Ulrich Drepper <drepper@redhat.com>
7137
7138 * cleanup_routine.c: New file.
7139 * Versions (libpthread) [GLIBC_2.3.3]: Add __pthread_cleanup_routine.
7140 * sysdeps/pthread/pthread.h: Add support for fully exception-based
7141 cleanup handling.
7142 * Makefile (libpthread-routines): Add cleanup_routine.
7143 Add more CFLAGS variables to compile with exceptions. Add comments
7144 why which file needs unwind tables.
7145 (tests) [have-forced-unwind==yes]: Add tst-cancelx* and tst-cleanupx*
7146 tests.
7147 * tst-cancelx1.c: New file.
7148 * tst-cancelx2.c: New file.
7149 * tst-cancelx3.c: New file.
7150 * tst-cancelx4.c: New file.
7151 * tst-cancelx5.c: New file.
7152 * tst-cancelx6.c: New file.
7153 * tst-cancelx7.c: New file.
7154 * tst-cancelx8.c: New file.
7155 * tst-cancelx9.c: New file.
7156 * tst-cancelx10.c: New file.
7157 * tst-cancelx11.c: New file.
7158 * tst-cancelx12.c: New file.
7159 * tst-cancelx13.c: New file.
7160 * tst-cancelx14.c: New file.
7161 * tst-cancelx15.c: New file.
7162 * tst-cleanupx0.c: New file.
7163 * tst-cleanupx0.expect: New file.
7164 * tst-cleanupx1.c: New file.
7165 * tst-cleanupx2.c: New file.
7166 * tst-cleanupx3.c: New file.
7167
7168 * tst-cleanup0.c: Make standard compliant.
7169 * tst-cleanup1.c: Likewise.
7170
7171 * sysdeps/unix/sysv/linux/sem_timedwait.c: Add cancellation support.
7172 * sysdeps/unix/sysv/linux/sem_wait.c: Likewise.
7173 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: Likewise.
7174 * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S: Likewise.
7175 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Likewise.
7176 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Likewise.
7177 * sysdeps/i386/tcb-offsets.sym: Add RESULT, CANCELHANDLING, and
7178 CLEANUP_JMP_BUF.
7179 * sysdeps/x86_64/tcb-offsets.sym: Likewise.
7180 * tst-cancel12.c: New file.
7181 * tst-cancel13.c: New file.
7182 * tst-cancel14.c: New file.
7183 * tst-cancel15.c: New file.
7184 * Makefile (tests): Add tst-cancel12, tst-cancel13, tst-cancel14,
7185 and tst-cancel15.
7186
7187 * tst-cancel1.c: Add some comments.
7188
7189 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Compute relative
7190 timeout correctly.
7191
7a8a8e21
UD
71922003-06-06 Ulrich Drepper <drepper@redhat.com>
7193
7194 * Makefile (CFLAGS-pthread_cancel.c): Define.
7195
4ad0bbf4
UD
71962003-06-05 Ulrich Drepper <drepper@redhat.com>
7197
7198 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_rwlock_t):
7199 Change type of __writer element to int.
7200 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
7201 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
7202 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
7203 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
7204 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
7205 * sysdeps/i386/tcb-offsets.sym: Replace SELF entry with TID entry.
7206 * sysdeps/x86_64/tcb-offsets.sym: Likewise.
7207 * pthread_rwlock_trywrlock.c: Store TID not self pointer in __writer.
7208 Compare with TID to determine deadlocks.
7209 * sysdeps/pthread/pthread_rwlock_rdlock.c: Likewise.
7210 * sysdeps/pthread/pthread_rwlock_timedrdlock.c: Likewise.
7211 * sysdeps/pthread/pthread_rwlock_timedwrlock.: Likewise.
7212 * sysdeps/pthread/pthread_rwlock_wrlock.c: Likewise.
7213 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Likewise.
7214 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
7215 Likewise.
7216 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
7217 Likewise.
7218 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
7219 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S: Likewise.
7220 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S:
7221 Likewise.
7222 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S:
7223 Likewise.
7224 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S: Likewise.
7225 * Makefile (tests): Add tst-rwlock12.
7226 * tst-rwlock12.c: New file.
7227
332faa96
JJ
72282003-06-05 Jakub Jelinek <jakub@redhat.com>
7229
7230 * sysdeps/unix/sysv/linux/lowlevellock.c (__lll_lock_wait,
7231 __lll_timedlock_wait, lll_unlock_wake_cb, __lll_timedwait_tid):
7232 Remove bogus hidden_proto.
7233 * sysdeps/unix/sysv/linux/s390/libc-lowlevellock.c (___lll_lock):
7234 Likewise.
7235 * sysdeps/unix/sysv/linux/s390/lowlevellock.c (___lll_lock,
7236 lll_unlock_wake_cb, ___lll_timedwait_tid): Likewise.
7237 * sysdeps/unix/sysv/linux/s390/lowlevelmutex.c (___lll_mutex_lock,
7238 ___lll_mutex_timedlock): Likewise.
7239
29d9e2fd
UD
72402003-06-04 Ulrich Drepper <drepper@redhat.com>
7241
7242 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
7243 (__pthread_cond_signal): Add some code to eventually handle
7244 cond_lock!=0.
7245
6f1acb30
UD
72462003-06-01 Ulrich Drepper <drepper@redhat.com>
7247
7248 * Makefile (tests): Add tst-exec4.
7249 (tst-exec4-ARGS): Define.
7250 * tst-exec4.c: New file.
7251
49b65043
UD
72522003-05-31 Ulrich Drepper <drepper@redhat.com>
7253
31195be2
UD
7254 * sysdeps/unix/sysv/linux/lowlevellock.c (__lll_timedlock_wait):
7255 Also fail if tv_nsec < 0.
7256 (__lll_timedwait_tid): Likewise.
7257 * sysdeps/unix/sysv/linux/sem_timedwait.c (sem_timedwait): Likewise.
7258 * sysdeps/unix/sysv/linux/i386/lowlevellock.h (lll_timedwait_tid):
7259 Likewise.
7260 * sysdeps/unix/sysv/linux/s390/lowlevellock.c (___lll_timedwait_tid):
7261 Likewise.
7262 * sysdeps/unix/sysv/linux/s390/lowlevelmutex.c (__lll_mutex_timedlock):
7263 Likewise.
7264 * sysdeps/unix/sysv/linux/s390/sem_timedwait.c (sem_timedwait):
7265 Likewise.
80b54217
UD
7266 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (lll_timedwait_tid):
7267 Likewise.
7268 * sysdeps/unix/sysv/linux/sh/lowlevellock.h (lll_timedwait_tid):
7269 Likewise.
31195be2 7270
dcfc8224
UD
7271 * Makefile (tests): Add tst-sem8 and tst-sem9.
7272 * tst-sem8.c: New file.
7273 * tst-sem9.c: New file.
7274 * sem_open.c: Fix creation of in_use record if the file exists but
7275 no internal record.
7276
49b65043
UD
7277 * posix-timer.h: Remove old, unused timer_id2ptr and timer_ptr2id
7278 definitions.
7279
7280 * sysdeps/pthread/timer_create.c (timer_create): In case
7281 evp==NULL, assign timer ID to sival_ptr.
7282
7283 * descr.h (struct pthread_unwind_buf): Change type of prev element to
7284 struct pthread_unwind_buf *.
7285 (struct pthread): Likewise for cleanup_jmp_buf element.
7286
7287 * cleanup.c (__pthread_register_cancel): Add cast to avoid warning.
7288 * cleanup_defer.c (__pthread_register_cancel_defer): Likewise.
7289 * unwind.c (__pthread_unwind_next): Likewise.
7290
50794a45
UD
72912003-05-30 Ulrich Drepper <drepper@redhat.com>
7292
5d4f57bd
UD
7293 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h
7294 (lll_futex_timed_wait): Use int for futex value parameter.
7295 (lll_futex_wake): Likewise.
7296 (lll_futex_requeue): Likewise.
7297
7298 * sysdeps/unix/sysv/linux/lowlevellock.c (__lll_lock_wait):
7299 Replace one memory operation with one register operation.
7300
7301 * tst-join4.c (do_test): Fix error message.
7302
7ab7ea33
UD
7303 * tst-rwlock6.c (do_test): Use correct format specifier.
7304
7305 * sysdeps/unix/sysv/linux/i386/i486/lowlevelmutex.S
7306 (__lll_mutex_lock_wait): Replace one memory operation with one
7307 register operation.
7308 * sysdeps/unix/sysv/linux/x86_64/lowlevelmutex.S
7309 (__lll_mutex_lock_wait): Likewise.
7310
50794a45
UD
7311 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h
7312 (__lll_mutex_cond_lock): Add one to value parameter of
7313 __lll_lock_wait to reflect reality in the futex syscall.
7314 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h
7315 (lll_mutex_cond_lock): Likewise.
7316
5a70784e
JJ
73172003-05-30 Jakub Jelinek <jakub@redhat.com>
7318
7319 * sysdeps/unix/sysv/linux/s390/lowlevellock.h (__lll_mutex_cond_lock):
7320 New function.
7321 (lll_mutex_cond_lock): Define.
7322
e7c5ac68
UD
73232003-05-29 Ulrich Drepper <drepper@redhat.com>
7324
586d1748
UD
7325 * Makefile (tests): Add tst-signal6.
7326 * tst-signal6.c: New file.
7327
b8ba4a27
UD
7328 * sysdeps/unix/sysv/linux/s390/lowlevellock.h
7329 (__lll_mutex_unlock_force): New function
7330 (lll_mutex_unlock_force): Use __lll_mutex_unlock_force.
7331
65d46efe
UD
7332 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h
7333 (__lll_mutex_unlock_force): New function.
7334 (lll_mutex_unlock_force): Use __lll_mutex_unlock_force.
7335
7336 * tst-rwlock7.c (do_test): Use correct format specifier.
7337
e7c5ac68
UD
7338 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (lll_futex_requeue):
7339 Find break parameter in correct asm argument.
7340
284bdc42
UD
73412003-05-27 Jakub Jelinek <jakub@redhat.com>
7342
7343 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (lll_futex_clobbers):
7344 Remove out4.
7345 (lll_futex_requeue): Fix __o3 constraint, return negative errno if
7346 error occured.
7347 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h (pthread_cond_t):
7348 Add __mutex.
7349 * sysdeps/unix/sysv/linux/s390/lowlevellock.h (FUTEX_REQUEUE,
7350 lll_futex_requeue, lll_mutex_unlock_force): Define.
7351
e7c5ac68
UD
73522003-05-30 Jakub Jelinek <jakub@redhat.com>
7353
7354 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h
7355 (pthread_cond_t): Add __mutex.
7356 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h (FUTEX_REQUEUE,
7357 lll_futex_requeue, lll_mutex_unlock_force): Define.
7358
ea2630c6
UD
73592003-05-28 Kaz Kojima <kkojima@rr.iij4u.or.jp>
7360
7361 * sysdeps/sh/tcb-offsets.sym: Define MUTEX_FUTEX.
7362 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h (pthread_cond_t):
42d86dd6 7363 Add __mutex field.
ea2630c6
UD
7364 * sysdeps/unix/sysv/linux/sh/lowlevellock.h (SYSCALL_WITH_INST_PAD):
7365 Define.
7366 (lll_futex_wait, lll_futex_wake): Define.
7367 * sysdeps/unix/sysv/linux/sh/sh4/lowlevellock.h: New file.
7368 * sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S: Try using
7369 FUTEX_REQUEUE instead of FUTEX_WAIT.
7370 * sysdeps/unix/sysv/linux/sh/pthread_cond_signal.S: Likewise.
7371 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Remember
7372 mutex which was used in condvar structure. Call
7373 __pthread_mutex_cond_lock instead of __pthread_mutex_lock_internal.
7374 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Likewise.
7375
7376 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: Don't
7377 include tcb-offsets.h. Read wakeup value in locked region.
7378 Use the value of gbr register as THREAD_ID.
7379 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: Likewise.
7380 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S: Likewise.
7381 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S: Likewise.
7382
7383 * sysdeps/unix/sysv/linux/sh/sem_trywait.S: Remove futex related
7384 macros.
7385
5a77f150
UD
73862003-05-28 Ulrich Drepper <drepper@redhat.com>
7387
7388 * sysdeps/pthread/pthread_cond_broadcast.c
7389 (__pthread_cond_broadcast): Fix typo: MAX_INT -> INT_MAX.
7390
7661d9f7
UD
73912003-05-26 Ulrich Drepper <drepper@redhat.com>
7392
7393 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S: Fix
7394 typo in register name.
7395 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S: Use parameters
7396 correctly. Actually use requeue. Little optimization.
7397 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Store
7398 mutex address early. Handle cancellation state as 32-bit value.
7399 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
7400 Remove unnecessary label.
7401
69431c9a
UD
74022003-05-25 Ulrich Drepper <drepper@redhat.com>
7403
7404 * sysdeps/pthread/pthread_cond_broadcast.c: Try using FUTEX_REQUEUE
7405 instead of FUTEX_WAIT.
7406 * sysdeps/pthread/pthread_cond_signal.c: Likewise.
7407 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S: Likewise.
7408 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S: Likewise.
7409 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S: Likewise.
7410 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S: Likewise.
7411 * sysdeps/pthread/pthread_cond_timedwait.c: Remember mutex which was
7412 used in condvar structure. Call __pthread_mutex_cond_lock instead
7413 of __pthread_mutex_lock_internal.
7414 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
7415 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
7416 * sysdeps/pthread/pthread_cond_wait.c: Likewise.
7417 (__condvar_cleanup): Always call __pthread_mutex_cond_lock.
7418 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
7419 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
7420 * sysdeps/unix/sysv/linux/Makefile (libpthread-sysdep_routines):
7421 Add pthread_mutex_cond_lock.
7422 * sysdeps/unix/sysv/linux/lowlevelcond.sym: Add dep_mutex.
7423 * sysdeps/unix/sysv/linux/pthread_cond_mutex_lock.c: New file.
7424 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Define
7425 lll_mutex_cond_lock.
7426 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h: Likewise.
7427 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
248a3490 7428 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_cond_t):
69431c9a 7429 Add __mutex field.
248a3490 7430 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
69431c9a
UD
7431 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
7432
7433 * sysdeps/i386/tcb-offsets.sym: Define MUTEX_FUTEX.
7434 * sysdeps/x86_64/tcb-offsets.sym: Likewise.
7435
7436 * pthreadP.h: Declare __pthread_mutex_cond_lock.
7437 * pthread_mutex_lock.c: Define LLL_MUTEX_LOCK if not already defined.
7438 Use it instead of lll_mutex_lock. If __pthread_mutex_lock is a
7439 macro don't define aliases.
7440
7441 * cancellation.c: Remove __pthread_enable_asynccancel_2.
7442 * pthreadP.h: Remove declaration of __pthread_enable_asynccancel_2.
7443 * sysdeps/pthread/pthread_cond_timedwait.c: Use
7444 __pthread_enable_asynccancel instead of __pthread_enable_asynccancel_2.
7445 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
7446 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
7447 * sysdeps/pthread/pthread_cond_wait.c: Likewise.
7448 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
7449 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
7450
fddfebbd
UD
74512003-05-17 Ulrich Drepper <drepper@redhat.com>
7452
7453 * sem_open.c: Fix one endless loop. Implement correct semantics
7454 wrt opening the same semaphore more then once.
7455 * sem_close.c: Adjust for sem_open change.
7456 * semaphoreP.h: Include <semaphore.h>. Define struct inuse_sem.
7457 Declare __sem_mappings, __sem_mappings_lock, __sem_search.
7458 * Makefile (tests): Add tst-sem7.
7459 * tst-sem7.c: New file.
7460
1eefffb0
RM
74612003-05-16 Roland McGrath <roland@redhat.com>
7462
7463 * sysdeps/unix/sysv/linux/register-atfork.c (libc_freeres_fn): Fix
7464 uninitialized variable braino.
7465
6e66dc78
UD
74662003-05-16 Ulrich Drepper <drepper@redhat.com>
7467
23ae6451
UD
7468 * sysdeps/unix/sysv/linux/timer_gettime.c (timer_gettime): Correct
7469 test for syscall availability.
7470
7471 * sysdeps/unix/sysv/linux/timer_settime.c (timer_settime): Set
7472 __no_posix_timers to -1 if the syscalls don't exist.
7473
7ac5b8e2
UD
7474 * pthread_join.c (pthread_join): Set tid field of the joined
7475 thread to -1. This isn't necessary but helps to recognize some
7476 error conditions with almost no cost.
7477
7478 * allocatestack.c (FREE_P): Also negative values indicate an
7479 unused stack.
7480
6e66dc78
UD
7481 * unwind.c: Include <unistd.h>.
7482
855dba3c
UD
74832003-05-14 Ulrich Drepper <drepper@redhat.com>
7484
7485 * Makefile ($(objpfx)$(multidir)): Add rule to create the directory.
7486
81f3ac4c
UD
74872003-05-14 Jakub Jelinek <jakub@redhat.com>
7488
7489 * Makefile (crti-objs, crtn-objs): New variables.
7490 (omit-deps, extra-objs): Add crtn.
7491 ($(objpfx)libpthread.so): Depend on both crti and crtn
7492 and links to them in multidir.
7493 ($(objpfx)crtn.S, $(objpfx)crtn.o): New rules.
7494
7158eae4
UD
74952003-05-12 Steven Munroe <sjmunroe@us.ibm.com>
7496
7497 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h
7498 (lll_mutex_unlock): Use atomic_exchange_rel.
7499
edf205d5
UD
75002003-05-11 Ulrich Drepper <drepper@redhat.com>
7501
7502 * cond-perf.c (cons): Add missing locking around setting of alldone.
7503
a3f979a7
UD
75042003-05-10 Ulrich Drepper <drepper@redhat.com>
7505
7506 * sysdeps/unix/sysv/linux/i386/i486/sem_trywait.S: Remove futex
7507 related macros.
7508 * sysdeps/unix/sysv/linux/x86_64/sem_trywait.S: Likewise.
7509
880867a4
UD
75102003-05-09 Ulrich Drepper <drepper@redhat.com>
7511
949ec764
UD
7512 * tst-sem6.c: New file.
7513 * Makefile (tests): Add tst-sem6.
7514
7515 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (___lll_mutex_unlock):
7516 Use atomic_exchange_rel instead of atomic_exchange.
7517 * sysdeps/unix/sysv/linux/lowlevellock.c (lll_unlock_wake_cb):
7518 Likewise.
7519
7520 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Improve quality of
7521 code for lll_futex_wait and lll_futex_wake in static apps. Use
7522 vsyscall is possible.
7523
7524 * sysdeps/unix/sysv/linux/pthread_getaffinity.c: New file.
7525 * sysdeps/unix/sysv/linux/pthread_setaffinity.c: New file.
7526 * sysdeps/pthread/pthread.h: Declare pthread_getaffinity_np and
7527 pthread_setaffinity_np.
7528 * Versions [libpthread] (GLIBC_2.3.3): Add pthread_getaffinity_np
7529 and pthread_setaffinity_np.
7530 * Makefile (libpthread-routines): Add pthread_getaffinity and
7531 pthread_setaffinity.
7532
880867a4
UD
7533 * allocatestack.c (allocate_stack): If ARCH_RETRY_MMAP is defined,
7534 use it in case mmap to allocate the stack fails.
7535 * sysdeps/unix/sysv/linux/x86_64/Makefile: Don't define
7536 ARCH_MAP_FLAGS here.
7537 * sysdeps/x86_64/pthreaddef.h: Define ARCH_MAP_FLAGS and
7538 ARCH_RETRY_MMAP.
7539
92d83c72
UD
75402003-05-08 Ulrich Drepper <drepper@redhat.com>
7541
7542 * sysdeps/unix/sysv/linux/fork.c: Complete rewrite of the atfork
7543 handler implementation. It is now lockless in fork().
7544 * sysdeps/unix/sysv/linux/register-atfork.c: Likewise.
7545 * sysdeps/unix/sysv/linux/unregister-atfork.c: Likewise.
7546 * sysdeps/unix/sysv/linux/fork.h: Don't include <link.h>. Don't
7547 declare the __fork_*_lists.
7548 (struct fork_handler): Include pointers to all three functions.
7549 Add next, refcntr and need_signal elements.
7550 (__fork_handlers): New declaration.
7551 (__register_atfork_malloc): Remove declaration.
7552 (HAVE_register_atfork_malloc): Remove definition.
7553 * sysdeps/unix/sysv/linux/libc_pthread_init.c: Remove
7554 __pthread_child_handler variable.
7555 (__libc_pthread_init): Use __register_atfork instead of explicitly
7556 adding to the list.
7557 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Define lll_futex_wait
7558 and lll_futex_wake.
7559 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
7560
7561 * unwind.c (unwind_cleanup): Print error message and then abort. This
7562 function must never be reached.
7563
7564 * cond-perf.c: New file.
7565
be4d8038
UD
75662003-05-05 Ulrich Drepper <drepper@redhat.com>
7567
7568 * sysdeps/i386/tls.h (TLS_INIT_TP): Include \n in error message.
7569
c6696b79
RM
75702003-05-04 Roland McGrath <roland@redhat.com>
7571
7572 * Makefile ($(objpfx)../libc.so): New target.
7573
7da168bf
UD
75742003-05-02 Ulrich Drepper <drepper@redhat.com>
7575
7576 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h
7577 (pthread_condattr_t): Size is only an int, don't use long for
7578 alignment.
7579 (pthread_mutexattr_t): Likewise.
7da168bf
UD
7580 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
7581 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
7582 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
7583
9a7178d6
UD
75842003-05-01 Ulrich Drepper <drepper@redhat.com>
7585
7586 * sysdeps/i386/tls.h: Define THREAD_ID.
7587 * sysdeps/ia64/tls.h: Likewise.
7588 * sysdeps/powerpc/tls.h: Likewise.
7589 * sysdeps/s390/tls.h: Likewise.
7590 * sysdeps/sh/tls.h: Likewise.
7591 * sysdeps/x86_64/tls.h: Likewise.
7592 * pthread_mutex_lock.c: Use THREAD_ID instead of THREAD_SELF to
7593 record ownership.
7594 * pthread_mutex_timedlock.c: Likewise.
7595 * pthread_mutex_trylock.c: Likewise.
7596 * pthread_mutex_unlock.c: Likewise.
7597 * pthread_rwlock_trywrlock.c: Likewise.
7598 * sysdeps/pthread/pthread_rwlocklock_rdlock.c: Likewise.
7599 * sysdeps/pthread/pthread_rwlock_timedrdlock.c: Likewise.
7600 * sysdeps/pthread/pthread_rwlock_timedwrlock.c: Likewise.
7601 * sysdeps/pthread/pthread_rwlock_wrlock.c: Likewise.
7602
7603 * sysdeps/pthread/createthread.c (create_thread): Use CLONE_SYSVSEM
7604 flag.
7605
a234e27d
UD
76062003-04-29 Jakub Jelinek <jakub@redhat.com>
7607
7608 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h
7609 (__SIZEOF_PTHREAD_COND_T): Define to 48.
7610 (pthread_rwlock_t): Add 16 bytes of pad instead of 8 before __flags.
7611 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h (pthread_cond_t):
7612 Make __align long long instead of long.
7613 (pthread_rwlock_t): Formatting.
7614 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h
7615 (pthread_rwlock_t): Formatting.
7616 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h
7617 (pthread_cond_t): Make __align long long instead of long.
7618 (pthread_rwlock_t): Move __flags field to the same position as in
7619 linuxthreads.
7620
f025c136
UD
76212003-04-30 Ulrich Drepper <drepper@redhat.com>
7622
7623 * tst-rwlock6.c (do_test): Use correct printf format specifiers.
7624 * tst-rwlock7.c (do_test): Likewise.
7625
7531ab9e
RM
76262003-04-26 Roland McGrath <roland@redhat.com>
7627
7628 * Makefile ($(test-modules)): Depend on $(common-objpfx)shlib.lds.
7629
299601a1
UD
76302003-04-22 Jakub Jelinek <jakub@redhat.com>
7631
299601a1
UD
7632 * allocatestack.c (TLS_TPADJ): Add TLS_PRE_TCB_SIZE instead of
7633 sizeof (struct pthread).
7634 (allocate_stack): Subtract TLS_PRE_TCB_SIZE bytes instead of
468777e1 7635 1 struct pthread.
299601a1
UD
7636 * sysdeps/powerpc/tls.h (TLS_INIT_TCB_SIZE, TLS_TCB_SIZE): Define
7637 to 0.
7638 (TLS_INIT_TCB_ALIGN, TLS_TCB_ALIGN): Define to alignment of
7639 struct pthread.
7640 (TLS_PRE_TCB_SIZE): Increase to cover tcbhead_t preceeded by pad
7641 to 32-bit bytes.
7642 (INSTALL_DTV, GET_DTV, THREAD_DTV): tcbhead_t is immediately before
7643 tcbp.
7644 (TLS_INIT_TP, THREAD_SELF, INIT_THREAD_SELF): Don't add TLS_TCB_SIZE
7645 unneccessarily.
7646 (NO_TLS_OFFSET): Define.
299601a1
UD
7647 * sysdeps/unix/sysv/linux/powerpc/createthread.c (TLS_VALUE): Don't
7648 add TLS_TCB_SIZE unnecessarily.
299601a1 7649
950094f8
RM
76502003-04-22 Roland McGrath <roland@redhat.com>
7651
7652 * Makeconfig (shared-thread-library): Reverse link order to work
7653 around linker bug.
7654
dc2f6455
UD
76552003-04-22 Ulrich Drepper <drepper@redhat.com>
7656
7657 * semaphore.h: Fix typo in comment.
7658
e7608d77
UD
76592003-04-21 Ulrich Drepper <drepper@redhat.com>
7660
6a87ee19
UD
7661 * sysdeps/pthread/sigfillset.c: New file.
7662
e7608d77
UD
7663 * init.c (__pthread_initialize_minimal): Don't block SIGTIMER.
7664 * pthreadP.h: Make SIGTIMER and SIGCANCEL the same.
7665 * sysdeps/pthread/pthread_sigmask.c: Remove handling of SIGTIMER.
7666 * sysdeps/pthread/sigaction.c: Likewise.
7667 * sysdeps/pthread/sigprocmask.c: New file.
7668 * sysdeps/unix/sysv/linux/allocrtsig.c (current_rtmin): Define as
7669 __SIGRTMIN+1.
7670 * sysdeps/unix/sysv/linux/timer_routines.c (timer_helper_thread):
7671 Block SIGTIMER. Also handle SI_TKILL events and terminate thread
7672 in this case.
7673
0b3df49e
UD
76742003-04-19 Ulrich Drepper <drepper@redhat.com>
7675
58a7a325
UD
7676 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h
7677 (DL_SYSINFO_IMPLEMENTATION): Add .eh_frame information.
7678
0b3df49e
UD
7679 * sysdeps/unix/sysv/linux/unregister-atfork.c
7680 (__unregister_atfork): Don't free memory not allocated dynamically.
7681
7682 * semaphore.h: Remove __THROW marker from cancellation points.
7683 * nptl/sysdeps/pthread/pthread.h: Likewise.
7684
7d74651e
UD
76852003-04-18 Ulrich Drepper <drepper@redhat.com>
7686
76a67697
UD
7687 * sysdeps/pthread/pthread.h: Don't mark pthread_testcancel,
7688 pthread_cancel, pthread_setcancelstate, and pthread_setcanceltype with
7d74651e
UD
7689 __THROW.
7690
dd9d6538
JJ
76912003-04-16 Jakub Jelinek <jakub@redhat.com>
7692
7693 * tst-cancel4.c (do_test): Use %zd instead of %d when printing cnt.
7694
4ab6f47c
RM
76952003-04-15 Roland McGrath <roland@redhat.com>
7696
7697 * forward.c (__pthread_unwind): Tweak to avoid warning.
7698
162434a6
UD
76992003-04-15 Ulrich Drepper <drepper@redhat.com>
7700
7701 * pthreadP.h: Move THREAD_ATOMIC_* replacements to the top.
7702
35909161
UD
77032003-04-14 Ulrich Drepper <drepper@redhat.com>
7704
18ddd3aa 7705 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Don't
35909161
UD
7706 overflow CFA advance instructions.
7707 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
7708
18a8e730
UD
77092003-04-14 Jakub Jelinek <jakub@redhat.com>
7710
bd4f43b4
UD
7711 * sysdeps/i386/tls.h: Rename LOCK to LOCK_PREFIX.
7712 * sysdeps/i386/pthread_spin_lock.c: Likewise.
7713 * sysdeps/x86_64/tls.h: Likewise. Define LOCK_PREFIX if not already
7714 defined.
7715
18a8e730
UD
7716 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Use
7717 DW_CFA_advance_loc2 for .Laddl-.Lsubl.
7718 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Use
7719 DW_CFA_advance_loc for .Laddl-.Lsubl.
7720
08c765fa
UD
77212003-04-13 Ulrich Drepper <drepper@redhat.com>
7722
18a8e730
UD
7723 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Don't use
7724 position-independent unwind data for static libraries.
7725 Add missing unwind info. Add comments.
7726
ad2be852
UD
7727 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Add unwind info.
7728 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
7729 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
08c765fa
UD
7730 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
7731
177d1ad3
UD
77322003-04-12 Ulrich Drepper <drepper@redhat.com>
7733
08c765fa
UD
7734 * Makefile: Make sure all cancellation points are compiled with
7735 exception and asynchronous unwind tables.
7736
177d1ad3
UD
7737 * sysdeps/x86_64/tls.h (THREAD_SETMEM): Word around compiler bug
7738 which mishandles loading of global object addresses in PIC.
7739 (THREAD_SETMEM_NC): Likewise.
7740
09d65ff3
UD
77412003-04-11 Ulrich Drepper <drepper@redhat.com>
7742
7743 * pthread.h: Define new data structure for cleanup buffer. Declare
7744 new cleanup handler interfaces.
7745 * descr.h: Include <unwind.h> if necessary. Define pthread_unwind_buf.
7746 (struct pthread): Add cleanup_jmp_buf pointer. Define
7747 HAVE_CLEANUP_JMP_BUF and not HAVE_CANCELBUF.
7748 * pthreadP.h: Declare __pthread_unwind. Define __do_cancel to use
7749 it. Declare old cleanup handler installation functions.
7750 * cleanup.c: Rewrite. Install handler for unwind-based cleanup
7751 handling.
7752 * cleanup_defer.c: Likewise.
7753 * cleanup_compat.c: New file. Old cleanup code.
7754 * cleanup_def_compat.c: New file. Old cleanup code.
7755 * pthread_create.c (start_thread): Initialize cleanup_jmp_buf element
7756 if own thread descriptor.
7757 * unwind.c: New file.
7758 * forward.c: Add __pthread_unwind.
7759 * init.c (pthread_functions): Add __pthread_unwind.
7760 * sysdeps/pthread/pthread-functions.s (struct pthread_functions):
7761 Add ptr___pthread_unwind.
7762 * Versions [GLIBC_2.3.3] (libpthread): Export new cleanup handling
7763 and unwind function.
7764 * Makefile (libpthread-routines): Add cleanup_compat,
7765 cleanup_def_compat, and unwind. Define CFLAGS to enable unwind
7766 table generation if necessary.
7767 * version.c: Record whether unwind support is compiled in.
7768 * sysdeps/pthread/configure.in: Add checks for unwind unterfaces.
7769 * sysdeps/pthread/bits/libc-lock.h: Add prototypes of the old cleanup
7770 handler interfaces.
7771 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Add quite a bit of
7772 complication to generate unwind information for syscall wrappers.
68107ec0 7773 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h: Likewise.
09d65ff3
UD
7774 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Define
7775 __cleanup_fct_attribute.
7776
7777 * Makefile: Add rules to build and run tst-cleanup0.
7778 * tst-cleanup0.c: New file.
7779 * tst-cleanup0.expect: New file.
7780
7781 * pthread_create.c (deallocate_tsd): Don't take parameter. Adjust
7782 caller. Optimize to avoid often unecessary local variable.
7783
0dc44b51
RM
77842003-04-11 Roland McGrath <roland@redhat.com>
7785
7786 * Makefile ($(objpfx)multidir.mk): New target, generated makefile that
7787 sets variable `multidir'; include that.
7788 (generated): Add it.
7789 ($(objpfx)$(multidir)/crti.o): New target.
7790 [$(multidir) != .] (generated-dirs, extra-objs, omit-deps): Add it.
7791
84a80719
UD
77922003-04-11 Ulrich Drepper <drepper@redhat.com>
7793
7794 * tst-attr2.c (do_test): Add cast to avoid warning.
7795 * tst-mutex4.c (do_test): Likewise.
7796
88ff4759
UD
77972003-04-10 Ulrich Drepper <drepper@redhat.com>
7798
7799 * sysdeps/unix/sysv/linux/fork.c (__libc_fork): Reset CPU clocks
7800 in child.
7801
b2041097
UD
78022003-04-09 Ulrich Drepper <drepper@redhat.com>
7803
7804 * Makefile (tests): Add tst-detach1.
7805 * tst-detach1.c: New file.
7806
f9657e88
UD
78072003-04-08 Ulrich Drepper <drepper@redhat.com>
7808
9afe4964
UD
7809 * sysdeps/pthread/pthread.h: Remove duplicate
7810 pthread_cleanup_{push,pop} definitions.
7811
f9657e88
UD
7812 * tst-barrier2.c: Eliminate warnings.
7813 * tst-cancel4.c: Likewise.
7814 * tst-cond4.c: Likewise.
7815 * tst-cond6.c: Likewise.
7816 * tst-detach1.c: Likewise.
7817 * tst-rwlock4.c: Likewise.
7818 * tst-rwlock6.c: Likewise.
7819 * tst-rwlock7.c: Likewise.
7820 * tst-sem3.c: Likewise.
7821 * tst-spin2.c: Likewise.
7822 * tst-umask1.c: Likewise.
7823
69b35e86
UD
78242003-04-07 Ulrich Drepper <drepper@redhat.com>
7825
7826 * pthread_detach.c (pthread_detach): Fix test for invalid TID.
7827
c70ad7d7
UD
78282003-04-06 Ulrich Drepper <drepper@redhat.com>
7829
7830 * descr.h (struct pthread): Move cancelhandling member to the front.
7831
54e0138f
UD
78322003-04-05 Ulrich Drepper <drepper@redhat.com>
7833
7834 * sysdeps/unix/sysv/linux/register-atfork.c: Define malloc_prepare,
7835 malloc_parent, and malloc_child statically.
7836 (__register_atfork_malloc): New function.
7837 (free_mem): Don't free any of the malloc_* variables on the list.
7838 * sysdeps/unix/sysv/linux/fork.h: Declare __register_atfork_malloc.
7839 Define HAVE_register_atfork_malloc.
7840
b22d701b
UD
78412003-04-04 Ulrich Drepper <drepper@redhat.com>
7842
7843 * sysdeps/pthread/createthread.c (create_thread): Add some more
7844 comments explaining when to set multiple_threads and when not.
7845
7846 * pthreadP.h: Define THREAD_ATOMIC_CMPXCHG_VAL and
7847 THREAD_ATOMIC_BIT_SET if not already defined.
7848 * sysdeps/i386/tls.h: Define THREAD_ATOMIC_CMPXCHG_VAL and
7849 THREAD_ATOMIC_BIT_SET:
7850 * sysdeps/x86_64/tls.h: Likewise.
7851 * cleanup_defer.c (_pthread_cleanup_push_defer): Rewrite to use
7852 THREAD_ATOMIC_CMPXCHG_VAL.
7853 (_pthread_cleanup_pop_restore): Likewise.
7854 * cancellation.c (__pthread_enable_asynccancel): Likewise.
7855 (__pthread_enable_asynccancel_2): Likewise.
7856 (__pthread_disable_asynccancel): Likewise.
7857 * libc-cancellation.c (__libc_enable_asynccancel): Likewise.
7858 (__libc_disable_asynccancel): Likewise.
7859 * init.c (sigcancel_handler): Likewise.
7860 * pthread_setcancelstate.c (__pthread_setcancelstate): Likewise.
7861 * pthread_setcanceltype.c (__pthread_setcanceltype): Likewise.
7862
86246935
UD
78632003-04-03 Ulrich Drepper <drepper@redhat.com>
7864
7865 * init.c (sigcancel_handler): Don't set EXITING_BIT here.
7866 * libc-cancellation.c (__libc_enable_asynccancel): Likewise.
7867 * pthreadP.h (__do_cancel): Set EXITING_BIT here.
7868 * Makefile (tests): Add tst-cancel11.
7869 * tst-cancel11.c: New file.
7870
6b4686a5
UD
78712003-04-01 Ulrich Drepper <drepper@redhat.com>
7872
7873 * pthread_create.c (deallocate_tsd): Clear/free memory after the last
7874 round, not the first. Use specific_used flag instead of local
7875 found_nonzero variable. Use THREAD_[SG]ETMEM where possible.
7876 (__free_tcb): Don't call deallocate_tsd here.
7877 (start_thread): Call deallocate_tsd here.
7878 * pthread_setspecific.c: Set specific_used flag really only when
7879 needed.
0d73a73b 7880 * Makefile (tests): Add tst-tsd3.c and tst-tsd4.
6b4686a5 7881 * tst-tsd3.c: New file.
0d73a73b 7882 * tst-tsd4.c: New file.
6b4686a5 7883
42b2395d
UD
78842003-03-31 Ulrich Drepper <drepper@redhat.com>
7885
211d90c5
UD
7886 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (__lll_mutex_lock):
7887 Use atomic_exchange_and_add instead of __lll_add.
7888 (__lll_mutex_timedlock): Likewise.
7889 Patch by Ian Wienand.
7890
78912003-03-24 Steven Munroe <sjmunroe@us.ibm.com>
7892
7893 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h
7894 (SINGLE_THREAD_P): Fix typo.
7895 * tst-cancel-wrappers.sh: Handle '.'ed symbols.
7896
78972003-03-31 Ulrich Drepper <drepper@redhat.com>
7898
7899 * Makefile (tests): Add tst-align.
7900 * tst-align.c: New file.
7901 * sysdeps/i386/Makefile: Define CFLAGS-tst-align.
211d90c5 7902
42b2395d
UD
7903 * sysdeps/i386/tls.h (CALL_THREAD_FCT): Align stack of called
7904 function correctly.
7905
211d90c5
UD
7906 * tst-tsd2.c: Add casts to avoid warnings.
7907
163b180f
UD
79082003-03-30 Ulrich Drepper <drepper@redhat.com>
7909
7910 * descr.h (struct pthread): Move most often used elements to the front.
7911
ea473bad
UD
79122003-03-29 Ulrich Drepper <drepper@redhat.com>
7913
7914 * Makefile (libpthread-routines): Add pthread_atfork.
7915 (libpthread-static-only-routines): Add pthread_atfork.
7916
dd731d53
UD
79172003-03-28 Kaz Kojima <kkojima@rr.iij4u.or.jp>
7918
7919 * sysdeps/sh/tls.h: Include nptl/descr.h after the definition
7920 of TLS_DTV_AT_TP.
7921 (INSTALL_DTV): Add parens.
7922 (THREAD_GETMEM, THREAD_GETMEM_NC, THREAD_SETMEM, THREAD_SETMEM_NC):
7923 Use passed descr instead of THREAD_SELF.
7924 * sysdeps/unix/sysv/linux/sh/lowlevelmutex.S
7925 (__lll_mutex_timedlock_wait): Correct expected value after
7926 spurious wakeup.
7927 * sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S:
7928 Release lock before waking up the waiters.
7929 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Correct exit
7930 criteria. Reorderstruct passed to cleanup handler. Fix
7931 handling of cancellation and failung pthread_mutex_unlock call.
7932 Use __pthread_enable_asynccancel_2 instead of
7933 __pthread_enable_asynccancel.
7934 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise.
7935 Return result of lock re-get if it fails.
7936 * sysdeps/unix/sysv/linux/sh/pthread_once.S: Fix wrong argument
7937 for __pthread_cleanup_push.
7938 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: Fix
7939 completely broken rwlock implementation.
7940 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: Likewise.
7941 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S: Likewise.
7942 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S: Likewise.
7943 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S: Likewise.
7944 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: Likewise.
7945 * sysdeps/unix/sysv/linux/sh/sem_post.S: Fix error value. Use
7946 versioned_symbol macro.
7947 * sysdeps/unix/sysv/linux/sh/sem_trywait.S: Use versioned_symbol macro.
7948 * sysdeps/unix/sysv/linux/sh/sem_wait.S: Likewise.
7949
c75d02f0
UD
79502003-03-27 Ulrich Drepper <drepper@redhat.com>
7951
5f5004df
UD
7952 * sysdeps/unix/sysv/linux/kernel-posix-timers.h: Don't declare
7953 __timer_helper_thread. Declare __start_helper_thread, __helper_once,
7954 and __helper_tid.
7955 (struct timer): Remove th and bar field.
7956 * sysdeps/unix/sysv/linux/timer_create.c (timer_create): Remove
7957 debugging code. Create only one helper thread.
7958 * sysdeps/unix/sysv/linux/timer_delete.c (timer_delete): Don't kill
7959 helper thread.
7960 * sysdeps/unix/sysv/linux/timer_routines.c (timer_helper_thread):
7961 Renamed. Define statically. Use thread info from siginfo.
7962 (__helper_once): New variable.
7963 (__helper_tid): New variable.
7964 (__reset_helper_control): New function.
7965 (__start_helper_thread): New function.
7966
18d009ca
UD
7967 * pthread_create.c (start_thread): Don't use setjmp inside
7968 __builtin_expect to work around gcc bug.
7969
c75d02f0
UD
7970 * sysdeps/unix/sysv/linux/timer_delete.c (timer_delete): Even if
7971 timer_delete syscall fails, but not with ENOSYS, set
7972 __no_posix_timers.
7973
7974 * sysdeps/unix/sysv/linux/timer_settime.c [!__ASSUME_POSIX_TIMERS]
7975 (timer_settime): Fix typo.
28cf3058
UD
7976 * sysdeps/unix/sysv/linux/timer_getoverr.c
7977 [!__ASSUME_POSIX_TIMERS] (timer_getoverrun): Likewise.
c75d02f0 7978
049ac259
JJ
79792003-03-27 Jakub Jelinek <jakub@redhat.com>
7980
7981 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Fix
7982 offset of cleanupbuf.__prev.
7983
f93d39dd
JJ
79842003-03-26 Jakub Jelinek <jakub@redhat.com>
7985
7986 * sysdeps/unix/sysv/linux/timer_getoverr.c: Fix typo in name
7987 of included file.
7988
f064e4c5
UD
79892003-03-26 Ulrich Drepper <drepper@redhat.com>
7990
7991 * sysdeps/unix/sysv/linux/timer_create.c (timer_create): If EVP ==
7992 NULL provide default definition to syscall.
7993
83e886a3
RM
79942003-03-25 Roland McGrath <roland@redhat.com>
7995
7996 * sysdeps/pthread/posix-timer.h (TIMER_MAX): Define if not defined.
7997 (timer_id2ptr): Fix typo.
7998
09402f5b
UD
79992003-03-25 Ulrich Drepper <drepper@redhat.com>
8000
8001 * pthreadP.h: Define SIGCANCEL and SIGTIMER.
8002 * sysdeps/i386/pthreaddef.h: Remove SIGCANCEL definition.
8003 * sysdeps/ia64/pthreaddef.h: Likewise.
8004 * sysdeps/powerpc/pthreaddef.h: Likewise.
8005 * sysdeps/s390/pthreaddef.h: Likewise.
8006 * sysdeps/sh/pthreaddef.h: Likewise.
8007 * sysdeps/x86_64/pthreaddef.h: Likewise.
8008 * init.c (__pthread_initialize_minimal): Block SIGTIMER.
8009 * sysdeps/pthread/sigaction.c: Also prevent SIGTIMER handler from
8010 being changed.
8011 * sysdeps/pthread/pthread_sigmask.c (pthread_sigmask): Make sure
8012 SIGTIMER is not unblocked.
8013 * sysdeps/unix/sysv/linux/allocrtsig.c (current_rtmin): One more
8014 RT signal taken.
8015 * sysdeps/unix/sysv/linux/pthread_kill.c: Do not allow SIGTIMER to
8016 be send.
8017 * sysdeps/pthread/posix-timer.h (timer_id2ptr, timer_ptr2id): Just
8018 pass pointer through as ID.
8019 * sysdeps/unix/sysv/linux/bits/local_lim.h (TIMER_MAX): Removed.
8020 * sysdeps/unix/sysv/linux/kernel-posix-timers.h: New file.
8021 * sysdeps/unix/sysv/linux/timer_create.c: New file.
8022 * sysdeps/unix/sysv/linux/timer_delete.c: New file.
8023 * sysdeps/unix/sysv/linux/timer_getoverr.c: New file.
8024 * sysdeps/unix/sysv/linux/timer_gettime.c: New file.
8025 * sysdeps/unix/sysv/linux/timer_routines.c: New file.
8026 * sysdeps/unix/sysv/linux/timer_settime.c: New file.
8027 * sysdeps/unix/sysv/linux/ia64/Versions: New file.
8028 * sysdeps/unix/sysv/linux/ia64/timer_create.c: New file.
8029 * sysdeps/unix/sysv/linux/ia64/timer_delete.c: New file.
8030 * sysdeps/unix/sysv/linux/ia64/timer_getoverr.c: New file.
8031 * sysdeps/unix/sysv/linux/ia64/timer_gettime.c: New file.
8032 * sysdeps/unix/sysv/linux/ia64/timer_settime.c: New file.
8033 * sysdeps/unix/sysv/linux/powerpc/powerpc64/Versions: New file.
8034 * sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_create.c: New file.
8035 * sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_delete.c: New file.
8036 * sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_getoverr.c: New file.
8037 * sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_gettime.c: New file.
8038 * sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_settime.c: New file.
8039 * sysdeps/unix/sysv/linux/s390/s390-64/Versions: New file.
8040 * sysdeps/unix/sysv/linux/s390/s390-64/timer_create.c: New file.
8041 * sysdeps/unix/sysv/linux/s390/s390-64/timer_delete.c: New file.
8042 * sysdeps/unix/sysv/linux/s390/s390-64/timer_getoverr.c: New file.
8043 * sysdeps/unix/sysv/linux/s390/s390-64/timer_gettime.c: New file.
8044 * sysdeps/unix/sysv/linux/s390/s390-64/timer_settime.c: New file.
8045 * sysdeps/unix/sysv/linux/x86_64/Versions: New file.
8046 * sysdeps/unix/sysv/linux/x86_64/compat-timer.h: New file.
8047 * sysdeps/unix/sysv/linux/x86_64/timer_create.c: New file.
8048 * sysdeps/unix/sysv/linux/x86_64/timer_delete.c: New file.
8049 * sysdeps/unix/sysv/linux/x86_64/timer_getoverr.c: New file.
8050 * sysdeps/unix/sysv/linux/x86_64/timer_gettime.c: New file.
8051 * sysdeps/unix/sysv/linux/x86_64/timer_settime.c: New file.
8052
8053 * pthreadP.h: Remove FRAME_LEFT definition.
8054 * cleanup.c (_pthread_cleanup_push): Don't check for reference to
8055 already left frame. Programs which have this problem are not POSIX
8056 compliant.
8057 * cleanup_defer.c (_pthread_cleanup_push_defer): Likewise.
8058
5e826ab5
UD
80592003-03-24 Ulrich Drepper <drepper@redhat.com>
8060
8061 * sysdeps/pthread/tst-timer.c: Check return values of the
8062 functions we test.
8063
b910f788
RM
80642003-03-23 Roland McGrath <roland@redhat.com>
8065
3045a1fe
RM
8066 * tst-tls3.c (do_test) [! HAVE___THREAD]: Don't test anything.
8067 * tst-tls3mod.c: Likewise.
8068 * tst-tls1.c: Likewise.
8069 * tst-tls2.c: Likewise.
8070
85047fe3
RM
8071 * tst-mutex5.c (do_test): Unlock before destroy, otherwise we invoke
8072 undefined behavior.
8073
b910f788
RM
8074 * tst-join5.c (tf1, tf2): Add a cast.
8075
8076 * Makeconfig (includes): Append -I$(..)nptl to this variable.
8077
8078 * tst-barrier2.c (do_test) [! _POSIX_THREAD_PROCESS_SHARED]:
8079 Don't test anything.
8080 * tst-cond4.c: Likewise.
8081 * tst-cond6.c: Likewise.
8082 * tst-flock2.c: Likewise.
8083 * tst-mutex4.c: Likewise.
8084 * tst-rwlock4.c: Likewise.
8085 * tst-signal1.c: Likewise.
8086 * tst-spin2.c: Likewise.
8087 * tst-cond11.c [! _POSIX_CLOCK_SELECTION]: Likewise.
8088
8089 * tst-mutex4.c: Use test-skeleton.c.
8090 * tst-spin2.c: Likewise.
8091 * tst-sysconf.c: Likewise.
8092 * tst-barrier2.c: Likewise.
8093 * tst-cond4.c: Likewise.
8094 * tst-cond6.c: Likewise.
8095 * tst-rwlock4.c: Likewise.
8096 * tst-unload.c: Likewise.
8097 * tst-flock2.c (do_test): Use return instead of exit.
8098
4baa087a
RM
80992003-03-22 Jakub Jelinek <jakub@redhat.com>
8100
8101 * sysdeps/unix/sysv/linux/fork.c (__fork): Add libc_hidden_def.
8102
5a3ab2fc
UD
81032003-03-21 Ulrich Drepper <drepper@redhat.com>
8104
9f07eae2
UD
8105 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h
8106 (__lll_mutex_trylock): Use atomic_compare_and_exchange_val_acq
8107 instead of __lll_compare_and_swap.
8108 * sysdeps/unix/sysv/linux/ia64/pthread_once.c (__pthread_once):
8109 Likewise.
8110 Removed definition if __lll_compare_and_swap.
8111
5a3ab2fc
UD
8112 * cancellation.c: Adjust for new form of compare&exchange macros.
8113 * cleanup_defer.c: Likewise.
8114 * init.c: Likewise.
8115 * libc-cancellation.c: Likewise.
8116 * old_pthread_cond_broadcast.c: Likewise.
8117 * old_pthread_cond_signal.c: Likewise.
8118 * old_pthread_cond_timedwait.c: Likewise.
8119 * old_pthread_cond_wait.c: Likewise.
8120 * pthread_cancel.c: Likewise.
8121 * pthread_create.c: Likewise.
8122 * pthread_detach.c: Likewise.
8123 * pthread_join.c: Likewise.
8124 * pthread_key_delete.c: Likewise.
8125 * pthread_setcancelstate.c: Likewise.
8126 * pthread_setcanceltype.c: Likewise.
8127 * pthread_timedjoin.c: Likewise.
8128 * pthread_tryjoin.c: Likewise.
8129 * sysdeps/pthread/createthread.c: Likewise.
8130
b1aea098
UD
81312003-03-20 Ulrich Drepper <drepper@redhat.com>
8132
8133 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h: Include <atomic.h>.
4baa087a 8134 Remove __lll_add, __lll_dec_if_positive, and __lll_test_and_set
b1aea098
UD
8135 definitions. Replace uses with calls to atomic_* functions.
8136 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Likewise.
8137 * sysdeps/unix/sysv/linux/lowlevellock.c: Replace __lll_add and
8138 __lll_test_and_set calls with atomic_exchange_and_add and
8139 atomic_exchange calls respectively.
8140 * sysdeps/unix/sysv/linux/sem_post.c: Likewise.
8141 * sysdeps/unix/sysv/linux/sem_timedwait.c: Likewise.
8142 * sysdeps/unix/sysv/linux/sem_trywait.c: Likewise.
8143 * sysdeps/unix/sysv/linux/sem_wait.c: Likewise.
8144 * sysdeps/unix/sysv/linux/ia64/pthread_once.c: Likewise.
8145 * sysdeps/unix/sysv/linux/ia64/sem_port.c: Likewise.
8146 * sysdeps/unix/sysv/linux/powerpc/pthread_once.c: Likewise.
8147
8148 * allocatestack.c (allocate_stack): Assume atomic_exchange_and_add
8149 returns the old value.
8150
100a7100
RM
81512003-03-20 Martin Schwidefsky <sky@mschwid3.boeblingen.de.ibm.com>
8152
8153 * sysdeps/s390/pthread_spin_lock.c (pthread_spin_lock): Use type
8154 int for variable OLDVAL and correct inline assembler contraint.
8155 * sysdeps/s390/pthread_spin_trylock.c (pthread_spin_trylock): Use
8156 type int for variable OLD.
8157
8158 * sysdeps/s390/tls.h (TLS_MULTIPLE_THREADS_IN_TCB): Define it
8159 only for s390-32.
8160 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h
8161 (SINGLE_THREAD_P): Use global variable __local_multiple_threads
8162 instead of multiple_threads field in the TCB.
8163
95767b36
UD
81642003-03-19 Ulrich Drepper <drepper@redhat.com>
8165
4009bf40
UD
8166 * sysdeps/i386/i686/bits/atomic.h: Removed.
8167 * sysdeps/i386/i586/bits/atomic.h: Removed.
8168 * sysdeps/i386/i486/bits/atomic.h: Removed. Moved to glibc.
8169 * sysdeps/x86_64/bits/atomic.h: Removed. Moved to glibc.
8170 * sysdeps/s390/bits/atomic.h: Removed. Moved to glibc.
8171 * sysdeps/sh/bits/atomic.h: Removed. Moved to glibc.
8172 * sysdeps/ia64/bits/atomic.h: Removed. Moved to glibc.
8173 * sysdeps/powerpc/bits/atomic.h: Removed. Moved to glibc.
8174 * atomic.h: Removed. Moved to glibc.
8175
560a784f
UD
8176 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Add
8177 support for clock selection.
8178
95767b36
UD
8179 * sysdeps/pthread/pthread_cond_broadcast.c: Release lock before
8180 signalling waiters.
8181
043ad426
RM
81822003-03-18 Roland McGrath <roland@redhat.com>
8183
94659495
RM
8184 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h (__lll_test_and_set):
8185 Add __lll_rel_instr first. Add memory clobber.
8186 (lll_mutex_unlock): Use __lll_test_and_set.
8187 From Paul Mackerras <paulus@samba.org>.
8188
8189 * sysdeps/powerpc/tls.h (TLS_MULTIPLE_THREADS_IN_TCB): Define
8190 unconditionally.
8191 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h
8192 (SINGLE_THREAD_P): Add `header.' prefix.
8193 From Paul Mackerras <paulus@samba.org>.
8194
043ad426
RM
8195 * Versions (libpthread: GLIBC_2.3.2): Move pthread_tryjoin_np and
8196 pthread_timedjoin_np to ...
8197 (libpthread: GLIBC_2.3.3): ... here.
8198 (libpthread: GLIBC_2.2): Move pthread_barrierattr_getpshared there too.
8199
8200 * sysdeps/pthread/pthread_cond_timedwait.c (__pthread_cond_timedwait):
8201 Avoid shadowing VAL variable.
8202
8203 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h (__lll_test_and_set):
8204 New macro.
8205
86a9ee5e
UD
82062003-03-18 Ulrich Drepper <drepper@redhat.com>
8207
ac9e0aa1
UD
8208 * Makefile (tests): Add tst-cond11.
8209 * tst-cond11.c: New file.
8210
a14b373c
UD
8211 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Reorder
8212 struct passed to cleanup handler to eliminate one more
8213 instruction.
8214 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
8215
24a49f38
UD
8216 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h
8217 (pthrad_cond_t): Replace __unused field with __clock.
8218
8219 * sysdeps/pthread/pthread_cond_wait.c: Release condvar lock before
8220 waken all waiters in cleanup handler.
8221 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
8222 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
8223
86a9ee5e
UD
8224 * pthread_condattr_getclock.c: New file.
8225 * pthread_condattr_setclock.c: New file.
8226 * sysdeps/pthread/pthread.h: Declare these new functions.
8227 * Versions [GLIBC_2.3.3] (libpthread): Add the new functions.
8228 * Makefile (libpthread-routines): Add the new functions.
8229 * sysdeps/unix/sysv/linux/internaltypes.h (struct pthread_condattr):
8230 Renamed field to value. Document use of the bits.
8231 * pthread_condattr_getpshared.c: Adjust for struct pthread_condattr
8232 change.
8233 * pthread_condattr_setpshared.c: Likewise.
d5cb8389 8234 * pthread_cond_init.c (__pthread_cond_init): Initialized __clock field.
86a9ee5e
UD
8235 * sysdeps/unix/sysv/linux/lowlevelcond.sym: Add cond_clock symbol.
8236 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_cond_t):
8237 Add __clock field.
8238 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
8239 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
8240 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
8241 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Likewise.
8242 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S:
8243 Implement clock selection.
8244 * sysdeps/pthread/pthread_cond_timedwait.c: Likewise.
8245 * pthread-errnos.sym: Add ENOSYS.
8246 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define
8247 _POSIX_CLOCK_SELECTION.
8248 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
8249
8250 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Remove
8251 invalid .size directive.
8252
98054a05
RM
82532003-03-17 Roland McGrath <roland@redhat.com>
8254
8255 * sysdeps/unix/sysv/linux/lowlevellock.c (__lll_lock_wait):
8256 Formatting tweaks.
8257
001bea71
UD
82582003-03-17 Ulrich Drepper <drepper@redhat.com>
8259
4773086e
UD
8260 * sysdeps/unix/sysv/linux/ia64/pthread_once.c: Use __builtin_expect.
8261 Use __lll_add instead of spelling it out. Use protected symbol names.
8262 * sysdeps/unix/sysv/linux/ia64/sem_post.c: Use __builtin_expect.
8263 Use __lll_add.
8264 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (__lll_compare_and_swap):
8265 Renamed from lll_compare_and_swap. Use new name where necessary.
8266 (__lll_add): Defined.
8267 (__lll_dec_if_positive): Defined.
8268 (__lll_test_and_set): Defined.
8269 * sysdeps/ia64/pthread_spin_init.c: Removed.
8270 * sysdeps/unix/sysv/linux/ia64/lowlevelmutex.c: Removed.
8271 * sysdeps/unix/sysv/linux/ia64/sem_trywait.c: Removed.
8272 * sysdeps/unix/sysv/linux/ia64/sem_wait.c: Removed.
8273 * sysdeps/unix/sysv/linux/ia64/lowlevellock.c: Removed.
8274 * sysdeps/unix/sysv/linux/ia64/libc-lowlevellock.c: Removed.
8275 * sysdeps/unix/sysv/linux/ia64/libc-lowlevelmutex.c: Removed.
8276 * sysdeps/unix/sysv/linux/ia64/sem_timedwait.c: Removed.
001bea71
UD
8277 * sysdeps/ia64/bits/atomic.h: Add __builtin_expect where appropriate.
8278 * sysdeps/ia64/pthread_spin_unlock.c (pthread_spin_unlock): Use
8279 __sync_lock_release_si.
8280 Patch by Jakub Jelinek.
8281
8282 * sysdeps/unix/sysv/linux/lowlevellock.c (__lll_timedlock_wait):
8283 Fix timeout handling.
8284 (__lll_timedwait_tid): Likewise.
8285 (lll_unlock_wake_cb): Wake up other waiters if necessary.
8286 Patch by Jakub Jelinek.
8287
8288 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Pretty printing.
8289
de4471dd
RM
82902003-03-17 Roland McGrath <roland@redhat.com>
8291
8292 PowerPC port contributed by Paul Mackerras <paulus@samba.org>.
8293 * sysdeps/pthread/pthread_spin_init.c: New file.
8294 * sysdeps/pthread/pthread_spin_unlock.c: New file.
8295 * sysdeps/powerpc/Makefile: New file.
8296 * sysdeps/powerpc/pthread_spin_lock.c: New file.
8297 * sysdeps/powerpc/pthread_spin_trylock.c: New file.
8298 * sysdeps/powerpc/pthreaddef.h: New file.
8299 * sysdeps/powerpc/tcb-offsets.sym: New file.
8300 * sysdeps/powerpc/td_ta_map_lwp2thr.c: New file.
8301 * sysdeps/powerpc/tls.h: New file.
8302 * sysdeps/powerpc/bits/atomic.h: New file.
8303 * sysdeps/unix/sysv/linux/libc-lowlevelmutex.c: New file.
8304 * sysdeps/unix/sysv/linux/libc-lowlevellock.c: New file.
8305 * sysdeps/unix/sysv/linux/lowlevellock.c: New file.
98054a05 8306
de4471dd
RM
8307 * sysdeps/unix/sysv/linux/lowlevelmutex.c: New file.
8308 * sysdeps/unix/sysv/linux/sem_post.c: New file.
8309 * sysdeps/unix/sysv/linux/sem_timedwait.c: New file.
8310 * sysdeps/unix/sysv/linux/sem_trywait.c: New file.
8311 * sysdeps/unix/sysv/linux/sem_wait.c: New file.
8312 * sysdeps/unix/sysv/linux/powerpc/Makefile: New file.
8313 * sysdeps/unix/sysv/linux/powerpc/createthread.c: New file.
8314 * sysdeps/unix/sysv/linux/powerpc/fork.c: New file.
8315 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: New file.
8316 * sysdeps/unix/sysv/linux/powerpc/pt-vfork.S: New file.
8317 * sysdeps/unix/sysv/linux/powerpc/pthread_once.c: New file.
8318 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: New file.
8319 * sysdeps/unix/sysv/linux/powerpc/bits/semaphore.h: New file.
8320 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h: New file.
8321 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h: New file.
8322
8323 * sysdeps/unix/sysv/linux/ia64/lowlevellock.c: Use __gettimeofday,
8324 not gettimeofday.
8325 * sysdeps/unix/sysv/linux/ia64/lowlevelmutex.c: Likewise.
8326 * sysdeps/unix/sysv/linux/ia64/sem_timedwait.c: Likewise.
8327 * sysdeps/unix/sysv/linux/s390/lowlevellock.c: Likewise.
8328 * sysdeps/unix/sysv/linux/s390/lowlevelmutex.c: Likewise.
8329 * sysdeps/unix/sysv/linux/s390/sem_timedwait.c: Likewise.
8330
5778033f
UD
83312003-03-17 Ulrich Drepper <drepper@redhat.com>
8332
8333 * sysdeps/pthread/pthread_cond_wait.c: Correct exit criteria.
8334 * sysdeps/pthread/pthread_cond_timedwait.c: Likewise.
8335 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
8336 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
8337 Patch by Ewald Snel <ewald@rambo.its.tudelft.nl>.
8338
796038f8
RM
83392003-03-16 Roland McGrath <roland@redhat.com>
8340
8341 * tst-fork4.c: Include <string.h>.
8342 * tst-signal2.c: Likewise.
8343 * tst-mutex5.c (do_test): exit -> return.
8344 * tst-mutex2.c: Include <stdlib.h>.
8345
51d0678c
UD
83462003-03-16 Ulrich Drepper <drepper@redhat.com>
8347
5778033f
UD
8348 * sysdeps/unix/sysv/linux/i386/i486/lowlevelmutex.S
8349 (__lll_mutex_timedlock_wait): Correct expected value after
8350 spurious wakeup. Otherwise we would never wait again.
8351
b6e2f87a
UD
8352 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Work around red
8353 zone versus inline asm stupidity. Use correct instructions.
8354
51d0678c
UD
8355 * tst-rwlock6.c: Add some more status output.
8356
8112cc70
RM
83572003-03-15 Roland McGrath <roland@redhat.com>
8358
8359 * sysdeps/pthread/configure.in: New file.
8360 * sysdeps/pthread/configure: New file (generated).
8361
49773c19
UD
83622003-03-15 Ulrich Drepper <drepper@redhat.com>
8363
8364 * allocatestack.c (allocate_stack): Store the exact stack size of
8365 user allocated stacks.
8366
eec0ca9f
JJ
83672003-03-15 Jakub Jelinek <jakub@redhat.com>
8368
8369 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h
8370 (SINGLE_THREAD): Use `header' prefix instead of `header.data'.
8371 * sysdeps/sh/tcb-offsets.sym (MULTIPLE_THREADS_OFFSET): Likewise.
8372 * sysdeps/sh/tls.h (TLS_MULTIPLE_THREADS_IN_TCB): Define.
8373 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h (SINGLE_THREAD_P):
8374 Use `header.' prefix.
8375 * sysdeps/ia64/tcb-offsets.sym (MULTIPLE_THREADS_OFFSET): Likewise.
8376
a87731e2
UD
83772003-03-15 Ulrich Drepper <drepper@redhat.com>
8378
8379 * sysdeps/x86_64/pthreaddef.h (CURRENT_STACK_FRAME): Don't use
8380 __builtin_frame_address, use stack pointer.
8381
8382 * sysdeps/unix/sysv/linux/jmp-unwind.c: Use CURRENT_STACK_FRAME
8383 instead of __builtin_frame_pointer.
8384
e22a221d
UD
83852003-03-14 Ulrich Drepper <drepper@redhat.com>
8386
92ed3daf
UD
8387 * tst-basic1.c (do_test): Add cast to avoid warning.
8388 * tst-basic2.c (do_test): Likewise.
8389
9b89567d
UD
8390 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Use correct
8391 amount of stack correction.
8392
e22a221d
UD
8393 * tst-fork4.c: Use test-skeleton.c.
8394
2e49caba
RM
83952003-03-14 Roland McGrath <roland@redhat.com>
8396
8397 * init.c: Fix typo "#eli" for "#else".
8398
415ef7d8
RM
83992003-03-14 Steven Munroe <sjmunroe@us.ibm.com>
8400
8401 * allocatestack.c (__stack_user): Use hidden_data_def.
8402 * pthread_create.c (__pthread_keys): Likewise.
8403
8404 * init.c [__powerpc__] (__NR_set_tid_address): Define it.
8405
52287505
RM
84062003-03-14 Roland McGrath <roland@redhat.com>
8407
415ef7d8
RM
8408 * tst-fork4.c: New file.
8409 * Makefile (tests): Add it.
8410
52287505
RM
8411 * descr.h (struct pthread): Move the union out of [!TLS_DTV_AT_TP], so
8412 we always define the padding space.
8413 [!TLS_DTV_AT_TP]: Give tcbhead_t field a name, `header', since GCC
8414 stopped supporting its own extensions fully.
8415 [TLS_MULTIPLE_THREADS_IN_TCB]: Put `multiple_threads' inside a wrapper
8416 struct also called `header', so `header.multiple_threads' is the field
8417 name to use on all machines.
8418 * allocatestack.c (allocate_stack): Use `header.' prefix.
8419 * sysdeps/pthread/createthread.c (create_thread): Likewise.
8420 * pthread_create.c (__pthread_create_2_1): Likewise.
8421 * sysdeps/i386/tls.h (INSTALL_NEW_DTV, THREAD_DTV): Likewise.
8422 (THREAD_SELF): Likewise.
8423 * sysdeps/x86_64/tls.h: Likewise.
8424 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h
8425 (SINGLE_THREAD_P): Likewise.
8426 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h
8427 (SINGLE_THREAD_P): Likewise.
8428 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h
8429 (SINGLE_THREAD_P): Likewise.
8430
8431 * sysdeps/s390/td_ta_map_lwp2thr.c (td_ta_map_lwp2thr): Use REGS[18]
8432 value directly.
8433
c44bf9aa
UD
84342003-03-14 Ulrich Drepper <drepper@redhat.com>
8435
e22a221d
UD
8436 * pthread_create.c (start_thread): Use CALL_THREAD_FCT if defined.
8437 * sysdeps/i386/tls.h: Define CALL_THREAD_FCT.
8438
0eb18281
UD
8439 * pthread_create.c (start_thread): setjmp is expected to return 0.
8440
c44bf9aa
UD
8441 * sysdeps/x86_64/tls.h (THREAD_GETMEM): Mark asms volatile.
8442 (THREAD_GETMEM_NC): Likewise.
8443
564cd8b6
UD
84442003-03-13 Ulrich Drepper <drepper@redhat.com>
8445
8446 * allocatestack.c (allocate_stack): If MULTI_PAGE_ALIASING is defined
8447 and the size of the stack which must be allocated is a multiple,
8448 allocate one more page.
8449 * sysdeps/i386/i686/Makefile: Don't define COLORING_INCREMENT, but
8450 MULTI_PAGE_ALIASING.
8451
6461e577
RM
84522003-03-13 Roland McGrath <roland@redhat.com>
8453
8454 * pthread_create.c (start_thread): Set EXITING_BIT after the
8455 event-reporting (and destructors), not before.
8456
b5ec5617
UD
84572003-03-13 Jakub Jelinek <jakub@redhat.com>
8458
6461e577
RM
8459 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (lll_futex_timed_wait,
8460 lll_futex_wake): Declare register variables as long int instead of
8461 unsigned long int. Patch by Ian Wienand <ianw@gelato.unsw.edu.au>.
8462 Make syscall arguments clobbered by the syscall.
8463 (lll_futex_wait): Define using lll_futex_timed_wait.
8464
8465 * sysdeps/ia64/td_ta_map_lwp2thr.c (td_ta_map_lwp2thr): Cast regs[13]
8466 to void *.
8467
8468 * sysdeps/unix/sysv/linux/fork.c (__libc_fork): Only declare and set
8469 PPID if [! NDEBUG].
8470
8471 * allocatestack.c (nptl_ncreated): Only declare if
8472 COLORING_INCREMENT != 0.
8473
8474 * pthreadP.h (__pthread_enable_asynccancel_2): New prototype.
8475 (__libc_enable_asynccancel_2): Remove prototype.
8476
b5ec5617
UD
8477 * sysdeps/unix/sysv/linux/ia64/fork.c (ARCH_FORK): Swap ptid and
8478 ctid to match kernel.
8479
d0369fb8
UD
84802003-03-12 Ulrich Drepper <drepper@redhat.com>
8481
7588880f
UD
8482 * sysdeps/unix/sysv/linux/Makefile (sysdep_routines): Add
8483 libc_multiple_threads.
8484 * sysdeps/unix/sysv/linux/libc_pthread_init.c: Move definition of
8485 __libc_multiple_threads to...
8486 * sysdeps/unix/sysv/linux/libc_multiple_threads.c: ...here. New file.
8487
8488 * sysdeps/unix/sysv/linux/x86_64/sem_post.S: Remove unnecessary
8489 versioning.
8490 * sysdeps/unix/sysv/linux/x86_64/sem_trywait.S: Likewise.
8491 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Likewise.
8492
8493 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S
8494 (__pthread_once_internal): Define.
8495
8496 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S: Use shlib-compat.h
8497 macros instead of .symver directly.
8498 * sysdeps/unix/sysv/linux/i386/i486/sem_trywait.S: Likewise.
8499 * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S: Likewise.
8500
d0369fb8
UD
8501 * sysdeps/x86_64/tls.h [__ASSEMBLER__]: Include tcb-offsets.h.
8502 * sysdeps/x86_64/tcb-offsets.sym: New file.
8503 * sysdeps/x86_64/Makefile: New file.
8504
8505 * sysdeps/i386/tcb-offsets.sym: Add SELF.
8506 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Use SELF
8507 to access own pthread_t in TCB.
8508 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
8509 Likewise.
8510 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
8511 Likewise.
8512 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
8513
0bb2ac85
RM
85142003-03-12 Roland McGrath <roland@redhat.com>
8515
8516 * pthread-errnos.sym: New file.
8517 * Makefile (gen-as-const-headers): New variable, list that file.
8518 * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S: Include generated
8519 header <pthread-errnos.h> instead of defining errno values here.
8520 * sysdeps/unix/sysv/linux/i386/i486/sem_trywait.S: Likewise.
8521 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: Likewise.
8522 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S: Likewise.
8523 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
8524 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
8525 Likewise.
8526 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
8527 Likewise.
8528 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Likewise.
8529 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
8530 * sysdeps/unix/sysv/linux/i386/i486/lowlevelmutex.S: Likewise.
8531 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Likewise.
8532 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Likewise.
8533 * sysdeps/unix/sysv/linux/x86_64/sem_trywait.S: Likewise.
8534 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Likewise.
8535 * sysdeps/unix/sysv/linux/x86_64/sem_post.S: Likewise.
8536 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
8537 * sysdeps/unix/sysv/linux/x86_64/lowlevelmutex.S: Likewise.
8538 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Likewise.
8539 * sysdeps/unix/sysv/linux/sh/sem_trywait.S: Likewise.
8540 * sysdeps/unix/sysv/linux/sh/sem_timedwait.S: Likewise.
8541 * sysdeps/unix/sysv/linux/sh/sem_post.S: Likewise.
8542 * sysdeps/unix/sysv/linux/sh/sem_wait.S: Likewise.
8543 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: Likewise.
8544 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S: Likewise.
8545 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S: Likewise.
8546 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise.
8547 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: Likewise.
8548 * sysdeps/unix/sysv/linux/sh/lowlevellock.S: Likewise.
8549 * sysdeps/unix/sysv/linux/sh/lowlevelmutex.S: Likewise.
8550 * sysdeps/i386/i486/pthread_spin_trylock.S: Likewise.
8551 * sysdeps/x86_64/pthread_spin_trylock.S: Likewise.
8552 * sysdeps/sh/pthread_spin_trylock.S: Likewise.
8553 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S: Likewise.
8554 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S: Likewise.
8555
8556 * sysdeps/unix/sysv/linux/fork.c: Add an assert to check that
8557 CLONE_CHILD_SETTID worked.
8558
35e148cb
UD
85592003-03-12 Ulrich Drepper <drepper@redhat.com>
8560
d0369fb8
UD
8561 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S: New
8562 file.
8563 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S: New
8564 file.
8565
8566 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h
8567 (pthread_cond_t): Add padding.
8568
da49194d
UD
8569 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S: New file.
8570 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S: New file.
8571 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_unlock.S: New file.
8572
35e148cb
UD
8573 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S
8574 (__pthread_rwlock_timedwrlock): Add missing opcode suffix.
8575 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S
8576 (__pthread_rwlock_timedrdlock): Likewise.
8577 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S
8578 (__pthread_rwlock_wrlock): Likewise.
8579 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S
8580 (__pthread_rwlock_rdlock): Likewise.
8581
8582 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: New file.
8583
8584 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Return
8585 result of lock re-get if it fails.
8586
3e976b96
UD
85872003-03-11 Ulrich Drepper <drepper@redhat.com>
8588
5a03acfe
UD
8589 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Fix asm syntax.
8590 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
8591 * sysdeps/unix/sysv/linux/x86_64/lowlevelmutex.S: Likewise.
8592 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S: Likewise.
8593 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
8594 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Likewise.
8595 * sysdeps/unix/sysv/linux/x86_64/sem_post.S: Likewise.
8596 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Likewise.
8597 * sysdeps/unix/sysv/linux/x86_64/sem_trywait.S: Likewise.
8598 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Likewise.
8599
8600 * sysdeps/x86_64/tls.h (THREAD_SELF, THREAD_GETMEM, THREAD_GETMEM_NC,
8601 THREAD_SETMEM, THREAD_SETMEM_NC): Correct asm syntax.
8602
8603 * allocatestack.c [! TLS_MULTIPLE_THREADS_IN_TCB] (allocate_stack):
8604 Initialize *__libc_multiple_threads_ptr not __libc_multiple_threads.
8605 * sysdeps/pthread/createthread.c [! TLS_MULTIPLE_THREADS_IN_TCB]
8606 (create_thread): Likewise.
8607 Define __pthread_multiple_threads and __libc_multiple_threads_ptr.
8608 * init.c (__pthread_initialize_minimal_internal): Initialize
8609 __libc_multiple_threads_ptr if necessary.
8610 * pthreadP.h: Adjust prototype for __libc_pthread_init. Declare
8611 __pthread_multiple_threads and __libc_multiple_threads_ptr.
8612 * sysdeps/unix/sysv/linux/libc_pthread_init.c: Define
8613 __libc_multiple_threads.
8614 (__libc_pthread_init): Return pointer to __libc_pthread_init if
8615 necessary.
8616
8617 * sysdeps/i386/tls.h (THREAD_SETMEM): Fix one-byte variant.
8618 (THREAD_SETMEM_NC): Likewise.
8619
8620 * sysdeps/x86_64/pthread_spin_trylock.c: Removed.
8621 * sysdeps/x86_64/pthread_spin_trylock.S: New file.
8622 * sysdeps/x86_64/pthread_spin_unlock.c: Removed.
8623 * sysdeps/x86_64/pthread_spin_unlock.S: New file.
8624
8625 * sysdeps/i386/i486/pthread_spin_trylock.S (pthread_spin_trylock):
8626 Eliminate one entire instruction.
8627
32a589b1
UD
8628 * cancellation.c (__pthread_enable_asynccancel_2): New function.
8629 * pthreadP.h: Declare __pthread_enable_asynccancel_2.
8630 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
8631 (__pthread_cond_timedwait): Use __pthread_enable_asynccancel_2
8632 instead of __pthread_enable_asynccancel.
8633 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S
8634 (__pthread_cond_wait): Likewise.
8635 * sysdeps/pthread/pthread_cond_timedwait.c
8636 (__pthread_cond_timedwait): Likewise.
8637 * sysdeps/pthread/pthread_cond_wait.c (__pthread_cond_wait): Likewise.
8638
3e976b96
UD
8639 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S
8640 (__condvar_cleanup): Wake up all waiters in case we got signaled
8641 after being woken up but before disabling asynchronous
8642 cancellation.
8643 * sysdeps/pthread/pthread_cond_wait.c (__condvar_cleanup): Likewise.
8644 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
8645 (__condvar_cleanup): Likewise.
8646
8647 * init.c (__NR_set_tid_address): If already defined, don't redefine.
8648 Make it an error if architecture has no #if case. Add x86-64.
8649
8650 * sysdeps/unix/sysv/linux/x86_64/Makefile: Add flags for
8651 pt-initfini.s generation.
8652
8653 * sysdeps/x86_64/tls.h: Include <asm/prctl.h>.
8654 (TLS_INIT_TP): Fix typo.
8655
6c477888
UD
86562003-03-11 Jakub Jelinek <jakub@redhat.com>
8657
8658 * sysdeps/ia64/bits/atomic.h (atomic_exchange_and_add): Swap 2nd and
8659 3rd argument of __arch_compare_and_exchange_{32,64}_val_acq.
8660
8661 * sysdeps/unix/sysv/linux/ia64/sem_post.c: Include semaphore.h.
8662 * sysdeps/unix/sysv/linux/ia64/sem_timedwait.c: Likewise.
8663 * sysdeps/unix/sysv/linux/ia64/sem_trywait.c: Likewise.
8664 * sysdeps/unix/sysv/linux/ia64/sem_wait.c: Likewise.
8665 * sysdeps/unix/sysv/linux/s390/sem_post.c: Likewise.
8666 * sysdeps/unix/sysv/linux/s390/sem_timedwait.c: Likewise.
8667 * sysdeps/unix/sysv/linux/s390/sem_trywait.c: Likewise.
8668 * sysdeps/unix/sysv/linux/s390/sem_wait.c: Likewise.
8669
ea694823
UD
86702003-03-11 Ulrich Drepper <drepper@redhat.com>
8671
6c477888
UD
8672 * sysdeps/pthread/pthread_cond_timedwait.c
8673 (__pthread_cond_timedwait): Return the result of the final
8674 locking. If it succeeds, the regular function return value.
8675
8676 * sysdeps/pthread/pthread_cond_wait.c (__pthread_cond_wait):
8677 Return result of the final locking.
8678 * version.c (__nptl_main): Work around problems with the strange
8679 INTERNAL_SYSCALL macro on ppc32.
8680 * init.c (__pthread_initialize_minimal_internal): Unblock
8681 SIGCANCEL in case the parent blocked it.
8682 Reported by Paul Mackerras <paulus@samba.org>.
8683
ea694823
UD
8684 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S: New file.
8685 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S: New file.
8686 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: New file.
8687
b33e6163
RM
86882003-03-11 Jakub Jelinek <jakub@redhat.com>
8689
8690 * sysdeps/pthread/pthread_cond_timedwait.c
8691 (__pthread_cond_timedwait): Unlock and fail if
8692 __pthread_mutex_unlock_internal failed.
8693
8694 * sysdeps/pthread/createthread.c (ARCH_CLONE): Define if not defined.
8695 (create_thread): Only assert PD->tcb != NULL under [TLS_TCB_AT_TP].
8696 Use ARCH_CLONE.
8697 * allocatestack.c (ALLOCATE_STACK_PARMS): New macro.
8698 [NEED_SEPARATE_REGISTER_STACK] (STACK_VARIABLES,
8699 STACK_VARIABLES_ARGS, STACK_VARIABLES_PARMS, ALLOCATE_STACK_PARMS,
8700 ALLOCATE_STACK): New macros.
8701 (TLS_TPADJ): New macro.
8702 (get_cached_stack, queue_stack, __deallocate_stack): Use TLS_TPADJ.
8703 (allocate_stack): Handle TLS_DTV_AT_TP and
8704 NEED_SEPARATE_REGISTER_STACK. Use TLS_TPADJ.
8705 * pthread_create.c (__pthread_create_2_1) [! TLS_TCB_AT_TP]:
8706 Don't set PD->self.
8707 * init.c [__ia64__] (__NR_set_tid_address): Define.
8708
8709 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: New file.
8710 * sysdeps/unix/sysv/linux/ia64/bits/semaphore.h: New file.
8711 * sysdeps/unix/sysv/linux/ia64/fork.c: New file.
8712 * sysdeps/unix/sysv/linux/ia64/createthread.c: New file.
8713 * sysdeps/unix/sysv/linux/ia64/libc-lowlevellock.c: New file.
8714 * sysdeps/unix/sysv/linux/ia64/libc-lowlevelmutex.c: New file.
8715 * sysdeps/unix/sysv/linux/ia64/lowlevellock.c: New file.
8716 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h: New file.
8717 * sysdeps/unix/sysv/linux/ia64/lowlevelmutex.c: New file.
8718 * sysdeps/unix/sysv/linux/ia64/pt-initfini.c: New file.
8719 * sysdeps/unix/sysv/linux/ia64/pt-vfork.S: New file.
8720 * sysdeps/unix/sysv/linux/ia64/pthread_once.c: New file.
8721 * sysdeps/unix/sysv/linux/ia64/sem_post.c: New file.
8722 * sysdeps/unix/sysv/linux/ia64/sem_timedwait.c: New file.
8723 * sysdeps/unix/sysv/linux/ia64/sem_trywait.c: New file.
8724 * sysdeps/unix/sysv/linux/ia64/sem_wait.c: New file.
8725 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h: New file.
8726 * sysdeps/ia64/bits/atomic.h: New file.
8727 * sysdeps/ia64/Makefile: New file.
8728 * sysdeps/ia64/pthread_spin_init.c: New file.
8729 * sysdeps/ia64/pthread_spin_lock.c: New file.
8730 * sysdeps/ia64/pthread_spin_trylock.c: New file.
8731 * sysdeps/ia64/pthread_spin_unlock.c: New file.
8732 * sysdeps/ia64/pthreaddef.h: New file.
8733 * sysdeps/ia64/tcb-offsets.sym: New file.
8734 * sysdeps/ia64/td_ta_map_lwp2thr.c: New file.
8735 * sysdeps/ia64/tls.h: New file.
8736
8737 * sysdeps/s390/pthreaddef.h (__exit_thread_inline): Pass 1 argument
8738 to syscall instead of no arguments.
8739
2b30b2e5
UD
87402003-03-10 Ulrich Drepper <drepper@redhat.com>
8741
db5f2fc9
UD
8742 * sysdeps/unix/sysv/linux/x86_64/sem_post.S: New file.
8743 * sysdeps/unix/sysv/linux/x86_64/sem_trywait.S: New file.
8744 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S: New file.
8745 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: New file.
8746
8747 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S: Fix error value in
8748 unused code.
8749
6a4263e3
UD
8750 * sysdeps/unix/sysv/linux/x86_64/pthread_barrier_wait.S: New file
8751
3de7c2a9
UD
8752 * sysdeps/unix/sysv/linux/Makefile (gen-as-const-headers): Add
8753 lowlevelbarrier.sym.
8754 * sysdeps/unix/sysv/linux/lowlevelbarrier.sym: New file.
8755 * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S:
8756 Include lowlevelbarrier.h and don't define offsets locally.
6a4263e3 8757 * sysdeps/unix/sysv/linux/sh/pthread_barrier_wait.S: Likewise.
3de7c2a9 8758
2a544d82
UD
8759 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h
8760 (__lll_mutex_lock_wait): Reverse order of first two parameters.
8761 (__lll_mutex_timedlock_wait): Likewise.
8762 (lll_mutex_lock): Adjust asm for that.
8763 (lll_mutex_timedlock): Likewise. Mark cx, cc, r10 as clobbered.
8764 (lll_lock): Adjust asm for operand order change.
8765 * sysdeps/unix/sysv/linux/x86_64/lowlevelmutex.S: New file.
8766 * sysdeps/unix/sysv/linux/x86_64/libc-lowlevelmutex.S: New file.
8767
ec06436c
UD
8768 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (__lll_lock_wait):
8769 Reverse order of parameters.
8770 (__lll_timedwait_tid): Remove regparms attribute.
8771 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: New file.
8772 * sysdeps/unix/sysv/linux/x86_64/libc-lowlevellock.S: New file.
8773
3273832c
UD
8774 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
8775 (__lll_timedwait_tid): Remove one unnecessary instruction.
8776
51f32ab8
UD
8777 * sysdeps/unix/sysv/linux/sh/lowlevelmutex.S: Define
8778 __lll_mutex_timedlock_wait only for NOT_IN_libc.
8779 * sysdeps/unix/sysv/linux/sh/libc-lowlevelmutex.S: Include
8780 lowlevelmutex.S.
8781
8782 * sysdeps/unix/sysv/linux/sh/lowlevellock.S: Define
8783 lll_unlock_wake_cb, __lll_wait_tid, and __lll_timedwait_tid only
8784 for NOT_IN_libc.
8785 * sysdeps/unix/sysv/linux/sh/libc-lowlevellock.S: Include
8786 lowlevellock.S.
8787
fad48d9e
UD
8788 * sysdeps/unix/sysv/linux/i386/i486/lowlevelmutex.S: Don't define
8789 LOCK is already defined. Don't define __lll_mutex_timedlock_wait
8790 for libc.so.
8791 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevelmutex.S: Only
8792 define LOCK here (if UP is not defined). The actual code is in
8793 lowlevelmutex.S.
8794
9356d063
UD
8795 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Don't define
8796 LOCK is already defined. Don't define lll_unlock_wake_cb and
8797 __lll_timedwait_tid for libc.so.
8798 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Only
8799 define LOCK here (if UP is not defined). The actual code is in
8800 lowlevellock.S.
8801
ebf0cbc5 8802 * sysdeps/unix/sysv/linux/i386/lowlevelsem.h: Not needed anymore.
106f6f9d
UD
8803 * sysdeps/unix/sysv/linux/s390/lowlevelsem.h: Likewise.
8804 * sysdeps/unix/sysv/linux/s390/sem_post.c: Include lowlevellock.h
8805 instead of lowlevelsem.h.
8806 * sysdeps/unix/sysv/linux/s390/sem_timedwait.c: Likewise.
8807 * sysdeps/unix/sysv/linux/s390/sem_trywait.c: Likewise.
8808 * sysdeps/unix/sysv/linux/s390/sem_wait.c: Likewise.
0be8ee21 8809
c915e5ad
UD
8810 * sysdeps/unix/sysv/linux/Makefile (gen-as-const-headers): Add
8811 lowlevelrwlock.sym.
8812 * sysdeps/unix/sysv/linux/lowlevelrwlock.sym: New file.
8813 * sysdeps/unix/sysv/linux/i386/lowlevelrwlock.h: Removed.
146fa1ee 8814 * sysdeps/unix/sysv/linux/sh/lowlevelrwlock.h: Removed.
c915e5ad 8815
4c3c2e8a
UD
8816 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (lll_trylock): Fix
8817 register loading.
8818 * sysdeps/unix/sysv/linux/i386/lowlevellock.h (lll_trylock): Undo
8819 last changed. D'oh.
8820
2b30b2e5
UD
8821 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: New file.
8822
8823 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Remove declaration
8824 of __libc_locking_needed.
8825 (lll_trylock): Initialize %eax to zero.
8826
2b30b2e5
UD
8827 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Update
8828 pthread_cond_t definition.
8829
e48f9638
RM
88302003-03-10 Roland McGrath <roland@redhat.com>
8831
8832 * sysdeps/unix/sysv/linux/lowlevelcond.sym: New file.
8833 * sysdeps/unix/sysv/linux/Makefile (gen-as-const-headers): Add it.
8834 * sysdeps/unix/sysv/linux/sh/lowlevelcond.h: File removed.
8835 * sysdeps/unix/sysv/linux/i386/lowlevelcond.h: Likewise.
8836 * sysdeps/unix/sysv/linux/x86_64/lowlevelcond.h: Likewise.
8837
8838 * allocatestack.c (allocate_stack) [!TLS_MULTIPLE_THREADS_IN_TCB]:
8839 Instead of setting PD->multiple_threads, set globals
8840 __pthread_multiple_threads and __libc_multiple_threads.
8841 * sysdeps/pthread/createthread.c (create_thread): Likewise.
8842 * sysdeps/i386/tls.h (TLS_MULTIPLE_THREADS_IN_TCB): Define it.
8843 * sysdeps/s390/tls.h (TLS_MULTIPLE_THREADS_IN_TCB): Likewise.
8844
8845 * descr.h (struct pthread): Conditionalize first member on
8846 [!TLS_DTV_AT_TP]. Replace the `header' member with an anonymous union
8847 containing an anonymous tcbhead_t. Move `list' member out.
8848 [TLS_MULTIPLE_THREADS_IN_TCB]: Define a `multiple_threads' member.
8849 * allocatestack.c: Remove use of `header.data.' prefix.
8850 * pthread_create.c: Likewise.
8851 * init.c (__pthread_initialize_minimal_internal): Likewise.
8852 * sysdeps/pthread/createthread.c (create_thread): Likewise.
8853 * sysdeps/i386/tls.h (INSTALL_DTV): Add parens.
8854 (THREAD_SELF, THREAD_DTV, INSTALL_NEW_DTV): No `header.data.' prefix.
8855 * sysdeps/x86_64/tls.h: Likewise.
8856 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h
8857 (SINGLE_THREAD_P): Likewise.
8858 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h
8859 (SINGLE_THREAD_P): Likewise.
8860 * sysdeps/i386/tls.h (tcbhead_t): Remove `list' member.
8861 * sysdeps/s390/tls.h (tcbhead_t): Likewise.
8862
c37cae9e
UD
88632003-03-09 Ulrich Drepper <drepper@redhat.com>
8864
d38c777e
RM
8865 * sysdeps/unix/sysv/linux/x86_64/lowlevelcond.h: New file.
8866
7b44a5e0 8867 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h: New file.
2b30b2e5 8868 * sysdeps/unix/sysv/linux/x86_64/fork.c: New file.
7b44a5e0 8869
c2e5e085
UD
8870 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Fix many
8871 leftovers from the ia32 code.
8872
8873 * sysdeps/unix/sysv/linux/i386/pthread_once.S: Remove unneccessary
8874 memory load.
8875 (clear_once_control): Don't load %esi.
8876
8877 * sysdeps/x86_64/tls.h: Remove all traces of segment descriptor
8878 handling.
8879
8880 * sysdeps/unix/sysv/linux/x86_64/fork.c: New file.
8881
cd4b2a55
UD
8882 * sysdeps/unix/sysv/linux/s390/createthread.c: Moved to...
8883 * sysdeps/unix/sysv/linux/createthread.c: ...here.
8884
c37cae9e
UD
8885 * Makefile (tests): Add tst-cond10.
8886 * tst-cond10.c: New file.
8887
d130a341
UD
88882003-03-08 Ulrich Drepper <drepper@redhat.com>
8889
ccf1d573
UD
8890 * tst-tls2.c (do_test): Add TEMP_FAILURE_RETRY around sem_wait call.
8891 * tst-signal3.c (do_test): Likewise.
8892 * tst-sem5.c (do_test): Likewise.
8893 * tst-kill6.c (do_test): Likewise.
8894 * tst-tls3.c (do_test): Likewise. Include <errno.h>.
8895
8896 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Use add/sub instead
8897 of inc/dec.
8898 * sysdeps/unix/sysv/linux/i386/lowlevelsem.h: Likewise.
8899 * sysdeps/unix/sysv/linux/i386/pthread_once.S: Likewise
8900 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: Likewise.
8901 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S: Likewise.
8902 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
8903 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S: Likewise.
8904 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
8905 Likewise.
8906 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
8907 Likewise.
8908 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Likewise.
8909 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
8910 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
8911 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S: Likewise.
8912 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S: Likewise.
8913 * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S: Likewise.
8914 * sysdeps/unix/sysv/linux/i386/i486/lowlevelmutex.S: Likewise.
8915 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Likewise.
8916
d130a341
UD
8917 * allocatestack.c (allocate_stack): If mprotect() fails free the
8918 TLS memory.
8919
bc6389ad
UD
89202003-03-07 Ulrich Drepper <drepper@redhat.com>
8921
41d4d223
UD
8922 * sysdeps/i386/i486/bits/atomic.h: Fix a few unused definitions.
8923
8924 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Remove all trace of
8925 lll_wake_tid. This was used only to work around kernel limits in
8926 the early days.
8927 * sysdeps/unix/sysv/linux/s390/lowlevellock.h: Likewise.
8928 * sysdeps/unix/sysv/linux/sh/libc-lowlevellock.S: Likewise.
8929 * sysdeps/unix/sysv/linux/sh/lowlevellock.S: Likewise.
8930 * sysdeps/unix/sysv/linux/sh/lowlevellock.h: Likewise.
8931
bc6389ad
UD
8932 * init.c (__static_tls_align_m1): Renamed from __static_tls_align.
8933 (__pthread_initialize_minimal_internal): Change initialization of
8934 __static_tls_align_m1 appropriately.
8935 * pthreadP.h (__static_tls_align_m1): Renamed from
8936 __static_tls_align.
8937 * allocatestack.c (allocate_stack): Use __static_tls_align_m1
8938 instead of __static_tls_align-1.
8939
cc775edf
UD
89402003-03-04 Ulrich Drepper <drepper@redhat.com>
8941
0de28d5c 8942 * sysdeps/unix/sysv/linux/x86_64/Makefile: New file.
6245b6ae 8943
518b5308
UD
8944 * pthread_create.c: Define __pthread_keys using nocommon
8945 attribute, not by placing it explicitly in bss.
8946 Remove DEFINE_DEALLOC definition. Not needed anymore.
8947
8948 * allocatestack.c: Define ARCH_MAP_FLAGS if not already defined.
8949 Use it in mmap call to allocate stacks.
8950
8951 * sysdeps/pthread/createthread.c (create_thread): Fix comment.
8952
cc775edf
UD
8953 * pthread_create.c (start_thread): Use THREAD_SETMEM to store
8954 result of the thread function.
8955
4f6f0a8f
UD
89562003-03-03 Ulrich Drepper <drepper@redhat.com>
8957
f04a2721
UD
8958 * sysdeps/unix/sysv/linux/s390/dl-sysdep.h: Removed. The generic
8959 version is just fine.
8960
4f6f0a8f
UD
8961 * sysdeps/unix/sysv/linux/libc_pthread_init.c
8962 (__pthread_child_handler): Renamed from pthread_child_handler,
8963 exported, and marked hidden. Change all users.
8964 * sysdeps/unix/sysv/linux/register-atfork.c (free_mem): Do not
8965 free __pthread_child_handler from child list.
8966
7ce5c164
UD
89672003-03-03 Martin Schwidefsky <schwidefsky@de.ibm.com>
8968
8969 * atomic.h (atomic_exchange_and_add): Return newval, not oldval.
8970
8971 * sysdeps/pthread/pthread_cond_timedwait.c (__pthread_cond_timedwait):
8972 Fix handling of cancellation and failing pthread_mutex_unlock call.
8973 * sysdeps/pthread/pthread_cond_wait.c (__condvar_cleanup): Likewise.
8974 (__pthread_cond_wait): Likewise.
8975
8976 * sysdeps/pthread/pthread_rwlock_timedrdlock.c
8977 (pthread_rwlock_timedrdlock): Fix clobber of result variable by
8978 lll_futex_timed_wait call.
8979 * sysdeps/pthread/pthread_rwlock_timedwrlock.c
8980 (pthread_rwlock_timedwrlock): Likewise.
8981
8982 * sysdeps/unix/sysv/linux/s390/libc-lowlevellock.c (___lll_lock):
8983 Don't define lll_unlock_wake_cb and ___lll_timedwait_tid in libc.so.
8984 * sysdeps/unix/sysv/linux/s390/lowlevellock.c: Remove XXX comments.
8985
8986 * sysdeps/unix/sysv/linux/s390/sem_post.c (__new_sem_post): Fix
8987 check of lll_futex_wake return value.
8988
ea6a015b
RM
89892003-03-03 Roland McGrath <roland@redhat.com>
8990
8991 * forward.c: Fix typo in __pthread_attr_init_2_0 compat_symbol decl.
8992
8993 * sysdeps/pthread/pthread-functions.h (struct pthread_functions):
8994 Argument to ptr___pthread_cleanup_upto is __jmp_buf, not jmp_buf.
8995 * sysdeps/unix/sysv/linux/jmp-unwind.c: Likewise.
8996
4adacf57
UD
89972003-03-02 Ulrich Drepper <drepper@redhat.com>
8998
1be3d664
UD
8999 * sysdeps/pthread/timer_create.c (timer_create): Return correct
9000 error for CPU clocks.
9001
885bafa1
UD
9002 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define
9003 _POSIX_MONOTONIC_CLOCK.
9004 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
9005
4adacf57
UD
9006 * tst-cancel4.c (tf_sleep): Lower sleep time a bit to not upset
9007 recent kernels.
9008
86bfff4d
UD
90092003-03-01 Ulrich Drepper <drepper@redhat.com>
9010
9011 * descr.h (struct pthread): Move cleanup field to the front.
9012
d1149385
RM
90132003-03-01 Roland McGrath <roland@redhat.com>
9014
9015 * sem_open.c (sem_open): Braino fix.
9016
bd8bb78b
UD
90172003-03-01 Ulrich Drepper <drepper@redhat.com>
9018
748bec08
UD
9019 * sysdeps/i386/tcb-offsets.sym: Add CLEANUP and CLEANUP_PREV.
9020 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Inline
9021 __pthread_cleanup_pop functionality.
9022 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
9023
bd8bb78b
UD
9024 * descr.h (struct pthread): Move tid field to the front now that
9025 it is often used.
9026
9027 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevelmutex.S
9028 (__lll_mutex_timedlock_wait): Remove.
9029 (__lll_mutex_unlock_wake): Don't save, load, and restore %esi.
9030 * sysdeps/unix/sysv/linux/i386/i486/lowlevelmutex.S
9031 (__lll_mutex_unlock_wake): Don't save, load, and restore %esi.
9032 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
9033 (lll_unlock_wake_cb): Don't save and restore %esi.
9034 (__lll_unlock_wake): Add alignment. Don't save, load, and restore
9035 %esi.
9036 (__lll_timedwait_tid): Add alignment.
9037 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S
9038 (__lll_unlock_wake): Add alignment. Don't save, load, and restore
9039 %esi.
9040 (__lll_timedwait_tid): Removed.
9041 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S
9042 (__pthread_cond_broadcast): Don't save, load, and restore %esi.
9043 * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S
9044 (pthread_barrier_wait): Don't save, load, and restore %esi for
9045 last thread.
9046 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
9047 (__pthread_cond_signal): Don't save, load, and restore %esi.
9048 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S
9049 (__pthread_rwlock_unlock): Don't save, load, and restore %esi.
9050 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S (__new_sem_post):
9051 Don't save, load, and restore %esi.
9052
d2637c70
UD
90532003-02-27 Ulrich Drepper <drepper@redhat.com>
9054
567fb22a
UD
9055 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S:
9056 Release lock before waking up the waiters.
9057
427f5fa1
UD
9058 * tst-exit1.c (do_test): Don't start more than one thread in parallel.
9059
a2d83cfb
UD
9060 * tst-rwlock9.c (writer_thread): Correct adding TIMEOUT.
9061 (reader_thread): Likewise.
9062
d2637c70
UD
9063 * sysdeps/pthread/pthread_rwlock_unlock.c
9064 (__pthread_rwlock_unlock): Release internal lock early. Don't try
9065 to wake up readers if there are none.
9066
9067 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S:
9068 Release internal lock before wake threads.
9069
b1531183
UD
90702003-02-26 Ulrich Drepper <drepper@redhat.com>
9071
dbf6131c
UD
9072 * Makefile (tests): Add tst-rwlock10 and tst-rwlock11.
9073 * tst-rwlock8.c: Initialize lock with INIT. Allow INIT to be
9074 predefined.
9075 * tst-rwlock9.c: Likewise.
9076 * tst-rwlock10.c: New file.
9077 * tst-rwlock11.c: New file.
9078
695799fe
UD
9079 * Makefile (tests): Add tst-dlsym1.
9080 * tst-dlsym1.c: New file.
9081
b1531183
UD
9082 * init.c (__pthread_initialize_minimal_internal): Set
9083 GL(dl_error_catch_tsd) to __libc_dl_error_tsd.
9084 * Versions (libc:GLIBC_PRIVATE): Export __libc_dl_error_tsd.
9085
3724f268
UD
90862003-02-24 Ulrich Drepper <drepper@redhat.com>
9087
3857ca78
UD
9088 * sem_open.c (sem_open): Fix handling of O_CREAT without O_EXCL.
9089
80d80779
UD
9090 * tst-cond2.c: Fix sychronization with child.
9091
86371308
UD
9092 * tst-rwlock8.c (reader_thread): Remove unused variable.
9093
ffeb4481
UD
9094 * Makefile: Add rules to build and run tst-tls3.
9095 * tst-tls3.c: New file.
9096 * tst-tls3mod.c: New file.
9097
3724f268
UD
9098 * Makefile (tests): Add tst-rwlock8 and tst-rwlock9.
9099 * tst-rwlock8.c: New file.
9100 * tst-rwlock9.c: New file.
9101 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Fix
9102 complete broken rwlock implementation.
9103 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
9104 Likewise.
9105 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
9106 Likewise.
9107 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S: Likewise.
9108 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
18a53579
UD
9109 * sysdeps/pthread/pthread_rwlock_rdlock.c: Likewise.
9110 * sysdeps/pthread/pthread_rwlock_timedrdlock.c: Likewise.
9111 * sysdeps/pthread/pthread_rwlock_timedwrlock.c: Likewise.
9112 * sysdeps/pthread/pthread_rwlock_unlock.c: Likewise.
9113 * sysdeps/pthread/pthread_rwlock_wrlock.c: Likewise.
3724f268 9114
8915cc40
RM
91152003-02-23 Roland McGrath <roland@redhat.com>
9116
9117 * Makefile (nptl-version): Change regexp so case sensitivity is ok.
9118
fd1a0d0c
UD
91192003-02-23 Ulrich Drepper <drepper@redhat.com>
9120
ecf28959
UD
9121 * Makefile (tests): Add tst-context1.
9122 * tst-context1.c: New file.
9123
5e47b76b
UD
9124 * Makefile (tests): Add tst-tls1 and tst-tls2.
9125 * tst-tls1.c: New file.
9126 * tst-tls2.c: New file.
9127
5a6bbb41
UD
9128 * libc-cancellation.c (__libc_enable_asynccancel): Correct test
9129 for failed cmpxchg.
9130
fd1a0d0c
UD
9131 * pthread_create.c (start_thread): Set EXITING_BIT early.
9132
9133 * sysdeps/i386/tls.h (THREAD_GETMEM): Mark asm as volatile.
9134 (THREAD_GETMEM_NC): Likewise.
9135
757f9fcb
UD
91362003-02-22 Ulrich Drepper <drepper@redhat.com>
9137
b1b8e747
UD
9138 * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S: Shave
9139 off 3 more bytes by using offset-less instructions when possible.
9140
c780aa21 9141 * Makefile: Add dependency for $(objpfx)version.d.
757f9fcb
UD
9142
9143 * eintr.c (eintr_source): Add unnecessary return but the compiler
9144 insists.
9145
9146 * tst-kill3.c: Include <unistd.h>.
9147
5148559c
RM
91482003-02-21 Roland McGrath <roland@redhat.com>
9149
9150 * pthread_create.c (start_thread): Call __libc_thread_freeres.
9151
ab2d98e3
UD
91522003-02-21 Ulrich Drepper <drepper@redhat.com>
9153
71028edd
UD
9154 * Makefile (tests): Add tst-eintr1.
9155 (distribute): Add eintr.c.
9156 * tst-eintr1.c: New file.
9157 * eintr.c: New file.
9158
e814f748
UD
9159 * pthread_cancel.c (pthread_cancel): Use tkill directly.
9160
9161 * sysdeps/unix/sysv/linux/pthread_kill.c (__pthread_kill):
9162 Disallow sending SIGCANCEL.
9163
ab2d98e3 9164 * Makefile (tests): Remove tst-basic7. Add tst-kill1, tst-kill2,
9c03686d 9165 tst-kill3, tst-kill4, tst-kill5, tst-kill6.
e814f748
UD
9166 * tst-kill1.c: New file.
9167 * tst-kill2.c: New file.
9168 * tst-kill3.c: New file.
9169 * tst-kill5.c: New file.
9c03686d 9170 * tst-kill6.c: New file.
e814f748
UD
9171 * tst-basic7.c: Renamed to...
9172 * tst-kill4.c: ...this.
ab2d98e3 9173
59fed0e2
RM
91742003-02-21 Roland McGrath <roland@redhat.com>
9175
9176 * Makefile (install-lib-ldscripts): New variable.
9177
49dc759f
UD
91782003-02-21 Ulrich Drepper <drepper@redhat.com>
9179
8c2e9a29
UD
9180 * pthreadP.h: Define INVALID_TD_P and INVALID_NOT_TERMINATED_TD_P.
9181 * pthread_cancel.c: Use INVALID_TD_P.
9182 * pthread_detach.c: Likewise.
9183 * pthread_getschedparam.c: Likewise.
9184 * pthread_setschedparam.c: Likewise.
9185 * sysdeps/pthread/pthread_getcpuclockid.c: Likewise.
9186 * sysdeps/unix/sysv/linux/pthread_kill.c: Likewise.
9187 * pthread_join.c: Use INVALID_NOT_TERMINATED_TD_P.
9188 * pthread_timedjoin.c: Likewise.
9189
9190 * tst-basic7.c: Include <signal.h>.
9191
49dc759f
UD
9192 * pthread_join.c (pthread_join): Limited checking for invalid
9193 descriptors.
9194 * pthread_timedjoin.c (pthread_timedjoin_np): Likewise.
9195
df5803bf
UD
91962003-02-20 Ulrich Drepper <drepper@redhat.com>
9197
c5acd3d7
UD
9198 * pthread_create.c (deallocate_tsd): Reset found_nonzero at the
9199 beginning of the loop. Clear the entire first block of TSD.
df5803bf
UD
9200 * Makefile (tests): Add tst-key4.
9201 * tst-key4.c: New file.
9202
729924a0
UD
92032003-02-18 Ulrich Drepper <drepper@redhat.com>
9204
2f7dc594
UD
9205 * Makefile (tests): Add tst-basic7.
9206 * tst-basic7.c: New file.
9207
ba25bb0f
UD
9208 * pthread_create.c (deallocate_tsd): Mark as internal_function.
9209 Add some more __builtin_expect.
9210
12fd3c5f 9211 * pthreadP.h: Define dummy version of DEBUGGING_P.
729924a0 9212
5430d926
UD
92132003-02-17 Ulrich Drepper <drepper@redhat.com>
9214
b0db7fbe
UD
9215 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Remnove
9216 _POSIX_THREAD_PRIORITY_SCHEDULING.
9217 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Remove
9218 _XOPEN_REALTIME_THREADS.
9219 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Likewise.
9220
9221 * sysdeps/unix/sysv/linux/pthread_kill.c (__pthread_kill): The
9222 kernel returns EINVAL for PID <= 0, work around it.
9223
ecfda9bd
UD
9224 * Makefile (tests): Add tst-signal5.
9225 * tst-signal5.c: New file.
9226
7d78ab99
UD
9227 * sysdeps/unix/sysv/linux/bits/local_lim.h: Define TTY_NAME_MAX
9228 and LOGIN_NAME_MAX.
9229
371a2972
UD
9230 * tst-cancel1.c (tf): Block all signals.
9231
5430d926
UD
9232 * Makefile (tests): Add tst-basic6.
9233 * tst-basic6.c: New file.
9234
9235 * tst-basic1.c: Add test for process ID.
9236
9237 * Makefile (tests): Add tst-cancel10.
9238 * tst-cancel10.c: New file.
9239
9240 * Makefile (tests): Add tst-signal4.
9241 * tst-signal4.c: New file.
9242
9243 * sysdeps/pthread/pthread_sigmask.c (pthread_sigmask): Use
9244 __sigismember instead of sigismember. Add __builtin_expect.
9245
1564916a
UD
92462003-02-16 Ulrich Drepper <drepper@redhat.com>
9247
179ff175
UD
9248 * tst-attr1.c (do_test): Add tests for pthread_setcanceltype,
9249 pthread_setcancelstate, and pthread_rwlock_setpshared.
9250
e4335f9a
UD
9251 * tst-cancel7.c (do_test): Make sure the pid file exists before
9252 canceling the thread.
9253
0a37669a
UD
9254 * tst-rwlock6.c: More pthread_rwlock_timedwrlock and
9255 pthread_rwlock_timedrdlock tests.
9256 * tst-rwlock7.c: More pthread_rwlock_timedwrlock tests.
9257 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
9258 Check for invalid tv_nsec field.
9259 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
9260 Likewise.
9261
9262 * pthread_mutex_trylock.c (__pthread_mutex_trylock): Protect
9263 recursive mutex of overflow.
9264
9265 * tst-attr1.c (do_test): Add test for pthread_mutexattr_setpshared.
9266
e4335f9a 9267 * libc-cancellation.c (__libc_enable_asynccancel): Rewrite to avoid
1564916a
UD
9268 going into an endless loop.
9269 * Makefile (tests): Add tst-cancel9.
9270 * tst-cancel9.c: New file.
9271
9272 * pthread_cancel.c (pthread_cancel): Use the result of __pthread_kill.
9273
b270b548
UD
92742003-02-15 Ulrich Drepper <drepper@redhat.com>
9275
1c82b97f
UD
9276 * tst-mutex5.c (do_test): Add more timedlock tests.
9277
b2f05465 9278 * tst-mutex2.c: Tests of trylock and unlock with ERROR mutexes.
c3bb9ee1
UD
9279 * tst-mutex3.c (do_test): Add tests for trylock with RECURSIVE mutexes.
9280
e798b60f
UD
9281 * sysdeps/unix/sysv/linux/pthread_kill.c (__pthread_kill): Don't
9282 use INLINE_SYSCALL. Error number is returned, not -1.
9283
90491dc4
UD
9284 * pthreadP.h: Mark declarations of __find_in_stack_list, __free_tcb,
9285 and __deallocate_stack with internal_function.
9286 * pthread_create.c: Adjust definitions appropriately.
9287 * allocatestack.c: Likewise.
9288
9289 * pthread_join.c: Add one more __builtin_expect.
9290 * pthread_timedjoin.c: Likewise.
9291
9292 * pthread_getspecific.c (__pthread_getspecific): Clear data->data
9293 not data of sequence number does not match.
9294 Add one __builtin_expect.
9295
c6247c9d
UD
9296 * Makefile (tests): Add tst-clock1.
9297 * tst-clock1.c: New file.
9298
b270b548
UD
9299 * pthread_setconcurrency.c (pthread_setconcurrency): Fail for
9300 negative arguments.
9301 * Makefile (tests): Add tst-basic5.
9302 * tst-basic5.c: New file.
9303
700bf7af
UD
93042003-02-14 Ulrich Drepper <drepper@redhat.com>
9305
757de559
UD
9306 * Makefile (tests): Add tst-basic4.
9307 * tst-basic4.c: New file.
9308
47202270
UD
9309 * pthreadP.h: Add declaraction for __nptl_nthreads.
9310 * pthread_create.c: Define __nptl_nthreads
9311 (start_thread): Increment __nptl_nthreads at beginning. Decrement
b270b548 9312 after thread is done. If then zero, call exit(0).
47202270
UD
9313 * sysdeps/pthread/pthread-functions.h (struct pthread_functions):
9314 Add ptr_nthreads. Define HAVE_PTR_NTHREADS.
9315 * init.c (pthread_functions): Initialize ptr_nthreads.
9316 * allocatestack.c (nptl_nthreads): Remove definition and all uses.
9317 (__reclaim_stacks): Decrement __nptl_nthreads.
9318 * sysdeps/pthread/Makefile [$(subdir)==csu] (CFLAGS-libc-start.c):
9319 Define.
9320 * Makefile (tests): Add tst-basic3.
9321 * tst-basic3.c: New file.
9322
e320ef46
UD
9323 * descr.h: Define CANCELING_BIT and CANCELING_BITMASK. Introduce
9324 after CANCELTYPE_BIT, move the other bits up. Update CANCEL_RESTMASK.
9325 * init.c (sigcancel_handler): Also set CANCELING_BITMASK bit in newval.
9326 * pthread_cancel.c (pthread_cancel): Likewise. Also set CANCELING_BIT
9327 if asynchronous canceling is enabled.
9328 * pthread_join.c (pthread_join): When recognizing circular joins,
9329 take into account the other thread might be already canceled.
9330 * Makefile (tests): Add tst-join5.
9331 * tst-join5.c: New file.
9332
700bf7af
UD
9333 * Makefile (tests): Add tst-join4.
9334 * tst-join4.c: New file.
9335
93362003-02-13 Ulrich Drepper <drepper@redhat.com>
9337
9338 * tst-cond4.c (main): Add test of pthread_attr_getpshared.
9339
dac0f772
UD
93402003-02-13 Martin Schwidefsky <schwidefsky@de.ibm.com>
9341
9342 * sysdeps/s390/tls.h (THREAD_GETMEM, THREAD_GETMEM_NC, THREAD_SETMEM,
9343 THREAD_SETMEM_NC): Use passed descr instead of THREAD_SELF.
9344 * sysdeps/unix/sysv/linux/s390/jmp-unwind.c (_longjmp_unwind): Avoid
9345 warning.
9346 * sysdeps/unix/sysv/linux/s390/lowlevellock.c: Include <sys/time.h>
9347 to avoid warning.
9348 * sysdeps/unix/sysv/linux/s390/sem_post.c (__new_sem_post): Return
9349 error if lll_futex_wake failed.
9350
e8cda341
UD
93512003-02-13 Ulrich Drepper <drepper@redhat.com>
9352
a7720b5e
UD
9353 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Fix
9354 handling of cancellation and failung pthread_mutex_unlock call.
9355 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
9356 * Makefile (tests): Add tst-cond8 and tst-cond9.
9357 * tst-cond8.c: New file.
9358 * tst-cond9.c: New file.
9359
a1ea4c06
UD
9360 * tst-cond7.c (do_test): Unlock the mutex before canceling the thread.
9361
9362 * sysdeps/pthread/pthread.h: Add missing initializers. Protect
9363 non-standard initializers with __USE_GNU.
9364
e8cda341
UD
9365 * Makefile (tests): Add tst-cleanup3.
9366 * tst-cleanup3.c: New file.
9367
2067577c
UD
93682003-02-12 Ulrich Drepper <drepper@redhat.com>
9369
89e78a95
UD
9370 * Makefile (tests): Add tst-attr1 and tst-attr2.
9371 * tst-attr1.c: New file.
9372 * tst-attr2.c: New file.
9373
dfdd294a
UD
9374 * Makefile: Add rules to build and run tst-atfork2 test.
9375 * tst-atfork2.c: New file.
9376 * tst-atfork2mod.c: New file.
9377
9378 * sysdeps/unix/sysv/linux/unregister-atfork.c
9379 (__unregister_atfork): Free the memory allocated for the handlers
9380 after removing them from the lists.
9381
9382 * sysdeps/unix/sysv/linux/register-atfork.c: Define memeory
9383 cleanup function.
9384
9385 * tst-atfork1.c (do_test): Wait for the child we forked.
9386 Report error in child.
9387
9388 * sysdeps/unix/sysv/linux/fork.c (__libc_fork): Fix comment.
9389
2067577c
UD
9390 * sysdeps/pthread/Makefile: Define CFLAGS-confstr.c.
9391
2a8a8a84
UD
93922003-02-10 Ulrich Drepper <drepper@redhat.com>
9393
d9dd121e
UD
9394 * Makefile (tests): Add tst-cancel8.
9395 * tst-cancel8.c: New file.
9396
2a8a8a84
UD
9397 * sysdeps/unix/sysv/linux/i386/pthread_once.S (clear_once_control): Fix
9398 clearing of control variable.
defd1870 9399 * Makefile (tests): Add tst-once3 and tst-once4.
2a8a8a84 9400 * tst-once3.c: New file.
defd1870 9401 * tst-once4.c: New file.
2a8a8a84 9402
a54e8d33
UD
94032003-02-08 kaz Kojima <kkojima@rr.iij4u.or.jp>
9404
9405 * sysdeps/sh/Makefile: New file.
9406 * sysdeps/sh/bits/atomic.h: New file.
9407 * sysdeps/sh/pthread_spin_init.c: New file.
9408 * sysdeps/sh/pthread_spin_lock.c: New file.
9409 * sysdeps/sh/pthread_spin_trylock.S: New file.
9410 * sysdeps/sh/pthread_spin_unlock.S: New file.
9411 * sysdeps/sh/pthreaddef.h: New file.
9412 * sysdeps/sh/tcb-offsets.sym: New file.
9413 * sysdeps/sh/td_ta_map_lwp2thr.c: New file.
9414 * sysdeps/sh/tls.h: New file.
9415 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: New file.
9416 * sysdeps/unix/sysv/linux/sh/bits/semaphore.h: New file.
9417 * sysdeps/unix/sysv/linux/sh/createthread.c: New file.
9418 * sysdeps/unix/sysv/linux/sh/fork.c: New file.
9419 * sysdeps/unix/sysv/linux/sh/libc-lowlevellock.S: New file.
9420 * sysdeps/unix/sysv/linux/sh/libc-lowlevelmutex.S: New file.
9421 * sysdeps/unix/sysv/linux/sh/lowlevel-atomic.h: New file.
9422 * sysdeps/unix/sysv/linux/sh/lowlevelcond.h: New file.
9423 * sysdeps/unix/sysv/linux/sh/lowlevellock.S: New file.
9424 * sysdeps/unix/sysv/linux/sh/lowlevellock.h: New file.
9425 * sysdeps/unix/sysv/linux/sh/lowlevelmutex.S: New file.
9426 * sysdeps/unix/sysv/linux/sh/lowlevelrwlock.h: New file.
9427 * sysdeps/unix/sysv/linux/sh/pt-initfini.c: New file.
9428 * sysdeps/unix/sysv/linux/sh/pt-vfork.S: New file.
9429 * sysdeps/unix/sysv/linux/sh/pthread_barrier_wait.S: New file.
9430 * sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S: New file.
9431 * sysdeps/unix/sysv/linux/sh/pthread_cond_signal.S: New file.
9432 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: New file.
9433 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: New file.
9434 * sysdeps/unix/sysv/linux/sh/pthread_once.S: New file.
9435 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: New file.
9436 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S: New file.
9437 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S: New file.
9438 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S: New file.
9439 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: New file.
9440 * sysdeps/unix/sysv/linux/sh/sem_post.S: New file.
9441 * sysdeps/unix/sysv/linux/sh/sem_timedwait.S: New file.
9442 * sysdeps/unix/sysv/linux/sh/sem_trywait.S: New file.
9443 * sysdeps/unix/sysv/linux/sh/sem_wait.S: New file.
9444 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h: New file.
9445
696e556e
UD
94462003-02-08 Ulrich Drepper <drepper@redhat.com>
9447
9448 * tst-cond2.c: Rearrange code to not rely on behavior undefined
9449 according to POSIX.
9450
9451 * tst-basic2.c (do_test): Lock mutex before creating the thread.
9452
fef710d6
UD
94532003-02-07 Ulrich Drepper <drepper@redhat.com>
9454
c6180643
UD
9455 * sysdeps/x86_64/tls.h: Remove unnecessary macros, left over from x86.
9456 (TLS_GET_FS): New #define.
9457 (TLS_SET_FS): New #define.
9458 Correct value of __NR_set_thread_area.
9459
fef710d6
UD
9460 * sysdeps/x86_64/td_ta_map_lwp2thr.c: New file.
9461
11090a99
UD
94622003-02-06 Ulrich Drepper <drepper@redhat.com>
9463
65c68990
UD
9464 * Makefile (tests): Add tst-popen1.
9465 * tst-popen1.c: New file.
9466
11090a99
UD
9467 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Remove wrong
9468 but inactive generalization.
9469 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
9470 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S: Likewise.
9471 Minor optimization, remove one instruction.
9472 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S: Likewise.
9473
a88c9263
UD
94742003-02-04 Martin Schwidefsky <schwidefsky@de.ibm.com>
9475
9476 * sysdeps/unix/sysv/linux/s390/fork.c: Correct order of parameters.
9477
94782003-01-31 Martin Schwidefsky <schwidefsky@de.ibm.com>
9479
9480 * init.c (__NR_set_tid_address): Add #ifdef for s390.
9481 * sysdeps/pthread/pthread_barrier_wait.c: New file.
9482 * sysdeps/pthread/pthread_cond_broadcast.c: New file.
9483 * sysdeps/pthread/pthread_cond_signal.c: New file.
9484 * sysdeps/pthread/pthread_cond_timedwait.c: New file.
9485 * sysdeps/pthread/pthread_cond_wait.c: New file.
9486 * sysdeps/pthread/pthread_rwlock_rdlock.c: New file.
9487 * sysdeps/pthread/pthread_rwlock_timedrdlock.c: New file.
9488 * sysdeps/pthread/pthread_rwlock_timedwrlock.c: New file.
9489 * sysdeps/pthread/pthread_rwlock_unlock.c: New file.
9490 * sysdeps/pthread/pthread_rwlock_wrlock.c: New file.
9491 * sysdeps/s390/Makefile: New file.
9492 * sysdeps/s390/bits/atomic.h: New file.
9493 * sysdeps/s390/pthread_spin_init.c: New file.
9494 * sysdeps/s390/pthread_spin_lock.c: New file.
9495 * sysdeps/s390/pthread_spin_trylock.c: New file.
9496 * sysdeps/s390/pthread_spin_unlock.c: New file.
9497 * sysdeps/s390/pthreaddef.h: New file.
9498 * sysdeps/s390/tcb-offsets.sym: New file.
9499 * sysdeps/s390/td_ta_map_lwp2thr.c: New file.
9500 * sysdeps/s390/tls.h: New file.
9501 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: New file.
9502 * sysdeps/unix/sysv/linux/s390/bits/semaphore.h: New file.
9503 * sysdeps/unix/sysv/linux/s390/createthread.c: New file.
9504 * sysdeps/unix/sysv/linux/s390/dl-sysdep.h: New file.
9505 * sysdeps/unix/sysv/linux/s390/fork.c: New file.
9506 * sysdeps/unix/sysv/linux/s390/jmp-unwind.c: New file.
9507 * sysdeps/unix/sysv/linux/s390/libc-lowlevellock.c: New file.
9508 * sysdeps/unix/sysv/linux/s390/libc-lowlevelmutex.c: New file.
9509 * sysdeps/unix/sysv/linux/s390/lowlevellock.c: New file.
9510 * sysdeps/unix/sysv/linux/s390/lowlevellock.h: New file.
9511 * sysdeps/unix/sysv/linux/s390/lowlevelmutex.c: New file.
9512 * sysdeps/unix/sysv/linux/s390/lowlevelsem.h: New file.
9513 * sysdeps/unix/sysv/linux/s390/pthread_once.c: New file.
9514 * sysdeps/unix/sysv/linux/s390/s390-32/pt-initfini.c: New file.
9515 * sysdeps/unix/sysv/linux/s390/s390-32/pt-vfork.S: New file.
9516 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h: New file.
9517 * sysdeps/unix/sysv/linux/s390/s390-64/pt-initfini.c: New file.
9518 * sysdeps/unix/sysv/linux/s390/s390-64/pt-vfork.S: New file.
9519 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h: New file.
9520 * sysdeps/unix/sysv/linux/s390/sem_post.c: New file.
9521 * sysdeps/unix/sysv/linux/s390/sem_timedwait.c: New file.
9522 * sysdeps/unix/sysv/linux/s390/libc-lowlevellock.c: New file.
9523 * sysdeps/unix/sysv/linux/s390/sem_wait.c: New file.
9524
6f1cff95
UD
95252003-02-04 Ulrich Drepper <drepper@redhat.com>
9526
ec609a8e
UD
9527 * atomic.h: Add a couple more default implementations.
9528 (atomic_compare_and_exchange_acq): Use
d45e8740
UD
9529 __arch_compare_and_exchange_32_acq in return value definition. It
9530 always exists.
9531 (atomic_bit_set): Renamed from atomic_set_bit.
0289bef9 9532 Add missing atomic_ prefixes.
e3ec8904 9533
6f1cff95
UD
9534 * sysdeps/pthread/bits/libc-lock.h (__libc_once): In case no
9535 thread library is available, use correct value to mark initialized
9536 once variable.
9537
4f088329
UD
95382003-02-03 Ulrich Drepper <drepper@redhat.com>
9539
6f1cff95
UD
9540 * allocatestack.c (allocate_stack): Use __getpagesize instead of
9541 __sysconf to determine pagesize.
9542
3e4fc359 9543 * pthread_create.c: Include <atomic.h>.
4f088329
UD
9544 * allocatestack.c (allocate_stack): Implement coloring of the
9545 allocated stack memory. Rename pagesize to pagesize_m1. It's the
9546 size minus one. Adjust users.
3e4fc359 9547 * sysdeps/i386/i686/Makefile: New file.
4f088329 9548
2f42e8be
UD
95492003-02-02 Ulrich Drepper <drepper@redhat.com>
9550
4301f7e2
UD
9551 * allocatestack.c: Improve comment throughout the file.
9552
2f42e8be 9553 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
a37818b3 9554 (__lll_lock_wait): Add branch prediction.
2f42e8be
UD
9555 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S
9556 (__lll_lock_wait): Likewise.
9557 (lll_unlock_wake_cb): Removed.
9558
4a7d6545
UD
95592003-01-31 Ulrich Drepper <drepper@redhat.com>
9560
9561 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Remove
9562 _POSIX_THREAD_PRIORITY_SCHEDULING.
9563
886d5973
UD
95642003-01-30 Jakub Jelinek <jakub@redhat.com>
9565
9566 * sysdeps/pthread/pthread-functions.h (struct pthread_functions):
9567 Fix return type of ptr___pthread_getspecific.
9568
e474ca78
UD
95692003-01-29 Ulrich Drepper <drepper@redhat.com>
9570
9571 * Makefile (tests): Add tst-umask1.
9572 (tst-umask1-ARGS): Define.
9573 * tst-umask1.c: New file.
9574
e6ebd2e4
UD
95752003-01-28 Ulrich Drepper <drepper@redhat.com>
9576
6cf26f41
UD
9577 * Makefile (libpthread-routines): Remove lowlevelrwlock. Add
9578 pthread_rwlock_rdlock, pthread_rwlock_timedrdlock,
9579 pthread_rwlock_wrlock, pthread_rwlock_timedwrlock, and
9580 pthread_rwlock_unlock.
9581 * sysdeps/unix/sysv/linux/i386/i486/lowlevelrwlock.S: Removed
9582 * sysdeps/unix/sysv/linux/i386/i586/lowlevelrwlock.S: Removed
9583 * sysdeps/unix/sysv/linux/i386/i686/lowlevelrwlock.S: Removed
9584 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: New file.
9585 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
9586 New file.
9587 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: New file.
9588 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
9589 New file.
9590 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S: New file.
9591 * sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_rdlock.S: New file.
9592 * sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_timedrdlock.S:
9593 New file.
9594 * sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_wrlock.S: New file.
9595 * sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_timedwrlock.S:
9596 New file.
9597 * sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_unlock.S: New file.
9598 * sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_rdlock.S: New file.
9599 * sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_timedrdlock.S:
9600 New file.
9601 * sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_wrlock.S: New file.
9602 * sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_timedwrlock.S:
9603 New file.
9604 * sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_unlock.S: New file.
9605
1d087a7e
UD
9606 * Makefile (libpthread-routines): Remove lowlevelcond and
9607 lowlevelsem. Add sem_wait, sem_trywait, sem_timedwait, sem_post,
9608 pthread_cond_wait, pthread_cond_timedwait, pthread_cond_signal,
9609 and pthread_cond_broadcast.
4a99d160
UD
9610 * sysdeps/unix/sysv/linux/i386/i486/lowlevelsem.S: Removed
9611 * sysdeps/unix/sysv/linux/i386/i486/lowlevelcond.S: Removed
9612 * sysdeps/unix/sysv/linux/i386/i586/lowlevelsem.S: Removed
9613 * sysdeps/unix/sysv/linux/i386/i586/lowlevelcond.S: Removed
9614 * sysdeps/unix/sysv/linux/i386/i686/lowlevelsem.S: Removed
9615 * sysdeps/unix/sysv/linux/i386/i686/lowlevelcond.S: Removed
9616 * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S: New file.
9617 * sysdeps/unix/sysv/linux/i386/i486/sem_trywait.S: New file.
9618 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: New file.
9619 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S: New file.
9620 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: New file.
9621 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: New file.
9622 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S: New file.
9623 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S: New file.
9624 * sysdeps/unix/sysv/linux/i386/i586/sem_wait.S: New file.
9625 * sysdeps/unix/sysv/linux/i386/i586/sem_trywait.S: New file.
9626 * sysdeps/unix/sysv/linux/i386/i586/sem_timedwait.S: New file.
9627 * sysdeps/unix/sysv/linux/i386/i586/sem_post.S: New file.
9628 * sysdeps/unix/sysv/linux/i386/i586/pthread_cond_wait.S: New file.
9629 * sysdeps/unix/sysv/linux/i386/i586/pthread_cond_timedwait.S: New file.
9630 * sysdeps/unix/sysv/linux/i386/i586/pthread_cond_signal.S: New file.
9631 * sysdeps/unix/sysv/linux/i386/i586/pthread_cond_broadcast.S: New file.
9632 * sysdeps/unix/sysv/linux/i386/i686/sem_wait.S: New file.
9633 * sysdeps/unix/sysv/linux/i386/i686/sem_trywait.S: New file.
9634 * sysdeps/unix/sysv/linux/i386/i686/sem_timedwait.S: New file.
9635 * sysdeps/unix/sysv/linux/i386/i686/sem_post.S: New file.
9636 * sysdeps/unix/sysv/linux/i386/i686/pthread_cond_wait.S: New file.
9637 * sysdeps/unix/sysv/linux/i386/i686/pthread_cond_timedwait.S: New file.
9638 * sysdeps/unix/sysv/linux/i386/i686/pthread_cond_signal.S: New file.
9639 * sysdeps/unix/sysv/linux/i386/i686/pthread_cond_broadcast.S: New file.
9640 * sysdeps/unix/sysv/linux/i386/lowlevelcond.h: New file.
1d087a7e 9641
e6ebd2e4
UD
9642 * sysdeps/unix/sysv/linux/i386/createthread.c: Define
9643 PREPARE_CREATE and TLS_VALUE with x86-specific bits. All the rest
9644 of the code is moved to ...
9645 * sysdeps/pthread/createthread.c: ...here. New file.
9646
a15698cb
UD
96472003-01-27 Ulrich Drepper <drepper@redhat.com>
9648
0566b130
UD
9649 * sysdeps/unix/sysv/linux/i386/i486/lowlevelsem.S
9650 (__new_sem_post): Clear %eax before returning.
9651 Reported by MAEDA Naoaki <maeda.naoaki@jp.fujitsu.com>.
9652
e6fb8846
UD
9653 * Makefile (tests): Add tst-cleanup2.
9654 * tst-cleanup2.c: New file.
9655
a15698cb
UD
9656 * sysdeps/pthread/bits/libc-lock.h (__libc_cleanup_region_start):
9657 Interpret first parameter correctly.
9658
8824b0a1
UD
96592003-01-17 Ulrich Drepper <drepper@redhat.com>
9660
9661 * Makefile (headers): Add bits/semaphore.h.
9662
850dcfca
UD
96632003-01-16 Jakub Jelinek <jakub@redhat.com>
9664
9665 * sysdeps/i386/tls.h (INIT_SYSINFO): Initialize _head->sysinfo even
9666 if not SHARED.
9667
574b892e
UD
96682003-01-14 Ulrich Drepper <drepper@redhat.com>
9669
a8d87c92
UD
9670 * sem_open.c (sem_open): Return SEM_FAILED if existing semaphore
9671 must be used and mapping failed.
9672 Reported by Luke Elliott <luke.elliott@activfinancial.com>.
9673
574b892e
UD
9674 * Makefile (CFLAGS-pthread_self.os): Define this, not
9675 CFLAGS-pthread_self.c.
9676
fb48047a
UD
96772003-01-13 Ulrich Drepper <drepper@redhat.com>
9678
47805511
UD
9679 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Don't export
9680 lll_unlock_wake_cb.
9681
fb48047a
UD
9682 * Makefile (libpthread-routines): Add version. Add rules to build
9683 version.os and banner.h.
9684 * version.c: New file.
9685
115bb61d
UD
96862003-01-13 Jakub Jelinek <jakub@redhat.com>
9687
9688 * pthread_mutex_lock.c (__pthread_mutex_lock_internal): Make
9689 the alias unconditional.
9690 * pthread_mutex_unlock.c (__pthread_mutex_unlock_internal): Likewise.
9691
96922003-01-13 Ulrich Drepper <drepper@redhat.com>
9693
9694 * Makefile (CFLAGS-pthread_self.c): New definition.
9695
6aca81bb
UD
96962003-01-06 Jakub Jelinek <jakub@redhat.com>
9697
9698 * sysdeps/pthread/pthread_sigmask.c (pthread_sigmask): Add
9699 INTERNAL_SYSCALL_DECL, add err argument to INTERNAL_SYSCALL* macros.
9700 * sysdeps/unix/sysv/linux/raise.c (raise): Likewise.
9701 * init.c (__pthread_initialize_minimal_internal): Likewise.
9702
e9c7764e
UD
97032003-01-07 Jakub Jelinek <jakub@redhat.com>
9704
b5facfda
UD
9705 * pthreadP.h (__pthread_cond_timedwait): Add prototype.
9706
e9c7764e
UD
9707 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h
9708 (RTLD_CORRECT_DYNAMIC_WEAK): Remove.
9709 (DL_SYSINFO_IMPLEMENTATION): Change into .text section and back.
9710 * sysdeps/unix/sysv/linux/i386/i686/dl-sysdep.h
9711 (RTLD_CORRECT_DYNAMIC_WEAK): Remove.
9712 (DL_SYSINFO_IMPLEMENTATION): Change into .text section and back.
9713
bef1e42f
UD
97142003-01-06 Jakub Jelinek <jakub@redhat.com>
9715
9716 * pthreadP.h (LIBC_CANCEL_HANDLED): Define.
9717 * pt-system.c (LIBC_CANCEL_HANDLED): Add.
9718 * tst-cancel-wrappers.sh: Remove all exceptions.
9719
bbd17455
UD
97202003-01-05 Ulrich Drepper <drepper@redhat.com>
9721
a73ab6df
UD
9722 * tst-cancel-wrappers.sh: Invoke gawk not awk since we use GNU awk
9723 features. Reported by Marijn Ros <marijn@mad.scientist.com>.
9724
bbd17455
UD
9725 * sysdeps/unix/sysv/linux/jmp-unwind.c: Include <pthread-functions.h>.
9726 Use __libc_pthread_functions array if SHARED.
9727
9728 * pthreadP.h: Move pthread_cond_2_0_t definition to...
9729 * sysdeps/unix/sysv/linux/internaltypes.h: ...here.
9730
9731 * sysdeps/pthread/bits/libc-lock.h (__libc_ptf_call): New #define.
9732 (__libc_rwlock_rdlock, __libc_rwlock_wrlock, __libc_rwlock_unlock,
9733 __libc_key_create, __libc_getspecific, __libc_setspecific): Use
9734 __libc_ptf_call instead of __libc_maybe_call.
9735 (PTF): New #define.
9736 (__libc_cleanup_region_start): Wrap function name with PTF call.
9737 (__libc_cleanup_region_end): Likewise.
9738 (__libc_cleanup_end): Likewise.
9739
9740 * pthread_getspecific.c: Add __pthread_getspecific_internal alias.
9741 * pthread_setspecific.c: Add __pthread_setspecific_internal alias.
9742 * pthread_key_create.c: Add __pthread_key_create_internal alias.
9743 * pthreadP.h: Add prototypes.
9744
9745 * sysdeps/unix/sysv/linux/i386/i486/lowlevelrwlock.S: Add
9746 __pthread_rwlock_rdlock, __pthread_rwlock_wrlock, and
9747 __pthread_rwlock_unlock aliases.
9748 * pthreadP.h: Add prototypes for new aliases.
9749
9750 * pthreadP.h (struct pthead_functions): Moved to...
9751 * sysdeps/pthread/pthread-functions.h: ...here. New file.
9752 * init.c (pthread_functions): Add initializers for new elements.
9753
9754 * cleanup_defer.c: Add __pthread_cleanup_push_defer and
9755 __pthread_cleanup_pop_restore aliases.
9756 * pthreadP.h: Add prototypes.
9757
9758 * cleanup.c: Rename _GI_pthread_cleanup_push to __pthread_cleanup_push
9759 and _GI_pthread_cleanup_pop to __pthread_cleanup_pop.
9760 * sysdeps/unix/sysv/linux/i386/i486/lowlevelcond.S: Adjust caller.
9761 * sysdeps/unix/sysv/linux/i386/pthread_once.S: Likewise.
9762 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Likewise.
9763 * pthreadP.h: Adjust prototypes and callers.
9764
d27a78be
UD
97652003-01-04 Ulrich Drepper <drepper@redhat.com>
9766
b74121ae
UD
9767 * Makefile (tests): Add tst-cancel7.
9768 (tst-cancel7-ARGS): New variable.
bbd17455 9769 * tst-cancel7.c: New file.
b74121ae 9770
29bc410c
UD
9771 * old_pthread_cond_broadcast.c: Optimize initialization a bit to work
9772 around gcc defficiencies.
9773 * old_pthread_cond_signal.c: Likewise.
9774 * old_pthread_cond_timedwait.c: Likewise.
9775 * old_pthread_cond_wait.c: Likewise.
9776
d27a78be
UD
9777 * pthreadP.h (pthread_cond_2_0_t): Remove unneeded lock element.
9778
733f25e6
UD
97792003-01-03 Ulrich Drepper <drepper@redhat.com>
9780
7edb2ae3
UD
9781 * Makefile (tests): Add tst-cond7.
9782 * tst-cond7.c: New file.
9783
b1151300
UD
9784 * sysdeps/unix/sysv/linux/i386/i486/lowlevelcond.S
9785 (condvar_cleanup): Get condvar address from the right place.
9786
733f25e6
UD
9787 * atomic.h: Correct definitions of atomic_full_barrier,
9788 atomic_read_barrier, atomic_write_barrier.
9789
9790 * old_pthread_cond_broadcast.c: Make memory allocate and initialization
9791 race-free.
9792 * old_pthread_cond_signal.c: Likewise.
9793 * old_pthread_cond_timedwait.c: Likewise.
9794 * old_pthread_cond_wait.c: Likewise.
9795
686b7223
UD
97962003-01-03 Jakub Jelinek <jakub@redhat.com>
9797
9798 * Makefile ($(objpfx)libpthread.so): Depend on ld.so.
9799
0e07706e
UD
98002003-01-03 Ulrich Drepper <drepper@redhat.com>
9801
997256dd
UD
9802 * pthreadP.h (pthread_cond_2_0_t): New type.
9803 (struct pthread_functions): Use new type for 2.0 condvar callbacks.
9804 Use new type for the 2.0 condvar function prototypes.
9805 * forward.c: Use pthread_cond_2_0_t for 2.0 condvar functions.
9806 * old_pthread_cond_init.c: Use pthread_cond_2_0_t for condvar
9807 parameter.
9808 * old_pthread_cond_destroy.c: Likewise.
9809 * old_pthread_cond_broadcast.c: Likewise. Lock appropriately.
9810 * old_pthread_cond_signal.c: Likewise.
9811 * old_pthread_cond_timedwait.c: Likewise.
9812 * old_pthread_cond_wait.c: Likewise.
9813
842d2817
UD
9814 * sysdeps/unix/sysv/linux/i386/i486/lowlevelcond.S
9815 (__pthread_cond_wait): Don't save cancellation mode and seq value
9816 in same location.
9817
0e07706e
UD
9818 * herrno.c (__h_errno_location): Don't define as weak.
9819
bf293afe
UD
98202003-01-02 Jakub Jelinek <jakub@redhat.com>
9821
9822 * Versions [libc] (GLIBC_2.3.2): Export pthread_cond_broadcast,
9823 pthread_cond_destroy, pthread_cond_init, pthread_cond_signal
9824 and pthread_cond_wait.
9825 * old_pthread_cond_broadcast.c (__old_pthread_cond_broadcast):
9826 Renamed to...
9827 (__pthread_cond_broadcast_2_0): ... this.
9828 * old_pthread_cond_destroy.c (__old_pthread_cond_destroy):
9829 Renamed to...
9830 (__pthread_cond_destroy_2_0): ... this.
9831 * old_pthread_cond_init.c (__old_pthread_cond_init):
9832 Renamed to...
9833 (__pthread_cond_init_2_0): ... this.
9834 * old_pthread_cond_signal.c (__old_pthread_cond_signal):
9835 Renamed to...
9836 (__pthread_cond_signal_2_0): ... this.
9837 * old_pthread_cond_wait.c (__old_pthread_cond_wait):
9838 Renamed to...
9839 (__pthread_cond_wait_2_0): ... this.
9840 * pthread_cond_destroy.c: Include shlib-compat.h.
9841 (pthread_cond_destroy): Change strong_alias into versioned_symbol.
9842 * pthread_cond_init.c: Include shlib-compat.h.
9843 (pthread_cond_init): Change strong_alias into versioned_symbol.
9844 * pthreadP.h (struct pthread_functions): Rename ptr_pthread_cond_*
9845 fields to ptr___pthread_cond_* and add ptr___pthread_cond_*_2_0
9846 fields.
9847 (__pthread_cond_broadcast_2_0, __pthread_cond_destroy_2_0,
9848 __pthread_cond_init_2_0, __pthread_cond_signal_2_0,
9849 __pthread_cond_wait_2_0): New prototypes.
9850 (__old_pthread_cond_broadcast, __old_pthread_cond_destroy,
9851 __old_pthread_cond_init, __old_pthread_cond_signal,
9852 __old_pthread_cond_wait): Removed.
9853 * init.c: Include shlib-compat.h.
9854 (pthread_functions): Guard ptr___pthread_attr_init_2_0
9855 initialization with SHLIB_COMPAT (GLIBC_2_0, GLIBC_2_1).
9856 Rename ptr_pthread_cond_* to ptr___pthread_cond_*, initialize
9857 ptr___pthread_cond_*_2_0 fields.
9858 * forward.c: Export both pthread_cond_*@@GLIBC_2.3.2 and
9859 pthread_cond_*@GLIBC_2.0 compatibility symbols.
9860
9861 * sysdeps/pthread/sigaction.c (SIGCANCEL): Only define if
9862 LIBC_SIGACTION was not yet defined.
9863 [!defined LIBC_SIGACTION]: Define LIBC_SIGACTION, #include self.
9864 [!defined LIBC_SIGACTION] (__sigaction): New function and
9865 libc_hidden_weak.
9866 [!defined LIBC_SIGACTION] (sigaction): New weak_alias.
9867 [defined LIBC_SIGACTION]: #include_next <sigaction.c>.
9868
98692003-01-02 Jakub Jelinek <jakub@redhat.com>
9870
9871 * Makefile (CFLAGS-pthread_atfork.c): Add -DNOT_IN_libc.
9872
05df18c3
UD
98732003-01-02 Ulrich Drepper <drepper@redhat.com>
9874
9875 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_cond_t):
9876 New, larger type definition.
9877 * sysdeps/unix/sysv/linux/i386/i486/lowlevelcond.S: New condvar
9878 implementation.
9879 * Versions [libpthread]: Add definitions for new pthread_cond_*
9880 interfaces for version GLIBC_2.3.2.
9881 * pthread_cond_init.c: Update initialization for new type definition.
9882 * Makefile (libpthread-routines): Remove pthread_cond_wait,
9883 pthread_cond_timedwait, pthread_cond_signal, and
9884 pthread_cond_broadcast. Add old_pthread_cond_init,
9885 old_pthread_cond_destroy, old_pthread_cond_wait,
9886 old_pthread_cond_timedwait, old_pthread_cond_signal, and
9887 old_pthread_cond_broadcast.
9888 * old_pthread_cond_broadcast.c: New file.
9889 * old_pthread_cond_destroy.c: New file.
9890 * old_pthread_cond_init.c: New file.
9891 * old_pthread_cond_signal.c: New file.
9892 * old_pthread_cond_timedwait.c: New file.
9893 * old_pthread_cond_wait.c: New file.
9894 * pthreadP.h: Add prototypes for the compatibility interfaces.
9895
9896 * pthread_cond_destroy.c: Don't include <errno.h>.
9897
fd8979e4
UD
98982003-01-01 Ulrich Drepper <drepper@redhat.com>
9899
9900 * sysdeps/unix/sysv/linux/i386/i486/lowlevelrwlock.S: Avoid
9901 unnecessary zero offset when addressing MUTEX.
9902
6d6ee629
UD
99032002-12-31 Ulrich Drepper <drepper@redhat.com>
9904
9905 * sysdeps/unix/sysv/linux/fork.h: Add libc_hidden_proto for
9906 __register_atfork.
9907 * sysdeps/unix/sysv/linux/register-atfork.c: Add libc_hidden_def
9908 for __register_atfork.
9909
a4baf360
UD
99102002-12-31 Jakub Jelinek <jakub@redhat.com>
9911
9912 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Use __ASSEMBLER__
9913 instead of ASSEMBLER test macro.
9914
9915 * sysdeps/unix/sysv/linux/allocrtsig.c (__libc_current_sigrtmin,
9916 __libc_current_sigrtmax): Add libc_hidden_def.
9917
9918 * sysdeps/pthread/list.h: Remove assert.h include.
9919
e9395a94
UD
99202002-12-31 Ulrich Drepper <drepper@redhat.com>
9921
9922 * sysdeps/pthread/pt-initfini.c (call_initialize_minimal): Use
9923 __pthread_initialize_minimal_internal not
9924 __pthread_initialize_minimal.
9925
89d6e444
UD
99262002-12-30 Ulrich Drepper <drepper@redhat.com>
9927
416d2de6
UD
9928 * sysdeps/pthread/pt-initfini.c (call_initialize_minimal): Mark
9929 __pthread_initialize_minimal as hidden.
9930
89d6e444
UD
9931 * init.c (__pthread_initialize_minimal_internal): Don't mark as
9932 constructor.
9933
99342002-12-31 Jakub Jelinek <jakub@redhat.com>
9935
9936 * Makefile ($(inst_libdir)/libpthread.so): Depend on
9937 $(common-objpfx)format.lds, include that into the output script.
9938 Fix comment.
9939 (extra-B-pthread.so): Change linuxthreads/ into nptl/.
9940
8cac677c
UD
99412002-12-28 Andreas Jaeger <aj@suse.de>
9942
9943 * sysdeps/unix/sysv/linux/xstatconv.c (xstat_conv): Adjust for
9944 nsec resolution changes.
9945 (xstat64_conv): Likewise.
9946 (xstat32_conv): Likewise.
9947 * sysdeps/unix/sysv/linux/kernel_stat.h: Add nsec resolution for
9948 struct kernel_stat.
9949 * sysdeps/unix/sysv/linux/bits/stat.h: Add nsec resolution for
9950 structs stat and stat64.
9951 * time/time.h (__timespec_defined): Define for __USE_MISC.
89d6e444 9952 * io/sys/stat.h [__USE_MISC]: Define __need_timespec for struct stat.
8cac677c 9953
49e9f864
UD
99542002-12-30 Jakub Jelinek <jakub@redhat.com>
9955
9956 * forward.c (FORWARD2): Renamed from FORWARD3. Remove unused export
9957 argument.
9958 (pthread_attr_init_2_0, pthread_attr_init_2_1): Use FORWARD macro.
9959 (pthread_exit): Use strong_alias to avoid warnings.
9960 * pthreadP.h (struct pthread_functions): Rename ptr_pthread_exit
9961 and ptr_pthread_attr_init_2_* to ptr___pthread_exit and
9962 ptr___pthread_attr_init_2_*.
9963 * init.c (pthread_functions): Adjust.
9964
bab09b26
UD
99652002-12-29 Ulrich Drepper <drepper@redhat.com>
9966
598d7a42
UD
9967 * forward.c: Make all functions available by default again. It
9968 caused too much trouble.
9969
bab09b26
UD
9970 * pt-siglongjmp.c: Removed.
9971
3b7ed871
UD
99722002-12-28 Jakub Jelinek <jakub@redhat.com>
9973
9974 * sysdeps/i386/tls.h: Include tcb-offsets.h in assembler.
9975 (SYSINFO_OFFSET, MULTIPLE_THREADS_OFFSET): Remove.
9976 * sysdeps/i386/Makefile: New file.
9977 * sysdeps/i386/tcb-offsets.sym: New file.
9978 * sysdeps/pthread/tcb-offsets.h: New file.
9979 * sysdeps/unix/sysv/linux/libc_pthread_init.c (__libc_pthread_init):
9980 Remove MULTIPLE_THREADS_OFFSET and SYSINFO_OFFSET checks.
9981
9982 * sysdeps/unix/sysv/linux/Versions [libc] (GLIBC_PRIVATE): Move
9983 __register_atfork...
9984 (GLIBC_2.3.2): ...here.
9985
99862002-12-28 Ulrich Drepper <drepper@redhat.com>
9987
9988 * sysdeps/pthread/pthread.h: Mark pthread_attr_getstackaddr and
9989 pthread_attr_setstackaddr with __attribute_deprecated__.
9990
270d9d47
UD
99912002-12-27 Jakub Jelinek <jakub@redhat.com>
9992
9993 * pt-system.c (system): Remove cancellation handling.
9994 * tst-cancel-wrappers.sh: Allow pt-system.o* to not use the
9995 cancellation routines.
9996
131fd126
UD
99972002-12-28 Ulrich Drepper <drepper@redhat.com>
9998
afb2e954
UD
9999 * descr.h: Include <dl-sysdep.h>.
10000 (struct pthread): Move header.data.list to the back of the struct.
131fd126
UD
10001 * sysdeps/i386/tls.h (tcbhead_t): Move list to the back of the struct.
10002 (MULTIPLE_THREADS_OFFSET): Adjust offset.
10003 (SYSINFO_OFFSEET): Likewise.
10004
100052002-12-27 Jakub Jelinek <jakub@redhat.com>
10006
10007 * sysdeps/unix/sysv/linux/i386/i686/dl-sysdep.h (USE_DL_SYSINFO):
10008 Define.
10009 (DL_SYSINFO_DEFAULT): Cast to uintptr_t to avoid warnings.
10010 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h (NEED_DL_SYSINFO,
10011 DL_SYSINFO_DEFAULT, DL_SYSINFO_IMPLEMENTATION): Define.
10012 (USE_DL_SYSINFO): Undef.
10013
100142002-12-22 Jakub Jelinek <jakub@redhat.com>
10015
10016 * Makefile (tests-reverse): Use $(objpfx)../libc.so instead of
10017 $(common-objpfx)libc.so.
10018 * tst-cancel4.c (tf_write, tf_writev): Increase buf sizes so that
10019 it is bigger than pipe buffer size even on arches with bigger
10020 page size.
10021 (tf_usleep): Cast usleep argument to useconds_t to avoid warnings.
10022
a218c9cf
UD
100232002-12-25 Ulrich Drepper <drepper@redhat.com>
10024
10025 * sysdeps/unix/sysv/linux/i386/i486/lowlevelsem.S: Implement
10026 correct errno access for case that USE___THREAD is not defined.
10027
015a2dc9
UD
100282002-12-24 Ulrich Drepper <drepper@redhat.com>
10029
10030 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h: Add missing #endif.
10031 Patch by Marijn Ros <marijn@mad.scientist.com>.
10032
5220f9ac
RM
100332002-12-22 Roland McGrath <roland@redhat.com>
10034
10035 * Makefile (omit-deps): Add $(unix-syscalls:%=ptw-%).
10036
1561bf63
UD
100372002-12-20 Ulrich Drepper <drepper@redhat.com>
10038
10039 * sysdeps/pthread/bits/stdio-lock.h (_IO_lock_inexpensive): Define.
10040
3325198e
UD
100412002-12-19 Ulrich Drepper <drepper@redhat.com>
10042
057c823f
UD
10043 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h: Don't define
10044 NEED_DL_SYSINFO since no processor < i686 had the sysenter opcode.
10045 * sysdeps/unix/sysv/linux/i386/i686/dl-sysdep.h: New file.
10046
097eca29
UD
10047 * sysdeps/unix/sysv/linux/i386/pthread_once.S: Use ENTER_KERNEL instead
10048 of int $0x80.
10049 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Likewise.
10050 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevelmutex.S: Likewise.
10051 * sysdeps/unix/sysv/linux/i386/i486/lowlevelcond.S: Likewise.
10052 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Likewise.
10053 * sysdeps/unix/sysv/linux/i386/i486/lowlevelmutex.S: Likewise.
10054 * sysdeps/unix/sysv/linux/i386/i486/lowlevelrwlock.S: Likewise.
10055 * sysdeps/unix/sysv/linux/i386/i486/lowlevelsem.S: Likewise.
10056 * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S: Likewise.
10057
10058 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Add support for using
10059 sysenter.
10060 * sysdeps/unix/sysv/linux/i386/lowlevelsem.h: Likewise.
10061
10062 * sysdeps/i386/tls.h: Unconditionally include <dl-sysdep.h>.
10063
5f5843e3
UD
10064 * allocatestack.c (allocate_stack) [NEED_DL_SYSINFO]: Set sysinfo
10065 in new TCB.
10066 * sysdeps/unix/sysv/linux/i386/createthread.c (create_thread): Check
10067 that sysinfo is properly initialized.
10068 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h: Define RTLD_PRIVATE_ERRNO
10069 to 1 only for ld.so.
10070
3325198e
UD
10071 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h: Define
10072 RTLD_CORRECT_DYNAMIC_WEAK.
10073
74e8f2dc
UD
100742002-12-19 Jakub Jelinek <jakub@redhat.com>
10075
10076 * forward.c (pthread_attr_init_2_0, pthread_attr_init_2_1):
10077 Use return 0 as 6th argument to FORWARD4.
10078 * pthread_equal.c: Include pthreadP.h instead of pthread.h.
10079
df45b31e
UD
100802002-12-18 Ulrich Drepper <drepper@redhat.com>
10081
10082 * descr.h (struct pthread) [NEED_DL_SYSINFO]: Add sysinfo member.
10083 * sysdeps/i386/tls.h (tcbhead_t): Add sysinfo member.
10084 Define SYSINFO_OFFSEET if NEED_DL_SYSINFO is defined.
10085 (INIT_SYSINFO): New #define.
10086 (TLS_TP_INIT): Use INIT_SYSINFO.
10087 * sysdeps/unix/sysv/linux/libc_pthread_init.c (__libc_pthread_init):
10088 At test to make sure SYSINFO_OFFSET value is correct.
10089 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h: New file.
10090
3d539579
UD
100912002-12-18 Jakub Jelinek <jakub@redhat.com>
10092
10093 * sysdeps/pthread/flockfile.c (flockfile): Change into weak alias.
10094 * sysdeps/unix/sysv/linux/raise.c (gsignal): Add weak alias to raise.
10095 * Versions [libc: GLIBC_2.0]: Add pthread_attr_init.
10096 [libpthread: GLIBC_2.1]: Remove __pthread_rwlock_init,
10097 __pthread_rwlock_destroy, __pthread_rwlock_rdlock,
10098 __pthread_rwlock_wrlock, __pthread_rwlock_unlock,
10099 __pthread_rwlock_tryrdlock and __pthread_rwlock_trywrlock.
10100
d7913e0e
UD
101012002-12-18 Ulrich Drepper <drepper@redhat.com>
10102
f051627f
UD
10103 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Use ENTER_KERNEL
10104 macro instead of using int $0x80 directly.
10105
d7913e0e
UD
10106 * sysdeps/pthread/bits/stdio-lock.h: New file.
10107 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevelmutex.S: New file.
10108 * sysdeps/unix/sysv/linux/i386/i586/libc-lowlevelmutex.S: New file.
10109 * sysdeps/unix/sysv/linux/i386/i686/libc-lowlevelmutex.S: New file.
10110 * Makefile (routines): Add libc-lowlevelmutex.
10111
10112 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Remove
10113 __i686.get_pc_thunk.dx.
10114
f077a4a9
UD
101152002-12-17 Jakub Jelinek <jakub@redhat.com>
10116
10117 * Makefile (libpthread-shared-only-routines): Add pt-allocrtsig.
10118 (tests): Depend on $(objpfx)tst-cancel-wrappers.out.
10119 ($(objpfx)tst-cancel-wrappers.out): New rule.
10120 * tst-cancel-wrappers.sh: New test.
10121 * tst-locale1.c: Include signal.h.
10122 (uselocale): Test static linking of __libc_current_sigrt*.
10123
101242002-12-17 Ulrich Drepper <drepper@redhat.com>
10125
10126 * Makefile (tests): Add tst-cancel6.
10127 * tst-cancel6.c: New file
10128
bd499a3b
UD
101292002-12-17 Jakub Jelinek <jakub@redhat.com>
10130
10131 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h (SINGLE_THREAD_P):
10132 Define meaningfully for assembler as well.
10133 * pthreadP.h (struct pthread_functions): Remove
10134 ptr_pthread_attr_init field. Add ptr_pthread_attr_init_2_0
10135 and ptr_pthread_attr_init_2_1 fields.
10136 * init.c (pthread_functions): Initialize ptr_pthread_attr_init_2_0
10137 and ptr_pthread_attr_init_2_1 instead of ptr_pthread_attr_init.
10138 * forward.c (FORWARD4): Renamed from FORWARD3. Add export argument.
10139 (FORWARD3): Define using FORWARD4.
10140 (pthread_attr_init): Provide both @GLIBC_2.0 and @@GLIBC_2.1
10141 versions.
10142 * pt-system.c: Remove duplicate stdlib.h include.
10143
0a1063f4
UD
101442002-12-16 Ulrich Drepper <drepper@redhat.com>
10145
87d60668
UD
10146 * sem_init.c: Define sem_init@GLIBC_2.0.
10147 * sem_destroy.c: Define sem_destroy@GLIBC_2.0.
10148 * sem_getvalue.c: Define sem_getvalue@GLIBC_2.0.
10149
0a1063f4
UD
10150 * flockfile.c: Moved to...
10151 * sysdeps/pthread/flockfile.c: ...here. New file.
10152 * funlockfile.c: Moved to...
10153 * sysdeps/pthread/funlockfile.c: ...here. New file.
10154 * ftrylockfile.c: Moved to...
10155 * sysdeps/pthread/ftrylockfile.c: ...here. New file.
10156
9634cf9d
UD
101572002-12-16 Jakub Jelinek <jakub@redhat.com>
10158
10159 * libc-cancellation.c: Guard both function with
10160 #if !defined NOT_IN_libc.
10161 * Makefile (libpthread-routines): Use ptw-, not pt- prefix for the
10162 automatically provided pthread wrappers.
10163 * pthreadP.h (LIBC_CANCEL_ASYNC, LIBC_CANCEL_RESET): Define to
10164 CANCEL_* if IS_IN_libpthread and to dummy versions if not in libc
10165 nor in libpthread.
10166 * pt-open.c: Removed.
10167 * pt-fcntl.c: Removed.
10168 * pt-fsync.c: Removed.
10169 * pt-lseek.c: Removed.
10170 * pt-msgrcv.c: Removed.
10171 * pt-msgsnd.c: Removed.
10172 * pt-msync.c: Removed.
10173 * pt-nanosleep.c: Removed.
10174 * pt-open64.c: Removed.
10175 * pt-pause.c: Removed.
10176 * pt-pread.c: Removed.
10177 * pt-pread64.c: Removed.
10178 * pt-pwrite.c: Removed.
10179 * pt-pwrite64.c: Removed.
10180 * pt-read.c: Removed.
10181 * pt-recv.c: Removed.
10182 * pt-recvfrom.c: Removed.
10183 * pt-recvmsg.c: Removed.
10184 * pt-send.c: Removed.
10185 * pt-sendto.c: Removed.
10186 * pt-sigtimedwait.c: Removed.
10187 * pt-sigwait.c: Removed.
10188 * pt-wait.c: Removed.
10189 * pt-waitpid.c: Removed.
10190 * pt-write.c: Removed.
10191 * pt-accept.c: Removed.
10192 * pt-close.c: Removed.
10193 * pt-connect.c: Removed.
10194 * pt-lseek64.c: Removed.
10195 * pt-sendmsg.c: Removed.
10196 * pt-tcdrain.c: Removed.
10197
6ee8d334
UD
101982002-12-15 Ulrich Drepper <drepper@redhat.com>
10199
81fa9371
UD
10200 * init.c (__pthread_initialize_minimal_internal): Renamed from
10201 __pthread_initialize_minimal. Make old name an alias. This
10202 converts a normal relocation into a relative relocation.
10203
f3015aa5
UD
10204 * pt-fcntl.c (__fcntl): Use fcntl64 syscall, not fcntl.
10205
4cbc1950
UD
10206 * Versions [libpthread: GLIBC_2.3.2]: Remove creat, poll, pselect,
10207 readv, select, sigpause, sigsuspend, sigwaitinfo, waitid, writev.
10208 * Makefile (libpthread-routines): Remove pt-creat, pt-poll,
10209 pt-pselect, pt-readv, pt-select, pt-sigpause, pt-sigsuspend,
10210 pt-sigwaitinfo, pt-waitid, and pt-writev.
10211 * pt-creat.c: Removed.
10212 * pt-poll.c: Removed.
10213 * pt-pselect.c: Removed.
10214 * pt-readv.c: Removed.
10215 * pt-select.c: Removed.
10216 * pt-sigpause.c: Removed.
10217 * pt-sigsuspend.c: Removed.
10218 * pt-sigwaitinfo.c: Removed.
10219 * pt-waitid.c: Removed.
10220 * pt-writev.c: Removed.
10221
8454830b
UD
10222 * init.c (pthread_functions): New variable.
10223 (__pthread_initialize_minimal): Pass pointer to pthread_functions
10224 (or NULL) to __libc_pthread_init.
10225 * forward.c: Rewrite to use __libc:pthread_functions array to get
10226 function addresses.
10227 * sysdeps/unix/sysv/linux/fork.h: Remove __libc_pthread_init
10228 prototype.
10229 * sysdeps/unix/sysv/linux/libc_pthread_init.c (__libc_pthread_init):
10230 Take new parameter. Copy content of variable pointed to by it
10231 to __libc_pthread_init.
10232
10233 * pthreadP.h (struct pthread_functions): New type.
10234 (__libc_pthread_init): Declare.
10235
10236 * pthread_attr_destroy.c: Add namespace protected alias.
10237 * pthread_attr_getdetachstate.c: Likewise.
10238 * pthread_attr_getinheritsched.c: Likewise.
10239 * pthread_attr_getschedparam.c: Likewise.
10240 * pthread_attr_getschedpolicy.c: Likewise.
10241 * pthread_attr_getscope.c: Likewise.
10242 * pthread_attr_setdetachstate.c: Likewise.
10243 * pthread_attr_setinheritsched.c: Likewise.
10244 * pthread_attr_setschedparam.c: Likewise.
10245 * pthread_attr_setschedpolicy.c: Likewise.
10246 * pthread_attr_setscope.c: Likewise.
10247 * pthread_cond_broadcast.c: Likewise.
10248 * pthread_cond_destroy.c: Likewise.
10249 * pthread_cond_init.c: Likewise.
10250 * pthread_cond_signal.c: Likewise.
10251 * pthread_cond_wait.c: Likewise.
10252 * pthread_condattr_destroy.c: Likewise.
10253 * pthread_condattr_init.c: Likewise.
10254 * pthread_equal.c: Likewise.
10255 * pthread_exit.c: Likewise.
10256 * pthread_getschedparam.c: Likewise.
10257 * pthread_self.c: Likewise.
10258 * pthread_setcancelstate.c: Likewise.
10259 * pthread_setschedparam.c: Likewise.
10260 * pthread_mutex_destroy.c: Likewise.
10261 * pthread_mutex_init.c: Likewise.
10262 * pthreadP.h: Add prototypes for the aliases.
10263
0d5f4929
UD
10264 * sysdeps/unix/sysv/linux/i386/createthread.c (create_thread): Set
10265 multiple_threads member in correct TCB to 1.
10266
6ee8d334
UD
10267 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Define
10268 SINGLE_THREAD_P. If in libc or libpthread examine multiple_thread
10269 member of thread decriptor, otherwise return unconditionally 1.
10270
2fb6444d
UD
102712002-12-14 Ulrich Drepper <drepper@redhat.com>
10272
10273 * sysdeps/unix/sysv/linux/i386/pt-socket.S: Changes folded into the
10274 regular Linux version. Remove file.
10275 * sysdeps/unix/sysv/linux/connect.S: Likewise. Remove file.
10276 * sysdeps/unix/sysv/linux/llseek.c: Likewise. Remove file.
10277 * sysdeps/unix/sysv/linux/msgrcv.c: Likewise. Remove file.
10278 * sysdeps/unix/sysv/linux/msgsnd.c: Likewise. Remove file.
10279 * sysdeps/unix/sysv/linux/open64.c: Likewise. Remove file.
10280 * sysdeps/unix/sysv/linux/poll.c: Likewise. Remove file.
10281 * sysdeps/unix/sysv/linux/pread.c: Likewise. Remove file.
10282 * sysdeps/unix/sysv/linux/pread64.c: Likewise. Remove file.
10283 * sysdeps/unix/sysv/linux/pselect.c: Likewise. Remove file.
10284 * sysdeps/unix/sysv/linux/pwrite.c: Likewise. Remove file.
10285 * sysdeps/unix/sysv/linux/pwrite64.c: Likewise. Remove file.
10286 * sysdeps/unix/sysv/linux/readv.c: Likewise. Remove file.
10287 * sysdeps/unix/sysv/linux/recv.S: Likewise. Remove file.
10288 * sysdeps/unix/sysv/linux/recvfrom.S: Likewise. Remove file.
10289 * sysdeps/unix/sysv/linux/recvmsg.S: Likewise. Remove file.
10290 * sysdeps/unix/sysv/linux/send.S: Likewise. Remove file.
10291 * sysdeps/unix/sysv/linux/sendmsg.S: Likewise. Remove file.
10292 * sysdeps/unix/sysv/linux/sendto.S: Likewise. Remove file.
10293 * sysdeps/unix/sysv/linux/sigpause.c: Likewise. Remove file.
10294 * sysdeps/unix/sysv/linux/sigsuspend.c: Likewise. Remove file.
10295 * sysdeps/unix/sysv/linux/sigtimedwait.c: Likewise. Remove file.
10296 * sysdeps/unix/sysv/linux/sigwait.c: Likewise. Remove file.
10297 * sysdeps/unix/sysv/linux/sigwaitinfo.c: Likewise. Remove file.
10298 * sysdeps/unix/sysv/linux/system.c: Likewise. Remove file.
10299 * sysdeps/unix/sysv/linux/tcdrain.c: Likewise. Remove file.
10300 * sysdeps/unix/sysv/linux/wait.c: Likewise. Remove file.
10301 * sysdeps/unix/sysv/linux/waitid.c: Likewise. Remove file.
10302 * sysdeps/unix/sysv/linux/waitpid.c: Likewise. Remove file.
10303 * sysdeps/unix/sysv/linux/writev.c: Likewise. Remove file.
10304 * sysdeps/unix/sysv/linux/i386/fcntl.c: Likewise. Remove file.
10305
86b2dc40
UD
103062002-12-14 Jakub Jelinek <jakub@redhat.com>
10307
10308 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: New file.
10309 * sysdeps/unix/sysv/linux/open.c: Removed.
10310 * sysdeps/unix/sysv/linux/fsync.c: Removed.
10311 * sysdeps/unix/sysv/linux/lseek.c: Removed.
10312 * sysdeps/unix/sysv/linux/msync.c: Removed.
10313 * sysdeps/unix/sysv/linux/read.c: Removed.
10314 * sysdeps/unix/sysv/linux/close.c: Removed.
10315 * sysdeps/unix/sysv/linux/creat.c: Removed.
10316 * sysdeps/unix/sysv/linux/nanosleep.c: Removed.
10317 * sysdeps/unix/sysv/linux/pause.c: Removed.
10318 * sysdeps/unix/sysv/linux/select.c: Removed.
10319 * sysdeps/unix/sysv/linux/write.c: Removed.
10320
9d263d72
UD
103212002-12-14 Ulrich Drepper <drepper@redhat.com>
10322
10323 * sysdeps/unix/sysv/linux/i386/pt-socket.S: Check multiple_threads
10324 element in TCB to see whether locking is needed.
10325
10326 * sysdeps/unix/sysv/linux/libc_pthread_init.c: Check that
10327 MULTIPLE_THREADS_OFFSET value is correct.
10328
10329 * sysdeps/unix/sysv/linux/close.c: New file.
10330 * sysdeps/unix/sysv/linux/connect.S: New file.
10331 * sysdeps/unix/sysv/linux/creat.c: New file.
10332 * sysdeps/unix/sysv/linux/fsync.c: New file.
10333 * sysdeps/unix/sysv/linux/llseek.c: New file.
10334 * sysdeps/unix/sysv/linux/lseek.c: New file.
10335 * sysdeps/unix/sysv/linux/msgrcv.c: New file.
10336 * sysdeps/unix/sysv/linux/msgsnd.c: New file.
10337 * sysdeps/unix/sysv/linux/msync.c: New file.
10338 * sysdeps/unix/sysv/linux/nanosleep.c: New file.
10339 * sysdeps/unix/sysv/linux/open.c: New file.
10340 * sysdeps/unix/sysv/linux/open64.c: New file.
10341 * sysdeps/unix/sysv/linux/pause.c: New file.
10342 * sysdeps/unix/sysv/linux/poll.c: New file.
10343 * sysdeps/unix/sysv/linux/pread.c: New file.
10344 * sysdeps/unix/sysv/linux/pread64.c: New file.
10345 * sysdeps/unix/sysv/linux/pselect.c: New file.
10346 * sysdeps/unix/sysv/linux/pwrite.c: New file.
10347 * sysdeps/unix/sysv/linux/pwrite64.c: New file.
10348 * sysdeps/unix/sysv/linux/readv.c: New file.
10349 * sysdeps/unix/sysv/linux/recv.S: New file.
10350 * sysdeps/unix/sysv/linux/recvfrom.S: New file.
10351 * sysdeps/unix/sysv/linux/recvmsg.S: New file.
10352 * sysdeps/unix/sysv/linux/select.c: New file.
10353 * sysdeps/unix/sysv/linux/send.S: New file.
10354 * sysdeps/unix/sysv/linux/sendmsg.S: New file.
10355 * sysdeps/unix/sysv/linux/sendto.S: New file.
10356 * sysdeps/unix/sysv/linux/sigpause.c: New file.
10357 * sysdeps/unix/sysv/linux/sigsuspend.c: New file.
10358 * sysdeps/unix/sysv/linux/sigtimedwait.c: New file.
10359 * sysdeps/unix/sysv/linux/sigwait.c: New file.
10360 * sysdeps/unix/sysv/linux/sigwaitinfo.c: New file.
10361 * sysdeps/unix/sysv/linux/system.c: New file.
10362 * sysdeps/unix/sysv/linux/tcdrain.c: New file.
10363 * sysdeps/unix/sysv/linux/wait.c: New file.
10364 * sysdeps/unix/sysv/linux/waitid.c: New file.
10365 * sysdeps/unix/sysv/linux/waitpid.c: New file.
10366 * sysdeps/unix/sysv/linux/writev.c: New file.
10367 * sysdeps/unix/sysv/linux/i386/fcntl.c: New file.
10368
10369 * pt-readv.c: Fix comment.
10370
103712002-12-14 Jakub Jelinek <jakub@redhat.com>
10372
10373 * tst-cleanup1.c: Include stdlib.h.
10374
10375 * tst-cancel5.c: New test.
10376 * Makefile (tests): Add tst-cancel5.
10377 (tst-cancel5): Link against libc.so libpthread.so in that order.
10378
9ae0909b
UD
103792002-12-13 Ulrich Drepper <drepper@redhat.com>
10380
b7bdd9c4
UD
10381 * forward.c (test_loaded): Prevent recursive calls.
10382
9ae0909b
UD
10383 * Makefile (routines): Add libc-cancellation.
10384 * libc-cancellation.c: New file.
10385 * descr.h (struct pthread): Add multiple_threads field.
10386 * allocatestack.c (allocate_stack): Initialize multiple_header field of
10387 new thread descriptor to 1.
10388 * sysdeps/unix/sysv/linux/i386/createthread.c (create_thread):
10389 Initialize multiple_thread field after successful thread creation.
10390 * cancellation.c (__do_cancel): Move to pthreadP.h.
10391 (__pthread_enable_asynccancel): Remove parameter from __do_cancel call.
10392 (__pthread_disable_asynccancel): Add internal_function attribute.
10393 * init.c (sigcancel_handler): Remove parameter from __do_cancel call.
10394 * pthread_setcancelstate.c: Likewise.
10395 * pthread_setcanceltype.c: Likewise.
10396 * pthread_exit.c: Likewise.
10397 * pthreadP.h (CANCELLATION_P): Likewise.
10398 (__do_cancel): Define as static inline.
10399 (LIBC_CANCEL_ASYNC, LIBC_CANCEL_RESET): New #defines.
10400 (__libc_enable_asynccancel, __libc_disable_asynccancel): New
10401 declarations.
10402 * sysdeps/i386/tls.h (tcbhead_t): Add list and multiple_threads
10403 fields. Define MULTIPLE_THREADS_OFFSET.
10404 * sysdeps/pthread/bits/libc-lock.h: Remove __libc_locking_needed
10405 declaration.
10406 * sysdeps/unix/sysv/linux/accept.S: New file.
10407 * sysdeps/unix/sysv/linux/read.c: New file.
10408 * sysdeps/unix/sysv/linux/write.c: New file.
10409 * sysdeps/unix/sysv/linux/i386/pt-socket.S: New file.
10410 * sysdeps/unix/sysv/linux/libc_pthread_init.c: Remove definition and
10411 initialization of __libc_locking_needed.
10412 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Don't use
10413 __libc_locking_needed, use multiple_threads field in TCB.
10414 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Likewise.
10415
22f20674
UD
104162002-12-12 Ulrich Drepper <drepper@redhat.com>
10417
2ad2e1e7
UD
10418 * sysdeps/unix/sysv/linux/i386/i686/libc-lowlevellock.S: Use i486
10419 version.
10420 * sysdeps/unix/sysv/linux/i386/i586/libc-lowlevellock.S: Likewise.
10421
22f20674
UD
10422 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Correct
10423 access to __libc_locking_needed for PIC.
10424
aa80bf86
UD
104252002-12-12 Jakub Jelinek <jakub@redhat.com>
10426
10427 * sysdeps/pthread/bits/libc-lock.h (__libc_locking_needed): Only
10428 declare for libc.so.
10429 (__libc_lock_init, __libc_lock_init_recursive): Change into comma
10430 expression.
10431 (__libc_lock_lock): Put into statement expression.
10432 (__libc_lock_unlock): Remove trailing semicolon.
10433 * sysdeps/unix/sysv/linux/fork.h (__libc_pthread_init): Fix typo.
10434
24021373
RM
104352002-12-12 Roland McGrath <roland@redhat.com>
10436
10437 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Use asm operand with
10438 "m" constraint to refer to __libc_locking_needed. Declare it here.
10439
14e7aece
UD
104402002-12-12 Ulrich Drepper <drepper@redhat.com>
10441
10442 * sysdeps/unix/sysv/linux/fork-gen.c: Renamed to...
10443 * sysdeps/unix/sysv/linux/libc_pthread_init.c: ...this.
10444 Initialize __libc_locking_needed.
10445 * init.c (__pthread_initialize_minimal): Call __libc_pthread_init
10446 instead of __register_pthread_fork_handler.
10447 * sysdeps/pthread/bits/libc-lock.h: Declare __libc_locking_needed.
10448 * sysdeps/unix/sysv/linux/Makefile (sysdep_routimes): Replace
10449 fork-gen with libc_pthread_init.
10450 * sysdeps/unix/sysv/linux/Versions: Use __libc_pthread_init instead
10451 of __register_pthread_fork_handler.
10452 * sysdeps/unix/sysv/linux/fork.h: Declare __libc_pthread_init instead
10453 of __register_pthread_fork_handler.
10454 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Use
10455 __libc_locking_needed to determine whether lock prefix can be avoided.
10456 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Likewise.
10457
85631c8e
UD
104582002-12-11 Ulrich Drepper <drepper@redhat.com>
10459
da63009e
UD
10460 * Makefile (tests): Add tst-cleanup1.
10461 * tst-cleanup1.c: New file.
10462 * cancellation.c (__cleanup_thread): Removed.
10463 (__do_cancel): Remove call to __cleanup_thread.
10464 * pthreadP.h: Remove __cleanup_thread prorotype.
10465
000160a2
UD
10466 * sysdeps/pthread/bits/libc-lock.h (__libc_cleanup_region_start):
10467 Remember function and argument even if cancellation handler
10468 function is not available.
10469 (__libc_cleanup_region_end): Execute registered function directly if
10470 pthread functions are not available.
10471 (__libc_cleanup_end): Likewise.
10472
85631c8e
UD
10473 * init.c (__pthread_initialize_minimal): Fix initialization in
10474 static lib by preventing gcc from being too clever.
10475
dce8f2b6
UD
104762002-12-10 Ulrich Drepper <drepper@redhat.com>
10477
34a075be
UD
10478 * init.c (__pthread_initialize_minimal): Remove unneccesary
10479 sigaddset call.
10480
dce8f2b6
UD
10481 * Makefile (tests): We can run tst-locale2 now.
10482
e5e45b53
UD
104832002-12-09 Ulrich Drepper <drepper@redhat.com>
10484
10485 * Versions: Remove duplicated sigwait entry.
10486
bdb04f92
UD
104872002-12-08 Ulrich Drepper <drepper@redhat.com>
10488
1e506629
UD
10489 * pthreadP.h: Enable pthread_cleanup_{push,pop} optimizations only
10490 inside libpthread.
10491
a3957dd5
UD
10492 * pt-fcntl.c (__fcntl): Initialize oldtype to avoid warning.
10493
bdb04f92
UD
10494 * pthreadP.h: Declare __pthread_enable_asynccancel and
10495 __pthread_disable_asynccancel.
10496 (CANCEL_ASYNC): Use __pthread_enable_asynccancel.
10497 (CANCEL_RESET): Use __pthread_disable_asynccancel.
10498 * cancellation.c (__pthread_enable_asynccancel): New function.
10499 (__pthread_disable_asynccancel): New function.
10500 * pt-accept.c: Adjust for CANCEL_ASYNC and CANCEL_RESET change.
10501 * pt-close.c: Likewise.
10502 * pt-connect.c: Likewise.
10503 * pt-creat.c: Likewise.
10504 * pt-fcntl.c: Likewise.
10505 * pt-fsync.c: Likewise.
10506 * pt-lseek.c: Likewise.
10507 * pt-lseek64.c: Likewise.
10508 * pt-msgrcv.c: Likewise.
10509 * pt-msgsnd.c: Likewise.
10510 * pt-msync.c: Likewise.
10511 * pt-nanosleep.c: Likewise.
10512 * pt-open.c: Likewise.
10513 * pt-open64.c: Likewise.
10514 * pt-pause.c: Likewise.
10515 * pt-poll.c: Likewise.
10516 * pt-pread.c: Likewise.
10517 * pt-pread64.c: Likewise.
10518 * pt-pselect.c: Likewise.
10519 * pt-pwrite.c: Likewise.
10520 * pt-pwrite64.c: Likewise.
10521 * pt-read.c: Likewise.
10522 * pt-readv.c: Likewise.
10523 * pt-recv.c: Likewise.
10524 * pt-recvfrom.c: Likewise.
10525 * pt-recvmsg.c: Likewise.
10526 * pt-select.c: Likewise.
10527 * pt-send.c: Likewise.
10528 * pt-sendmsg.c: Likewise.
10529 * pt-sendto.c: Likewise.
10530 * pt-sigpause.c: Likewise.
10531 * pt-sigsuspend.c: Likewise.
10532 * pt-sigtimedwait.c: Likewise.
10533 * pt-sigwait.c: Likewise.
10534 * pt-sigwaitinfo.c: Likewise.
10535 * pt-system.c: Likewise.
10536 * pt-tcdrain.c: Likewise.
10537 * pt-wait.c: Likewise.
10538 * pt-waitid.c: Likewise.
10539 * pt-waitpid.c: Likewise.
10540 * pt-write.c: Likewise.
10541 * pt-writev.c: Likewise.
a3957dd5
UD
10542 * pthread_join.c: Likewise.
10543 * pthread_timedjoin.c: Likewise.
bdb04f92
UD
10544
10545 * pt-sigpause.c (sigsuspend): Call __sigsuspend.
10546 (__xpg_sigpause): New function.
10547 * Versions (libpthread:GLIBC_2.3.2): Add __xpg_sigpause.
10548
6ccb3834
UD
105492002-12-07 Ulrich Drepper <drepper@redhat.com>
10550
09efc3ba
UD
10551 * Makefile (CFLAGS-ftrylockfile.c): Add -D_IO_MTSAFE_IO.
10552
10553 * cleanup.c: Move declarations of _GI_pthread_cleanup_push and
10554 _GI_pthread_cleanup_pop to pthreadP.h.
10555
10556 * ftrylockfile.c: Use _IO_lock_trylock instead of
10557 pthread_mutex_trylock.
10558
10559 * pthreadP.h (CANCEL_ASYNC): Use __pthread_setcanceltype.
10560 (CANCEL_RESET): Likewise.
10561 (__pthread_setcanceltype_): Declare.
10562 (__pthread_mutex_lock_internal): Declare.
10563 (__pthread_mutex_unlock_internal): Declare.
10564 (__pthread_once_internal): Declare.
10565 (pthread_cleanup_push): Redefine using _GI_pthread_cleanup_push.
10566 (pthread_cleanup_pop): Redefine using _GI_pthread_cleanup_pop.
10567
10568 * pthread_cond_timedwait.c: Use INTUSE is calls to pthread_mutex_lock
10569 and pthread_mutex_unlock.
10570 * pthread_cond_wait.c: Likewise.
10571 * pthread_mutex_lock.c: Use INTDEF to define alias if needed.
10572 * pthread_mutex_unlock.c: Likewise.
10573
10574 * pthread_setcanceltype.c: Add additional alias
10575 __pthread_setcanceltype.
10576
10577 * sem_unlink.c (sem_unlink): Use __pthread_once with INTDEF.
10578 * sem_open.c (sem_open): Likewise.
10579 Use __libc_open, __libc_write, and __libc_close instead of
10580 open, write, and close respectively.
10581
10582 * sysdeps/pthread/bits/libc-lock.h (__libc_lock_trylock_internal):
10583 Rewrite as statement expression since it must return a value.
10584
10585 * pthread_cancel.c: Use __pthread_kill instead of pthread_kill.
10586 * sysdeps/unix/sysv/linux/pthread_kill.c: Define additional alias
10587 __pthread_kill.
10588
10589 * sysdeps/unix/sysv/linux/i386/pthread_once.S: Define additional
10590 alias __pthread_once_internal.
10591
6ccb3834
UD
10592 * sysdeps/unix/sysv/linux/raise.c: Use libc_hidden_def for raise.
10593
d3c9f895
UD
105942002-12-06 Ulrich Drepper <drepper@redhat.com>
10595
4614167a
UD
10596 * Makefile (tests): Add tst-stdio1 and tst-stdio2.
10597 * tst-stdio1.c: New file.
10598 * tst-stdio2.c: New file.
10599
a4548cea
UD
10600 * init.c (__pthread_initialize_minimal): Correct INIT_LIST_HEAD use.
10601
d3c9f895
UD
10602 * Makefile (tests): Comment out tst-locale2 for now.
10603 (CFLAGS-flockfile.c, CFLAGS-funlockfile.c): Define to -D_IO_MTSAFE_IO.
10604
10605 * sysdeps/unix/sysv/linux/Makefile: Define CFLAGS-fork.c to
10606 -D_IO_MTSAFE_IO.
10607 * sysdeps/unix/sysv/linux/fork.c: Include <bits/stdio-lock.h>.
10608 Use _IO_lock_init instead of explicit assignment.
10609
10610 * sysdeps/pthread/bits/libc-lock.h: Define __rtld_lock_* macros.
10611 Define __libc_lock_* and __libc_lock_recursive macros with
10612 lowlevellock macros, not pthread mutexes.
10613
10614 * flockfile.c: Include <bits/stdio-lock.h>. Use _IO_lock_lock instead
10615 of pthread_mutex_lock.
10616 * funlockfile.c: Include <bits/stdio-lock.h>. Use _IO_lock_unlock
10617 instead of pthread_mutex_unlock.
10618
fde89ad0
RM
106192002-12-06 Roland McGrath <roland@redhat.com>
10620
10621 * allocatestack.c (__stack_user): Use uninitialized defn.
10622 * init.c (__pthread_initialize_minimal): Initialize it here.
10623
11767d47
RM
106242002-12-05 Roland McGrath <roland@redhat.com>
10625
fde89ad0
RM
10626 * sysdeps/i386/tls.h (TLS_INIT_TP): Make it return zero or an error
10627 string.
10628 * sysdeps/x86_64/tls.h (TLS_INIT_TP): Likewise.
10629
11767d47
RM
10630 * sysdeps/unix/sysv/linux/i386/createthread.c (create_thread): Add
10631 missing & here too.
10632
440d8bc2
UD
106332002-12-05 Ulrich Drepper <drepper@redhat.com>
10634
10635 * sysdeps/unix/sysv/linux/Makefile (sysdep_routines): Remove
10636 lowlevellock.
10637 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: New file.
10638 * sysdeps/unix/sysv/linux/i386/i586/libc-lowlevellock.S: New file.
10639 * sysdeps/unix/sysv/linux/i386/i686/libc-lowlevellock.S: New file.
10640 * sysdeps/pthread/bits/libc-lock.h: Use lowlevellock implementation
10641 for __libc_lock_* macros.
10642 * Makefile (routines): Add libc-lowlevellock.
10643
106442002-10-09 Roland McGrath <roland@redhat.com>
10645
10646 * sysdeps/pthread/bits/libc-lock.h (__libc_maybe_call): New macro.
10647 Under [__PIC__], call the function via the pointer fetched for
10648 comparison rather than a call by name that uses the PLT.
10649 (__libc_lock_init, __libc_rwlock_init, __libc_lock_fini)
10650 (__libc_rwlock_fini, __libc_lock_lock, __libc_rwlock_rdlock)
10651 (__libc_rwlock_wrlock, __libc_lock_trylock, __libc_rwlock_tryrdlock)
10652 (__libc_rwlock_trywrlock, __libc_lock_unlock, __libc_rwlock_unlock)
10653 (__libc_key_create, __libc_getspecific, __libc_setspecific): Use it.
10654
d5ed0118
RM
106552002-12-04 Roland McGrath <roland@redhat.com>
10656
10657 * forward.c (pthread_self): Use FORWARD3 macro to correct return type.
10658
10659 * sysdeps/i386/td_ta_map_lwp2thr.c: Moved from ../nptl_db.
10660 * sysdeps/generic/td_ta_map_lwp2thr.c: New file.
10661
10662 * pthread_create.c (start_thread): Add missing & on __nptl_last_event.
10663
eaa4099f
UD
106642002-12-04 Ulrich Drepper <drepper@redhat.com>
10665
10666 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Make pthread_t
10667 a completely opaque, non-integer type.
10668 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
10669
33b5d0cc
UD
106702002-12-05 Jakub Jelinek <jakub@redhat.com>
10671
10672 * sysdeps/i386/tls.h: Include stdlib.h.
10673 * sysdeps/x86_64/tls.h: Likewise.
10674
7a5cdb30
UD
106752002-12-04 Ulrich Drepper <drepper@redhat.com>
10676
c4a6d859
UD
10677 * Makefile (tests): Add tst-locale2.
10678 (tests-static): Likewise.
10679 * tst-locale2.c: New file.
10680
7a5cdb30
UD
10681 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Mark asms as
10682 volatile and add memory clobbers to lock operations.
10683
d82d5d12
UD
106842002-12-03 Ulrich Drepper <drepper@redhat.com>
10685
69cae3cf
UD
10686 * sysdeps/i386/i686/bits/atomic.h: Use i486 version.
10687 * sysdeps/i386/i486/bits/atomic.h: New file.
10688 * sysdeps/i386/i586/bits/atomic.h: New file.
10689 * sysdeps/i386/i686/pthread_spin_trylock.S: Define HAVE_CMOV and
10690 include i486 version.
10691 * sysdeps/i386/i486/pthread_spin_trylock.S: New file.
10692 * sysdeps/i386/i586/pthread_spin_trylock.S: New file.
c97c64de 10693 Patch by Marijn Ros <marijn@mad.scientist.com>.
69cae3cf 10694
e4044c01
UD
10695 * allocatestack.c (get_cached_stack): Don't crash if we first
10696 found a stack with a larger size then needed.
10697 Reported by Hui Huang <hui.huang@sun.com>.
10698
d82d5d12
UD
10699 * Makefile (tests): Add tst-sysconf.
10700 * tst-sysconf.c: New file.
10701
10702 * sysdeps/unix/sysv/linux/bits/local_lim.h: Undefine
10703 PTHREAD_THREADS_MAX.
10704
fa9a4ff0
RM
107052002-12-02 Roland McGrath <roland@redhat.com>
10706
10707 * pthreadP.h (__stack_user, __nptl_create_event, __nptl_death_event):
10708 Declare using hidden_proto instead of attribute_hidden, so there are
10709 non-.hidden static symbols for gdb to find.
10710 (__pthread_keys): Likewise.
10711 * events.c (__nptl_create_event, __nptl_death_event): Add hidden_def.
10712 * allocatestack.c (__stack_user): Likewise.
10713 * pthread_create.c (__pthread_keys): Likewise.
10714 (__nptl_threads_events, __nptl_last_event): Make these static instead
10715 of hidden.
10716 * pthread_key_create.c (__pthread_pthread_keys_max,
10717 __pthread_pthread_key_2ndlevel_size): Renamed from __linuxthreads_*.
10718
91949a33
UD
107192002-12-02 Ulrich Drepper <drepper@redhat.com>
10720
c22b52fa
UD
10721 * Makefile (tests): Add tst-locale1. If buid-static is yes link
10722 statically.
10723 * tst-locale1.c: New file.
10724
beb6aa41
UD
10725 * pthread_cond_timedwait.c: Include <stdlib.h>.
10726
91949a33
UD
10727 * Makefile (tests): Add tst-fork2 and tst-fork3.
10728 * tst-fork2.c: New file.
10729 * tst-fork3.c: New file.
10730
654dff90
UD
107312002-11-28 Ulrich Drepper <drepper@redhat.com>
10732
cb0e76b4
UD
10733 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: New file.
10734
10735 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define macros which
10736 require it to 200112L.
10737
10738 * sysdeps/unix/sysv/linux/i386/i486/lowlevelrwlock.S: Use cmov
10739 instruction only if HAVE_CMOV is defined.
10740 * sysdeps/unix/sysv/linux/i386/i686/lowlevelrwlock.S: Define HAVE_CMOV.
10741
975aa229
UD
10742 * sysdeps/unix/sysv/linux/x86_64/bits/semaphore.h: New file.
10743
654dff90
UD
10744 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S: New file.
10745
10746 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: New file.
10747
10748 * sysdeps/unix/sysv/linux/x86_64/pt-vfork.S: New file.
10749
a3931336
UD
107502002-11-27 Ulrich Drepper <drepper@redhat.com>
10751
c10c099c
UD
10752 * sysdeps/x86_64/bits/atomic.h: New file.
10753
10754 * sysdeps/i386/i686/bits/atomic.h: Fix asm syntax for 8- and
10755 16-bit operations.
10756
dca99d27
UD
10757 * sysdeps/unix/sysv/linux/raise.c (raise): Use INTERNAL_SYSCALL if
10758 possible since gettid cannot fail.
10759
f78deea6
UD
10760 * sysdeps/x86_64/pthreaddef.h: New file.
10761
10762 * sysdeps/i386/pthreaddef.h (gettid): Removed.
10763
10764 * sysdeps/x86_64/pthread_spin_init.c: New file.
10765 * sysdeps/x86_64/pthread_spin_lock.c: New file.
10766 * sysdeps/x86_64/pthread_spin_trylock.c: New file.
10767 * sysdeps/x86_64/pthread_spin_unlock.c: New file.
10768
10769 * sysdeps/i386/i686/pthread_spin_trylock.S (pthread_spin_trylock):
10770 Add missing lock prefix. Minute optimization.
10771
10772 * tst-spin2.c (main): Also check successful trylock call.
10773
10774 * sysdeps/pthread/pthread_sigmask.c (pthread_sigmask): Use correct
10775 syscall. Fix typo in case INTERNAL_SYSCALL is not used.
10776
10777 * sysdeps/i386/pthread_spin_destroy.c: Moved to...
10778 * sysdeps/pthread/pthread_spin_destroy.c: ...here. New file.
10779
10780 * sysdeps/i386/pthread_sigmask.c: Removed. Use the generic code.
10781 * sysdeps/pthread/pthread_sigmask.c (pthread_sigmask): Return correct
10782 value in case of an error. Add support for INTERNAL_SYSCALL.
b54e18eb
UD
10783
10784 * sysdeps/i386/pthread_sigmask.c (pthread_sigmask): Return correct
10785 value in case of an error.
10786
a3931336
UD
10787 * sysdeps/x86_64/tls.h: New file.
10788
76a50749
UD
107892002-11-26 Ulrich Drepper <drepper@redhat.com>
10790
117c452c
UD
10791 * sysdeps/i386/tls.h (THREAD_GETMEM_NC): Change interface. It now
10792 takes the array member name and the index as parameters.
10793 (THREAD_SETMEM_NC): Likewise.
10794 * pthread_getspecific.c: Use new THREAD_GETMEM_NC interface.
10795 * pthread_setspecific.c: Use new THREAD_GETMEM_NC and THREAD_SETMEM_NC
10796 interfaces.
10797
10798 * sysdeps/i386/tls.h (THREAD_SETMEM): Use size of member element
10799 to decide which code to use.
10800 (THREAD_SETMEM_NC): Likewise.
10801
76a50749
UD
10802 * allocatestack.c (queue_stack): Don't remove stack from list here.
10803 Do it in the caller. Correct condition to prematurely terminate
10804 loop to free stacks.
10805 (__deallocate_stack): Remove stack from list here.
10806
108072002-11-26 Ulrich Drepper <drepper@redhat.com>
10808
10809 * Makefile (tests): Add tst-stack1.
10810 * tst-stack1.c: New file.
10811
10812 * allocatestack.c (allocate_stack): Initialize the TCB on a user
10813 provided stack.
10814
10815 * pthread_attr_getstack.c: Return bottom of the thread area.
10816
108172002-11-25 Ulrich Drepper <drepper@redhat.com>
10818
10819 * Makefile (libpthread-routines): Add pt-allocrtsig and
10820 pthread_kill_other_threads.
10821 * pt-allocrtsig.c: New file.
10822 * pthread_kill_other_threads.c: New file.
10823 * sysdeps/unix/sysv/linux/allocrtsig.c: Add additional aliases for
10824 all three functions.
10825 * sysdeps/unix/sysv/linux/Makefile (sysdep_routines): Remove
10826 allocrtsig.
10827 * sysdeps/unix/sysv/linux/Versions (libc:GLIBC_PRIVATE): Export
10828 __libc_current_sigrtmin_private, __libc_current_sigrtmax_private,
10829 and __libc_allocate_rtsig_private.
10830 * Versions (libpthread): Export pthread_kill_other_threads_np,
10831 __libc_current_sigrtmin, and __libc_current_sigrtmax.
10832
108332002-11-24 Ulrich Drepper <drepper@redhat.com>
10834
10835 * allocatestack.c (allocate_stack): stackaddr in attribute points to
10836 the end of the stack. Adjust computations.
10837 When mprotect call fails dequeue stack and free it.
10838 * pthread_attr_setstack.c: Store top of the stack in stackaddr
10839 attribute.
10840 * pthread_getattr_np.c: Likewise.
10841
10842 * descr.h (IS_DETACHED): Add some more parenthesis to prevent
10843 surprises.
10844
108452002-11-23 Ulrich Drepper <drepper@redhat.com>
10846
10847 * sysdeps/pthread/pthread.h (pthread_self): __THROW must come before
10848 attribute definitions. Patch by Luca Barbieri <ldb@ldb.ods.org>.
10849
108502002-11-22 Ulrich Drepper <drepper@redhat.com>
10851
10852 * pthread_getspecific.c: Optimize access to first 2nd-level array.
10853 * pthread_setspecific.c: Likewise.
10854
108552002-11-21 Ulrich Drepper <drepper@redhat.com>
10856
10857 * sysdeps/unix/sysv/linux/i386/createthread.c: Remove CLONE_ flags
10858 definitions. Get them from the official place.
10859 * sysdeps/unix/sysv/linux/i386/fork.c: Likewise.
10860
10861 * sysdeps/unix/sysv/linux/i386/createthread.c: Update CLONE_* flags.
10862 Use new CLONE_ flags in clone() calls.
10863
10864 * sysdeps/unix/sysv/linux/fork.c: Use ARCH_FORK to actually fork.
10865 * sysdeps/unix/sysv/linux/i386/fork.c: New file.
10866
10867 * Versions: Add pthread_* functions for libc.
10868 * forward.c: New file.
10869
10870 * sysdeps/pthread/Makefile (libpthread-sysdeps_routines): Add
10871 errno-loc.
10872 * herrno.c: New file.
10873 * res.c: New file.
10874
10875 * Makefile (libpthread-routines): Remove sem_post, sem_wait,
10876 sem_trywait, and sem_timedwait. Add herrno and res.
10877 * sem_init.c: Don't initialize lock and waiters members.
10878 * sem_open.c: Likewise.
10879 * sem_post.c: Removed.
10880 * sem_wait.c: Removed.
10881 * sem_trywait.c: Removed.
10882 * sem_timedwait.c: Removed.
10883 * sysdeps/unix/sysv/linux/i386/i486/lowlevelsem.S: Complete rewrite.
10884 Includes full implementations of sem_post, sem_wait, sem_trywait,
10885 and sem_timedwait.
10886 * sysdeps/unix/sysv/linux/i386/lowlevelsem.h (lll_sem_post): Adjust
10887 for new implementation.
10888 * sysdeps/unix/sysv/linux/internaltypes.h (struct sem): Remove lock
10889 and waiters fields.
10890
10891 * tst-sem3.c: Improve error message.
10892 * tst-signal3.c: Likewise.
10893
10894 * init.c (__pthread_initialize_minimal): Use set_tid_address syscall
10895 to tell the kernel about the termination futex and to initialize tid
10896 member. Don't initialize main_thread.
10897 * descr.h (struct pthread): Remove main_thread member.
10898 * cancelllation.c (__do_cancel): Remove code handling main thread.
10899 The main thread is not special anymore.
10900
10901 * allocatestack.c (__reclaim_stacks): Mark stacks as unused. Add
10902 size of the stacks to stack_cache_actsize.
10903
10904 * pt-readv.c: Add missing "defined".
10905 * pt-sigwait.c: Likewise.
10906 * pt-writev.c: Likewise.
10907
109082002-11-09 Ulrich Drepper <drepper@redhat.com>
10909
10910 * Versions: Export __connect from libpthread.
10911 Patch by Luca Barbieri <ldb@ldb.ods.org>.
10912
10913 * Makefile (libpthread-routines): Add pt-raise.
10914 * sysdeps/unix/sysv/linux/raise.c: New file.
10915 * sysdeps/unix/sysv/linux/pt-raise.c: New file.
10916 * sysdeps/generic/pt-raise.c: New file.
10917
10918 * pthread_cond_init.c: Initialize all data elements of the condvar
10919 structure. Patch by Luca Barbieri <ldb@ldb.ods.org>.
10920
10921 * pthread_attr_init.c: Actually implement 2.0 compatibility version.
10922 * pthread_create.c: Likewise.
10923
10924 * Makefile (tests): Add tst-key1, tst-key2, tst-key3.
10925 * tst-key1.c: New file.
10926 * tst-key2.c: New file.
10927 * tst-key3.c: New file.
10928
10929 * Versions: Export pthread_detach for version GLIBC_2.0.
10930 Reported by Saurabh Desai <sdesai@austin.ibm.com>.
10931
109322002-11-08 Ulrich Drepper <drepper@redhat.com>
10933
10934 * pthread_key_create.c: Terminate search after an unused key was found.
10935 Patch by Luca Barbieri <ldb@ldb.ods.org>.
10936
10937 * sysdeps/unix/sysv/linux/i386/pthread_once.S: Return zero.
10938 Patch by Luca Barbieri <ldb@ldb.ods.org>.
10939
109402002-10-10 Ulrich Drepper <drepper@redhat.com>
10941
10942 * sysdeps/unix/sysv/linux/i386/i486/lowlevelsem.S: Use slow generic
10943 dynamic lookup for errno in PIC.
10944
10945 * allocatestack.c (get_cached_stack): Rearrange code slightly to
10946 release the stack lock as soon as possible.
10947 Call _dl_allocate_tls_init for TCB from the cache to re-initialize
10948 the static TLS block.
10949 (allocate_stack): Call _dl_allocate_tls_init for user-provided stack.
10950
10951 * cancellation.c: Renamed from cancelation.c.
10952 * Makefile: Adjust accordingly.
10953 * pthreadP.h (CANCELLATION_P): Renamed from CANCELATION_P.
10954 * cleanup_defer.c: Use CANCELLATION_P.
10955 * pthread_testcancel.c: Likewise.
10956 * descr.h: Fix spelling in comments.
10957 * init.c: Likewise.
10958 * pthread_getattr_np.c: Likewise.
10959 * pthread_getschedparam.c: Likewise.
10960 * pthread_setschedparam.c: Likewise.
10961 * Versions: Likewise.
10962
10963 * pt-pselect.c: New file.
10964 * Makefile (libpthread-routines): Add pt-pselect.
10965 * Versions: Add pselect.
10966
10967 * tst-cancel4.c: New file.
10968 * Makefile (tests): Add tst-cancel4.
10969
109702002-10-09 Ulrich Drepper <drepper@redhat.com>
10971
10972 * pthread_mutex_lock.c: Always record lock ownership.
10973 * pthread_mutex_timedlock.c: Likewise.
10974 * pthread_mutex_trylock.c: Likewise.
10975
10976 * pt-readv.c: New file.
10977 * pt-writev.c: New file.
10978 * pt-creat.c: New file.
10979 * pt-msgrcv.c: New file.
10980 * pt-msgsnd.c: New file.
10981 * pt-poll.c: New file.
10982 * pt-select.c: New file.
10983 * pt-sigpause.c: New file.
10984 * pt-sigsuspend.c: New file.
10985 * pt-sigwait.c: New file.
10986 * pt-sigwaitinfo.c: New file.
10987 * pt-waitid.c: New file.
10988 * Makefile (libpthread-routines): Add pt-readv, pt-writev, pt-creat,
10989 pt-msgrcv, pt-msgsnd, pt-poll, pt-select, pt-sigpause, pt-sigsuspend,
10990 pt-sigwait, pt-sigwaitinfo, and pt-waitid.
10991 * Versions: Add all the new functions.
10992
10993 * tst-exit1.c: New file.
10994 * Makefile (tests): Add tst-exit1.
10995
10996 * sem_timedwait.c: Minor optimization for more optimal fastpath.
10997
109982002-10-08 Ulrich Drepper <drepper@redhat.com>
10999
11000 * pt-fcntl.c: Only enable asynchronous cancellation for F_SETLKW.
11001
11002 * pthread_join.c: Enable asynchronous cancellation around lll_wait_tid
11003 call. pthread_join is an official cancellation point.
11004 * pthread_timedjoin.c: Likewise.
11005
11006 * pthread_cond_wait.c: Revert order in which internal lock are dropped
11007 and the condvar's mutex are retrieved.
11008 * pthread_cond_timedwait.c: Likewise.
11009 Reported by dice@saros.East.Sun.COM.
11010
110112002-10-07 Ulrich Drepper <drepper@redhat.com>
11012
11013 * pthreadP.h: Cut out all type definitions and move them...
11014 * sysdeps/unix/sysv/linux/internaltypes.h: ...here. New file.
11015 * pthreadP.h: Include <internaltypes.h>.
11016
11017 * sysdeps/unix/sysv/linux/i386/lowlevelsem.h (lll_sem_post): Little
11018 performance tweaks.
11019
11020 * sem_trywait.c: Shuffle #includes around to get right order.
11021 * sem_timedwait.c: Likewise.
11022 * sem_post.c: Likewise.
11023 * sem_wait.c: Likewise.
11024
11025 * nptl 0.3 released.
11026
11027 * Makefile (tests): Add tst-signal3.
11028 * tst-signal3.c: New file.
11029
110302002-10-05 Ulrich Drepper <drepper@redhat.com>
11031
11032 * sysdeps/unix/sysv/linux/i386/lowlevelsem.h: Tell the compiler that
11033 the asms modify the sem object.
11034 (__lll_sem_timedwait): Now takes struct sem* as first parameter.
11035
11036 * sysdeps/unix/sysv/linux/i386/bits/semaphore.h (sem_t): Don't expose
11037 the actual members.
11038 * pthreadP.h (struct sem): New type. Actual semaphore type.
11039 * semaphoreP.h: Include pthreadP.h.
11040 * sem_getvalue.c: Adjust to sem_t change.
11041 * sem_init.c: Likewise.
11042 * sem_open.c: Likewise.
11043 * sem_post.c: Likewise.
11044 * sem_timedwait.c: Likewise.
11045 * sem_trywait.c: Likewise.
11046 * sem_wait.c: Likewise.
11047
110482002-10-04 Ulrich Drepper <drepper@redhat.com>
11049
11050 * Makefile (tests): Add tst-basic2, tst-exec1, tst-exec3, tst-exec3.
11051 * tst-basic2.c: New file.
11052 * tst-exec1.c: New file.
11053 * tst-exec2.c: New file.
11054 * tst-exec3.c: New file.
11055
11056 * tst-fork1.c: Remove extra */.
11057
11058 * nptl 0.2 released. The API for IA-32 is complete.