]> sourceware.org Git - glibc.git/blame - nptl/ChangeLog
Update.
[glibc.git] / nptl / ChangeLog
CommitLineData
796038f8
RM
12003-03-16 Roland McGrath <roland@redhat.com>
2
3 * tst-fork4.c: Include <string.h>.
4 * tst-signal2.c: Likewise.
5 * tst-mutex5.c (do_test): exit -> return.
6 * tst-mutex2.c: Include <stdlib.h>.
7
51d0678c
UD
82003-03-16 Ulrich Drepper <drepper@redhat.com>
9
b6e2f87a
UD
10 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Work around red
11 zone versus inline asm stupidity. Use correct instructions.
12
51d0678c
UD
13 * tst-rwlock6.c: Add some more status output.
14
8112cc70
RM
152003-03-15 Roland McGrath <roland@redhat.com>
16
17 * sysdeps/pthread/configure.in: New file.
18 * sysdeps/pthread/configure: New file (generated).
19
49773c19
UD
202003-03-15 Ulrich Drepper <drepper@redhat.com>
21
22 * allocatestack.c (allocate_stack): Store the exact stack size of
23 user allocated stacks.
24
eec0ca9f
JJ
252003-03-15 Jakub Jelinek <jakub@redhat.com>
26
27 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h
28 (SINGLE_THREAD): Use `header' prefix instead of `header.data'.
29 * sysdeps/sh/tcb-offsets.sym (MULTIPLE_THREADS_OFFSET): Likewise.
30 * sysdeps/sh/tls.h (TLS_MULTIPLE_THREADS_IN_TCB): Define.
31 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h (SINGLE_THREAD_P):
32 Use `header.' prefix.
33 * sysdeps/ia64/tcb-offsets.sym (MULTIPLE_THREADS_OFFSET): Likewise.
34
a87731e2
UD
352003-03-15 Ulrich Drepper <drepper@redhat.com>
36
37 * sysdeps/x86_64/pthreaddef.h (CURRENT_STACK_FRAME): Don't use
38 __builtin_frame_address, use stack pointer.
39
40 * sysdeps/unix/sysv/linux/jmp-unwind.c: Use CURRENT_STACK_FRAME
41 instead of __builtin_frame_pointer.
42
e22a221d
UD
432003-03-14 Ulrich Drepper <drepper@redhat.com>
44
92ed3daf
UD
45 * tst-basic1.c (do_test): Add cast to avoid warning.
46 * tst-basic2.c (do_test): Likewise.
47
9b89567d
UD
48 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Use correct
49 amount of stack correction.
50
e22a221d
UD
51 * tst-fork4.c: Use test-skeleton.c.
52
2e49caba
RM
532003-03-14 Roland McGrath <roland@redhat.com>
54
55 * init.c: Fix typo "#eli" for "#else".
56
415ef7d8
RM
572003-03-14 Steven Munroe <sjmunroe@us.ibm.com>
58
59 * allocatestack.c (__stack_user): Use hidden_data_def.
60 * pthread_create.c (__pthread_keys): Likewise.
61
62 * init.c [__powerpc__] (__NR_set_tid_address): Define it.
63
52287505
RM
642003-03-14 Roland McGrath <roland@redhat.com>
65
415ef7d8
RM
66 * tst-fork4.c: New file.
67 * Makefile (tests): Add it.
68
52287505
RM
69 * descr.h (struct pthread): Move the union out of [!TLS_DTV_AT_TP], so
70 we always define the padding space.
71 [!TLS_DTV_AT_TP]: Give tcbhead_t field a name, `header', since GCC
72 stopped supporting its own extensions fully.
73 [TLS_MULTIPLE_THREADS_IN_TCB]: Put `multiple_threads' inside a wrapper
74 struct also called `header', so `header.multiple_threads' is the field
75 name to use on all machines.
76 * allocatestack.c (allocate_stack): Use `header.' prefix.
77 * sysdeps/pthread/createthread.c (create_thread): Likewise.
78 * pthread_create.c (__pthread_create_2_1): Likewise.
79 * sysdeps/i386/tls.h (INSTALL_NEW_DTV, THREAD_DTV): Likewise.
80 (THREAD_SELF): Likewise.
81 * sysdeps/x86_64/tls.h: Likewise.
82 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h
83 (SINGLE_THREAD_P): Likewise.
84 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h
85 (SINGLE_THREAD_P): Likewise.
86 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h
87 (SINGLE_THREAD_P): Likewise.
88
89 * sysdeps/s390/td_ta_map_lwp2thr.c (td_ta_map_lwp2thr): Use REGS[18]
90 value directly.
91
c44bf9aa
UD
922003-03-14 Ulrich Drepper <drepper@redhat.com>
93
e22a221d
UD
94 * pthread_create.c (start_thread): Use CALL_THREAD_FCT if defined.
95 * sysdeps/i386/tls.h: Define CALL_THREAD_FCT.
96
0eb18281
UD
97 * pthread_create.c (start_thread): setjmp is expected to return 0.
98
c44bf9aa
UD
99 * sysdeps/x86_64/tls.h (THREAD_GETMEM): Mark asms volatile.
100 (THREAD_GETMEM_NC): Likewise.
101
564cd8b6
UD
1022003-03-13 Ulrich Drepper <drepper@redhat.com>
103
104 * allocatestack.c (allocate_stack): If MULTI_PAGE_ALIASING is defined
105 and the size of the stack which must be allocated is a multiple,
106 allocate one more page.
107 * sysdeps/i386/i686/Makefile: Don't define COLORING_INCREMENT, but
108 MULTI_PAGE_ALIASING.
109
6461e577
RM
1102003-03-13 Roland McGrath <roland@redhat.com>
111
112 * pthread_create.c (start_thread): Set EXITING_BIT after the
113 event-reporting (and destructors), not before.
114
b5ec5617
UD
1152003-03-13 Jakub Jelinek <jakub@redhat.com>
116
6461e577
RM
117 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (lll_futex_timed_wait,
118 lll_futex_wake): Declare register variables as long int instead of
119 unsigned long int. Patch by Ian Wienand <ianw@gelato.unsw.edu.au>.
120 Make syscall arguments clobbered by the syscall.
121 (lll_futex_wait): Define using lll_futex_timed_wait.
122
123 * sysdeps/ia64/td_ta_map_lwp2thr.c (td_ta_map_lwp2thr): Cast regs[13]
124 to void *.
125
126 * sysdeps/unix/sysv/linux/fork.c (__libc_fork): Only declare and set
127 PPID if [! NDEBUG].
128
129 * allocatestack.c (nptl_ncreated): Only declare if
130 COLORING_INCREMENT != 0.
131
132 * pthreadP.h (__pthread_enable_asynccancel_2): New prototype.
133 (__libc_enable_asynccancel_2): Remove prototype.
134
b5ec5617
UD
135 * sysdeps/unix/sysv/linux/ia64/fork.c (ARCH_FORK): Swap ptid and
136 ctid to match kernel.
137
d0369fb8
UD
1382003-03-12 Ulrich Drepper <drepper@redhat.com>
139
7588880f
UD
140 * sysdeps/unix/sysv/linux/Makefile (sysdep_routines): Add
141 libc_multiple_threads.
142 * sysdeps/unix/sysv/linux/libc_pthread_init.c: Move definition of
143 __libc_multiple_threads to...
144 * sysdeps/unix/sysv/linux/libc_multiple_threads.c: ...here. New file.
145
146 * sysdeps/unix/sysv/linux/x86_64/sem_post.S: Remove unnecessary
147 versioning.
148 * sysdeps/unix/sysv/linux/x86_64/sem_trywait.S: Likewise.
149 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Likewise.
150
151 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S
152 (__pthread_once_internal): Define.
153
154 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S: Use shlib-compat.h
155 macros instead of .symver directly.
156 * sysdeps/unix/sysv/linux/i386/i486/sem_trywait.S: Likewise.
157 * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S: Likewise.
158
d0369fb8
UD
159 * sysdeps/x86_64/tls.h [__ASSEMBLER__]: Include tcb-offsets.h.
160 * sysdeps/x86_64/tcb-offsets.sym: New file.
161 * sysdeps/x86_64/Makefile: New file.
162
163 * sysdeps/i386/tcb-offsets.sym: Add SELF.
164 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Use SELF
165 to access own pthread_t in TCB.
166 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
167 Likewise.
168 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
169 Likewise.
170 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
171
0bb2ac85
RM
1722003-03-12 Roland McGrath <roland@redhat.com>
173
174 * pthread-errnos.sym: New file.
175 * Makefile (gen-as-const-headers): New variable, list that file.
176 * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S: Include generated
177 header <pthread-errnos.h> instead of defining errno values here.
178 * sysdeps/unix/sysv/linux/i386/i486/sem_trywait.S: Likewise.
179 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: Likewise.
180 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S: Likewise.
181 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
182 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
183 Likewise.
184 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
185 Likewise.
186 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Likewise.
187 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
188 * sysdeps/unix/sysv/linux/i386/i486/lowlevelmutex.S: Likewise.
189 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Likewise.
190 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Likewise.
191 * sysdeps/unix/sysv/linux/x86_64/sem_trywait.S: Likewise.
192 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Likewise.
193 * sysdeps/unix/sysv/linux/x86_64/sem_post.S: Likewise.
194 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
195 * sysdeps/unix/sysv/linux/x86_64/lowlevelmutex.S: Likewise.
196 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Likewise.
197 * sysdeps/unix/sysv/linux/sh/sem_trywait.S: Likewise.
198 * sysdeps/unix/sysv/linux/sh/sem_timedwait.S: Likewise.
199 * sysdeps/unix/sysv/linux/sh/sem_post.S: Likewise.
200 * sysdeps/unix/sysv/linux/sh/sem_wait.S: Likewise.
201 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: Likewise.
202 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S: Likewise.
203 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S: Likewise.
204 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise.
205 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: Likewise.
206 * sysdeps/unix/sysv/linux/sh/lowlevellock.S: Likewise.
207 * sysdeps/unix/sysv/linux/sh/lowlevelmutex.S: Likewise.
208 * sysdeps/i386/i486/pthread_spin_trylock.S: Likewise.
209 * sysdeps/x86_64/pthread_spin_trylock.S: Likewise.
210 * sysdeps/sh/pthread_spin_trylock.S: Likewise.
211 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S: Likewise.
212 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S: Likewise.
213
214 * sysdeps/unix/sysv/linux/fork.c: Add an assert to check that
215 CLONE_CHILD_SETTID worked.
216
35e148cb
UD
2172003-03-12 Ulrich Drepper <drepper@redhat.com>
218
d0369fb8
UD
219 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S: New
220 file.
221 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S: New
222 file.
223
224 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h
225 (pthread_cond_t): Add padding.
226
da49194d
UD
227 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S: New file.
228 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S: New file.
229 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_unlock.S: New file.
230
35e148cb
UD
231 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S
232 (__pthread_rwlock_timedwrlock): Add missing opcode suffix.
233 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S
234 (__pthread_rwlock_timedrdlock): Likewise.
235 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S
236 (__pthread_rwlock_wrlock): Likewise.
237 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S
238 (__pthread_rwlock_rdlock): Likewise.
239
240 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: New file.
241
242 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Return
243 result of lock re-get if it fails.
244
3e976b96
UD
2452003-03-11 Ulrich Drepper <drepper@redhat.com>
246
5a03acfe
UD
247 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Fix asm syntax.
248 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
249 * sysdeps/unix/sysv/linux/x86_64/lowlevelmutex.S: Likewise.
250 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S: Likewise.
251 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
252 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Likewise.
253 * sysdeps/unix/sysv/linux/x86_64/sem_post.S: Likewise.
254 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Likewise.
255 * sysdeps/unix/sysv/linux/x86_64/sem_trywait.S: Likewise.
256 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Likewise.
257
258 * sysdeps/x86_64/tls.h (THREAD_SELF, THREAD_GETMEM, THREAD_GETMEM_NC,
259 THREAD_SETMEM, THREAD_SETMEM_NC): Correct asm syntax.
260
261 * allocatestack.c [! TLS_MULTIPLE_THREADS_IN_TCB] (allocate_stack):
262 Initialize *__libc_multiple_threads_ptr not __libc_multiple_threads.
263 * sysdeps/pthread/createthread.c [! TLS_MULTIPLE_THREADS_IN_TCB]
264 (create_thread): Likewise.
265 Define __pthread_multiple_threads and __libc_multiple_threads_ptr.
266 * init.c (__pthread_initialize_minimal_internal): Initialize
267 __libc_multiple_threads_ptr if necessary.
268 * pthreadP.h: Adjust prototype for __libc_pthread_init. Declare
269 __pthread_multiple_threads and __libc_multiple_threads_ptr.
270 * sysdeps/unix/sysv/linux/libc_pthread_init.c: Define
271 __libc_multiple_threads.
272 (__libc_pthread_init): Return pointer to __libc_pthread_init if
273 necessary.
274
275 * sysdeps/i386/tls.h (THREAD_SETMEM): Fix one-byte variant.
276 (THREAD_SETMEM_NC): Likewise.
277
278 * sysdeps/x86_64/pthread_spin_trylock.c: Removed.
279 * sysdeps/x86_64/pthread_spin_trylock.S: New file.
280 * sysdeps/x86_64/pthread_spin_unlock.c: Removed.
281 * sysdeps/x86_64/pthread_spin_unlock.S: New file.
282
283 * sysdeps/i386/i486/pthread_spin_trylock.S (pthread_spin_trylock):
284 Eliminate one entire instruction.
285
32a589b1
UD
286 * cancellation.c (__pthread_enable_asynccancel_2): New function.
287 * pthreadP.h: Declare __pthread_enable_asynccancel_2.
288 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
289 (__pthread_cond_timedwait): Use __pthread_enable_asynccancel_2
290 instead of __pthread_enable_asynccancel.
291 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S
292 (__pthread_cond_wait): Likewise.
293 * sysdeps/pthread/pthread_cond_timedwait.c
294 (__pthread_cond_timedwait): Likewise.
295 * sysdeps/pthread/pthread_cond_wait.c (__pthread_cond_wait): Likewise.
296
3e976b96
UD
297 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S
298 (__condvar_cleanup): Wake up all waiters in case we got signaled
299 after being woken up but before disabling asynchronous
300 cancellation.
301 * sysdeps/pthread/pthread_cond_wait.c (__condvar_cleanup): Likewise.
302 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
303 (__condvar_cleanup): Likewise.
304
305 * init.c (__NR_set_tid_address): If already defined, don't redefine.
306 Make it an error if architecture has no #if case. Add x86-64.
307
308 * sysdeps/unix/sysv/linux/x86_64/Makefile: Add flags for
309 pt-initfini.s generation.
310
311 * sysdeps/x86_64/tls.h: Include <asm/prctl.h>.
312 (TLS_INIT_TP): Fix typo.
313
6c477888
UD
3142003-03-11 Jakub Jelinek <jakub@redhat.com>
315
316 * sysdeps/ia64/bits/atomic.h (atomic_exchange_and_add): Swap 2nd and
317 3rd argument of __arch_compare_and_exchange_{32,64}_val_acq.
318
319 * sysdeps/unix/sysv/linux/ia64/sem_post.c: Include semaphore.h.
320 * sysdeps/unix/sysv/linux/ia64/sem_timedwait.c: Likewise.
321 * sysdeps/unix/sysv/linux/ia64/sem_trywait.c: Likewise.
322 * sysdeps/unix/sysv/linux/ia64/sem_wait.c: Likewise.
323 * sysdeps/unix/sysv/linux/s390/sem_post.c: Likewise.
324 * sysdeps/unix/sysv/linux/s390/sem_timedwait.c: Likewise.
325 * sysdeps/unix/sysv/linux/s390/sem_trywait.c: Likewise.
326 * sysdeps/unix/sysv/linux/s390/sem_wait.c: Likewise.
327
ea694823
UD
3282003-03-11 Ulrich Drepper <drepper@redhat.com>
329
6c477888
UD
330 * sysdeps/pthread/pthread_cond_timedwait.c
331 (__pthread_cond_timedwait): Return the result of the final
332 locking. If it succeeds, the regular function return value.
333
334 * sysdeps/pthread/pthread_cond_wait.c (__pthread_cond_wait):
335 Return result of the final locking.
336 * version.c (__nptl_main): Work around problems with the strange
337 INTERNAL_SYSCALL macro on ppc32.
338 * init.c (__pthread_initialize_minimal_internal): Unblock
339 SIGCANCEL in case the parent blocked it.
340 Reported by Paul Mackerras <paulus@samba.org>.
341
ea694823
UD
342 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S: New file.
343 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S: New file.
344 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: New file.
345
b33e6163
RM
3462003-03-11 Jakub Jelinek <jakub@redhat.com>
347
348 * sysdeps/pthread/pthread_cond_timedwait.c
349 (__pthread_cond_timedwait): Unlock and fail if
350 __pthread_mutex_unlock_internal failed.
351
352 * sysdeps/pthread/createthread.c (ARCH_CLONE): Define if not defined.
353 (create_thread): Only assert PD->tcb != NULL under [TLS_TCB_AT_TP].
354 Use ARCH_CLONE.
355 * allocatestack.c (ALLOCATE_STACK_PARMS): New macro.
356 [NEED_SEPARATE_REGISTER_STACK] (STACK_VARIABLES,
357 STACK_VARIABLES_ARGS, STACK_VARIABLES_PARMS, ALLOCATE_STACK_PARMS,
358 ALLOCATE_STACK): New macros.
359 (TLS_TPADJ): New macro.
360 (get_cached_stack, queue_stack, __deallocate_stack): Use TLS_TPADJ.
361 (allocate_stack): Handle TLS_DTV_AT_TP and
362 NEED_SEPARATE_REGISTER_STACK. Use TLS_TPADJ.
363 * pthread_create.c (__pthread_create_2_1) [! TLS_TCB_AT_TP]:
364 Don't set PD->self.
365 * init.c [__ia64__] (__NR_set_tid_address): Define.
366
367 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: New file.
368 * sysdeps/unix/sysv/linux/ia64/bits/semaphore.h: New file.
369 * sysdeps/unix/sysv/linux/ia64/fork.c: New file.
370 * sysdeps/unix/sysv/linux/ia64/createthread.c: New file.
371 * sysdeps/unix/sysv/linux/ia64/libc-lowlevellock.c: New file.
372 * sysdeps/unix/sysv/linux/ia64/libc-lowlevelmutex.c: New file.
373 * sysdeps/unix/sysv/linux/ia64/lowlevellock.c: New file.
374 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h: New file.
375 * sysdeps/unix/sysv/linux/ia64/lowlevelmutex.c: New file.
376 * sysdeps/unix/sysv/linux/ia64/pt-initfini.c: New file.
377 * sysdeps/unix/sysv/linux/ia64/pt-vfork.S: New file.
378 * sysdeps/unix/sysv/linux/ia64/pthread_once.c: New file.
379 * sysdeps/unix/sysv/linux/ia64/sem_post.c: New file.
380 * sysdeps/unix/sysv/linux/ia64/sem_timedwait.c: New file.
381 * sysdeps/unix/sysv/linux/ia64/sem_trywait.c: New file.
382 * sysdeps/unix/sysv/linux/ia64/sem_wait.c: New file.
383 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h: New file.
384 * sysdeps/ia64/bits/atomic.h: New file.
385 * sysdeps/ia64/Makefile: New file.
386 * sysdeps/ia64/pthread_spin_init.c: New file.
387 * sysdeps/ia64/pthread_spin_lock.c: New file.
388 * sysdeps/ia64/pthread_spin_trylock.c: New file.
389 * sysdeps/ia64/pthread_spin_unlock.c: New file.
390 * sysdeps/ia64/pthreaddef.h: New file.
391 * sysdeps/ia64/tcb-offsets.sym: New file.
392 * sysdeps/ia64/td_ta_map_lwp2thr.c: New file.
393 * sysdeps/ia64/tls.h: New file.
394
395 * sysdeps/s390/pthreaddef.h (__exit_thread_inline): Pass 1 argument
396 to syscall instead of no arguments.
397
2b30b2e5
UD
3982003-03-10 Ulrich Drepper <drepper@redhat.com>
399
db5f2fc9
UD
400 * sysdeps/unix/sysv/linux/x86_64/sem_post.S: New file.
401 * sysdeps/unix/sysv/linux/x86_64/sem_trywait.S: New file.
402 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S: New file.
403 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: New file.
404
405 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S: Fix error value in
406 unused code.
407
6a4263e3
UD
408 * sysdeps/unix/sysv/linux/x86_64/pthread_barrier_wait.S: New file
409
3de7c2a9
UD
410 * sysdeps/unix/sysv/linux/Makefile (gen-as-const-headers): Add
411 lowlevelbarrier.sym.
412 * sysdeps/unix/sysv/linux/lowlevelbarrier.sym: New file.
413 * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S:
414 Include lowlevelbarrier.h and don't define offsets locally.
6a4263e3 415 * sysdeps/unix/sysv/linux/sh/pthread_barrier_wait.S: Likewise.
3de7c2a9 416
2a544d82
UD
417 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h
418 (__lll_mutex_lock_wait): Reverse order of first two parameters.
419 (__lll_mutex_timedlock_wait): Likewise.
420 (lll_mutex_lock): Adjust asm for that.
421 (lll_mutex_timedlock): Likewise. Mark cx, cc, r10 as clobbered.
422 (lll_lock): Adjust asm for operand order change.
423 * sysdeps/unix/sysv/linux/x86_64/lowlevelmutex.S: New file.
424 * sysdeps/unix/sysv/linux/x86_64/libc-lowlevelmutex.S: New file.
425
ec06436c
UD
426 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (__lll_lock_wait):
427 Reverse order of parameters.
428 (__lll_timedwait_tid): Remove regparms attribute.
429 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: New file.
430 * sysdeps/unix/sysv/linux/x86_64/libc-lowlevellock.S: New file.
431
3273832c
UD
432 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
433 (__lll_timedwait_tid): Remove one unnecessary instruction.
434
51f32ab8
UD
435 * sysdeps/unix/sysv/linux/sh/lowlevelmutex.S: Define
436 __lll_mutex_timedlock_wait only for NOT_IN_libc.
437 * sysdeps/unix/sysv/linux/sh/libc-lowlevelmutex.S: Include
438 lowlevelmutex.S.
439
440 * sysdeps/unix/sysv/linux/sh/lowlevellock.S: Define
441 lll_unlock_wake_cb, __lll_wait_tid, and __lll_timedwait_tid only
442 for NOT_IN_libc.
443 * sysdeps/unix/sysv/linux/sh/libc-lowlevellock.S: Include
444 lowlevellock.S.
445
fad48d9e
UD
446 * sysdeps/unix/sysv/linux/i386/i486/lowlevelmutex.S: Don't define
447 LOCK is already defined. Don't define __lll_mutex_timedlock_wait
448 for libc.so.
449 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevelmutex.S: Only
450 define LOCK here (if UP is not defined). The actual code is in
451 lowlevelmutex.S.
452
9356d063
UD
453 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Don't define
454 LOCK is already defined. Don't define lll_unlock_wake_cb and
455 __lll_timedwait_tid for libc.so.
456 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Only
457 define LOCK here (if UP is not defined). The actual code is in
458 lowlevellock.S.
459
ebf0cbc5 460 * sysdeps/unix/sysv/linux/i386/lowlevelsem.h: Not needed anymore.
106f6f9d
UD
461 * sysdeps/unix/sysv/linux/s390/lowlevelsem.h: Likewise.
462 * sysdeps/unix/sysv/linux/s390/sem_post.c: Include lowlevellock.h
463 instead of lowlevelsem.h.
464 * sysdeps/unix/sysv/linux/s390/sem_timedwait.c: Likewise.
465 * sysdeps/unix/sysv/linux/s390/sem_trywait.c: Likewise.
466 * sysdeps/unix/sysv/linux/s390/sem_wait.c: Likewise.
0be8ee21 467
c915e5ad
UD
468 * sysdeps/unix/sysv/linux/Makefile (gen-as-const-headers): Add
469 lowlevelrwlock.sym.
470 * sysdeps/unix/sysv/linux/lowlevelrwlock.sym: New file.
471 * sysdeps/unix/sysv/linux/i386/lowlevelrwlock.h: Removed.
146fa1ee 472 * sysdeps/unix/sysv/linux/sh/lowlevelrwlock.h: Removed.
c915e5ad 473
4c3c2e8a
UD
474 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (lll_trylock): Fix
475 register loading.
476 * sysdeps/unix/sysv/linux/i386/lowlevellock.h (lll_trylock): Undo
477 last changed. D'oh.
478
2b30b2e5
UD
479 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: New file.
480
481 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Remove declaration
482 of __libc_locking_needed.
483 (lll_trylock): Initialize %eax to zero.
484
2b30b2e5
UD
485 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Update
486 pthread_cond_t definition.
487
e48f9638
RM
4882003-03-10 Roland McGrath <roland@redhat.com>
489
490 * sysdeps/unix/sysv/linux/lowlevelcond.sym: New file.
491 * sysdeps/unix/sysv/linux/Makefile (gen-as-const-headers): Add it.
492 * sysdeps/unix/sysv/linux/sh/lowlevelcond.h: File removed.
493 * sysdeps/unix/sysv/linux/i386/lowlevelcond.h: Likewise.
494 * sysdeps/unix/sysv/linux/x86_64/lowlevelcond.h: Likewise.
495
496 * allocatestack.c (allocate_stack) [!TLS_MULTIPLE_THREADS_IN_TCB]:
497 Instead of setting PD->multiple_threads, set globals
498 __pthread_multiple_threads and __libc_multiple_threads.
499 * sysdeps/pthread/createthread.c (create_thread): Likewise.
500 * sysdeps/i386/tls.h (TLS_MULTIPLE_THREADS_IN_TCB): Define it.
501 * sysdeps/s390/tls.h (TLS_MULTIPLE_THREADS_IN_TCB): Likewise.
502
503 * descr.h (struct pthread): Conditionalize first member on
504 [!TLS_DTV_AT_TP]. Replace the `header' member with an anonymous union
505 containing an anonymous tcbhead_t. Move `list' member out.
506 [TLS_MULTIPLE_THREADS_IN_TCB]: Define a `multiple_threads' member.
507 * allocatestack.c: Remove use of `header.data.' prefix.
508 * pthread_create.c: Likewise.
509 * init.c (__pthread_initialize_minimal_internal): Likewise.
510 * sysdeps/pthread/createthread.c (create_thread): Likewise.
511 * sysdeps/i386/tls.h (INSTALL_DTV): Add parens.
512 (THREAD_SELF, THREAD_DTV, INSTALL_NEW_DTV): No `header.data.' prefix.
513 * sysdeps/x86_64/tls.h: Likewise.
514 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h
515 (SINGLE_THREAD_P): Likewise.
516 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h
517 (SINGLE_THREAD_P): Likewise.
518 * sysdeps/i386/tls.h (tcbhead_t): Remove `list' member.
519 * sysdeps/s390/tls.h (tcbhead_t): Likewise.
520
c37cae9e
UD
5212003-03-09 Ulrich Drepper <drepper@redhat.com>
522
d38c777e
RM
523 * sysdeps/unix/sysv/linux/x86_64/lowlevelcond.h: New file.
524
7b44a5e0 525 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h: New file.
2b30b2e5 526 * sysdeps/unix/sysv/linux/x86_64/fork.c: New file.
7b44a5e0 527
c2e5e085
UD
528 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Fix many
529 leftovers from the ia32 code.
530
531 * sysdeps/unix/sysv/linux/i386/pthread_once.S: Remove unneccessary
532 memory load.
533 (clear_once_control): Don't load %esi.
534
535 * sysdeps/x86_64/tls.h: Remove all traces of segment descriptor
536 handling.
537
538 * sysdeps/unix/sysv/linux/x86_64/fork.c: New file.
539
cd4b2a55
UD
540 * sysdeps/unix/sysv/linux/s390/createthread.c: Moved to...
541 * sysdeps/unix/sysv/linux/createthread.c: ...here.
542
c37cae9e
UD
543 * Makefile (tests): Add tst-cond10.
544 * tst-cond10.c: New file.
545
d130a341
UD
5462003-03-08 Ulrich Drepper <drepper@redhat.com>
547
ccf1d573
UD
548 * tst-tls2.c (do_test): Add TEMP_FAILURE_RETRY around sem_wait call.
549 * tst-signal3.c (do_test): Likewise.
550 * tst-sem5.c (do_test): Likewise.
551 * tst-kill6.c (do_test): Likewise.
552 * tst-tls3.c (do_test): Likewise. Include <errno.h>.
553
554 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Use add/sub instead
555 of inc/dec.
556 * sysdeps/unix/sysv/linux/i386/lowlevelsem.h: Likewise.
557 * sysdeps/unix/sysv/linux/i386/pthread_once.S: Likewise
558 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: Likewise.
559 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S: Likewise.
560 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
561 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S: Likewise.
562 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
563 Likewise.
564 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
565 Likewise.
566 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Likewise.
567 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
568 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
569 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S: Likewise.
570 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S: Likewise.
571 * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S: Likewise.
572 * sysdeps/unix/sysv/linux/i386/i486/lowlevelmutex.S: Likewise.
573 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Likewise.
574
d130a341
UD
575 * allocatestack.c (allocate_stack): If mprotect() fails free the
576 TLS memory.
577
bc6389ad
UD
5782003-03-07 Ulrich Drepper <drepper@redhat.com>
579
41d4d223
UD
580 * sysdeps/i386/i486/bits/atomic.h: Fix a few unused definitions.
581
582 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Remove all trace of
583 lll_wake_tid. This was used only to work around kernel limits in
584 the early days.
585 * sysdeps/unix/sysv/linux/s390/lowlevellock.h: Likewise.
586 * sysdeps/unix/sysv/linux/sh/libc-lowlevellock.S: Likewise.
587 * sysdeps/unix/sysv/linux/sh/lowlevellock.S: Likewise.
588 * sysdeps/unix/sysv/linux/sh/lowlevellock.h: Likewise.
589
bc6389ad
UD
590 * init.c (__static_tls_align_m1): Renamed from __static_tls_align.
591 (__pthread_initialize_minimal_internal): Change initialization of
592 __static_tls_align_m1 appropriately.
593 * pthreadP.h (__static_tls_align_m1): Renamed from
594 __static_tls_align.
595 * allocatestack.c (allocate_stack): Use __static_tls_align_m1
596 instead of __static_tls_align-1.
597
cc775edf
UD
5982003-03-04 Ulrich Drepper <drepper@redhat.com>
599
0de28d5c 600 * sysdeps/unix/sysv/linux/x86_64/Makefile: New file.
6245b6ae 601
518b5308
UD
602 * pthread_create.c: Define __pthread_keys using nocommon
603 attribute, not by placing it explicitly in bss.
604 Remove DEFINE_DEALLOC definition. Not needed anymore.
605
606 * allocatestack.c: Define ARCH_MAP_FLAGS if not already defined.
607 Use it in mmap call to allocate stacks.
608
609 * sysdeps/pthread/createthread.c (create_thread): Fix comment.
610
cc775edf
UD
611 * pthread_create.c (start_thread): Use THREAD_SETMEM to store
612 result of the thread function.
613
4f6f0a8f
UD
6142003-03-03 Ulrich Drepper <drepper@redhat.com>
615
f04a2721
UD
616 * sysdeps/unix/sysv/linux/s390/dl-sysdep.h: Removed. The generic
617 version is just fine.
618
4f6f0a8f
UD
619 * sysdeps/unix/sysv/linux/libc_pthread_init.c
620 (__pthread_child_handler): Renamed from pthread_child_handler,
621 exported, and marked hidden. Change all users.
622 * sysdeps/unix/sysv/linux/register-atfork.c (free_mem): Do not
623 free __pthread_child_handler from child list.
624
7ce5c164
UD
6252003-03-03 Martin Schwidefsky <schwidefsky@de.ibm.com>
626
627 * atomic.h (atomic_exchange_and_add): Return newval, not oldval.
628
629 * sysdeps/pthread/pthread_cond_timedwait.c (__pthread_cond_timedwait):
630 Fix handling of cancellation and failing pthread_mutex_unlock call.
631 * sysdeps/pthread/pthread_cond_wait.c (__condvar_cleanup): Likewise.
632 (__pthread_cond_wait): Likewise.
633
634 * sysdeps/pthread/pthread_rwlock_timedrdlock.c
635 (pthread_rwlock_timedrdlock): Fix clobber of result variable by
636 lll_futex_timed_wait call.
637 * sysdeps/pthread/pthread_rwlock_timedwrlock.c
638 (pthread_rwlock_timedwrlock): Likewise.
639
640 * sysdeps/unix/sysv/linux/s390/libc-lowlevellock.c (___lll_lock):
641 Don't define lll_unlock_wake_cb and ___lll_timedwait_tid in libc.so.
642 * sysdeps/unix/sysv/linux/s390/lowlevellock.c: Remove XXX comments.
643
644 * sysdeps/unix/sysv/linux/s390/sem_post.c (__new_sem_post): Fix
645 check of lll_futex_wake return value.
646
ea6a015b
RM
6472003-03-03 Roland McGrath <roland@redhat.com>
648
649 * forward.c: Fix typo in __pthread_attr_init_2_0 compat_symbol decl.
650
651 * sysdeps/pthread/pthread-functions.h (struct pthread_functions):
652 Argument to ptr___pthread_cleanup_upto is __jmp_buf, not jmp_buf.
653 * sysdeps/unix/sysv/linux/jmp-unwind.c: Likewise.
654
4adacf57
UD
6552003-03-02 Ulrich Drepper <drepper@redhat.com>
656
1be3d664
UD
657 * sysdeps/pthread/timer_create.c (timer_create): Return correct
658 error for CPU clocks.
659
885bafa1
UD
660 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define
661 _POSIX_MONOTONIC_CLOCK.
662 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
663
4adacf57
UD
664 * tst-cancel4.c (tf_sleep): Lower sleep time a bit to not upset
665 recent kernels.
666
86bfff4d
UD
6672003-03-01 Ulrich Drepper <drepper@redhat.com>
668
669 * descr.h (struct pthread): Move cleanup field to the front.
670
d1149385
RM
6712003-03-01 Roland McGrath <roland@redhat.com>
672
673 * sem_open.c (sem_open): Braino fix.
674
bd8bb78b
UD
6752003-03-01 Ulrich Drepper <drepper@redhat.com>
676
748bec08
UD
677 * sysdeps/i386/tcb-offsets.sym: Add CLEANUP and CLEANUP_PREV.
678 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Inline
679 __pthread_cleanup_pop functionality.
680 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
681
bd8bb78b
UD
682 * descr.h (struct pthread): Move tid field to the front now that
683 it is often used.
684
685 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevelmutex.S
686 (__lll_mutex_timedlock_wait): Remove.
687 (__lll_mutex_unlock_wake): Don't save, load, and restore %esi.
688 * sysdeps/unix/sysv/linux/i386/i486/lowlevelmutex.S
689 (__lll_mutex_unlock_wake): Don't save, load, and restore %esi.
690 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
691 (lll_unlock_wake_cb): Don't save and restore %esi.
692 (__lll_unlock_wake): Add alignment. Don't save, load, and restore
693 %esi.
694 (__lll_timedwait_tid): Add alignment.
695 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S
696 (__lll_unlock_wake): Add alignment. Don't save, load, and restore
697 %esi.
698 (__lll_timedwait_tid): Removed.
699 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S
700 (__pthread_cond_broadcast): Don't save, load, and restore %esi.
701 * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S
702 (pthread_barrier_wait): Don't save, load, and restore %esi for
703 last thread.
704 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
705 (__pthread_cond_signal): Don't save, load, and restore %esi.
706 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S
707 (__pthread_rwlock_unlock): Don't save, load, and restore %esi.
708 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S (__new_sem_post):
709 Don't save, load, and restore %esi.
710
d2637c70
UD
7112003-02-27 Ulrich Drepper <drepper@redhat.com>
712
567fb22a
UD
713 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S:
714 Release lock before waking up the waiters.
715
427f5fa1
UD
716 * tst-exit1.c (do_test): Don't start more than one thread in parallel.
717
a2d83cfb
UD
718 * tst-rwlock9.c (writer_thread): Correct adding TIMEOUT.
719 (reader_thread): Likewise.
720
d2637c70
UD
721 * sysdeps/pthread/pthread_rwlock_unlock.c
722 (__pthread_rwlock_unlock): Release internal lock early. Don't try
723 to wake up readers if there are none.
724
725 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S:
726 Release internal lock before wake threads.
727
b1531183
UD
7282003-02-26 Ulrich Drepper <drepper@redhat.com>
729
dbf6131c
UD
730 * Makefile (tests): Add tst-rwlock10 and tst-rwlock11.
731 * tst-rwlock8.c: Initialize lock with INIT. Allow INIT to be
732 predefined.
733 * tst-rwlock9.c: Likewise.
734 * tst-rwlock10.c: New file.
735 * tst-rwlock11.c: New file.
736
695799fe
UD
737 * Makefile (tests): Add tst-dlsym1.
738 * tst-dlsym1.c: New file.
739
b1531183
UD
740 * init.c (__pthread_initialize_minimal_internal): Set
741 GL(dl_error_catch_tsd) to __libc_dl_error_tsd.
742 * Versions (libc:GLIBC_PRIVATE): Export __libc_dl_error_tsd.
743
3724f268
UD
7442003-02-24 Ulrich Drepper <drepper@redhat.com>
745
3857ca78
UD
746 * sem_open.c (sem_open): Fix handling of O_CREAT without O_EXCL.
747
80d80779
UD
748 * tst-cond2.c: Fix sychronization with child.
749
86371308
UD
750 * tst-rwlock8.c (reader_thread): Remove unused variable.
751
ffeb4481
UD
752 * Makefile: Add rules to build and run tst-tls3.
753 * tst-tls3.c: New file.
754 * tst-tls3mod.c: New file.
755
3724f268
UD
756 * Makefile (tests): Add tst-rwlock8 and tst-rwlock9.
757 * tst-rwlock8.c: New file.
758 * tst-rwlock9.c: New file.
759 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Fix
760 complete broken rwlock implementation.
761 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
762 Likewise.
763 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
764 Likewise.
765 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S: Likewise.
766 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
18a53579
UD
767 * sysdeps/pthread/pthread_rwlock_rdlock.c: Likewise.
768 * sysdeps/pthread/pthread_rwlock_timedrdlock.c: Likewise.
769 * sysdeps/pthread/pthread_rwlock_timedwrlock.c: Likewise.
770 * sysdeps/pthread/pthread_rwlock_unlock.c: Likewise.
771 * sysdeps/pthread/pthread_rwlock_wrlock.c: Likewise.
3724f268 772
8915cc40
RM
7732003-02-23 Roland McGrath <roland@redhat.com>
774
775 * Makefile (nptl-version): Change regexp so case sensitivity is ok.
776
fd1a0d0c
UD
7772003-02-23 Ulrich Drepper <drepper@redhat.com>
778
ecf28959
UD
779 * Makefile (tests): Add tst-context1.
780 * tst-context1.c: New file.
781
5e47b76b
UD
782 * Makefile (tests): Add tst-tls1 and tst-tls2.
783 * tst-tls1.c: New file.
784 * tst-tls2.c: New file.
785
5a6bbb41
UD
786 * libc-cancellation.c (__libc_enable_asynccancel): Correct test
787 for failed cmpxchg.
788
fd1a0d0c
UD
789 * pthread_create.c (start_thread): Set EXITING_BIT early.
790
791 * sysdeps/i386/tls.h (THREAD_GETMEM): Mark asm as volatile.
792 (THREAD_GETMEM_NC): Likewise.
793
757f9fcb
UD
7942003-02-22 Ulrich Drepper <drepper@redhat.com>
795
b1b8e747
UD
796 * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S: Shave
797 off 3 more bytes by using offset-less instructions when possible.
798
c780aa21 799 * Makefile: Add dependency for $(objpfx)version.d.
757f9fcb
UD
800
801 * eintr.c (eintr_source): Add unnecessary return but the compiler
802 insists.
803
804 * tst-kill3.c: Include <unistd.h>.
805
5148559c
RM
8062003-02-21 Roland McGrath <roland@redhat.com>
807
808 * pthread_create.c (start_thread): Call __libc_thread_freeres.
809
ab2d98e3
UD
8102003-02-21 Ulrich Drepper <drepper@redhat.com>
811
71028edd
UD
812 * Makefile (tests): Add tst-eintr1.
813 (distribute): Add eintr.c.
814 * tst-eintr1.c: New file.
815 * eintr.c: New file.
816
e814f748
UD
817 * pthread_cancel.c (pthread_cancel): Use tkill directly.
818
819 * sysdeps/unix/sysv/linux/pthread_kill.c (__pthread_kill):
820 Disallow sending SIGCANCEL.
821
ab2d98e3 822 * Makefile (tests): Remove tst-basic7. Add tst-kill1, tst-kill2,
9c03686d 823 tst-kill3, tst-kill4, tst-kill5, tst-kill6.
e814f748
UD
824 * tst-kill1.c: New file.
825 * tst-kill2.c: New file.
826 * tst-kill3.c: New file.
827 * tst-kill5.c: New file.
9c03686d 828 * tst-kill6.c: New file.
e814f748
UD
829 * tst-basic7.c: Renamed to...
830 * tst-kill4.c: ...this.
ab2d98e3 831
59fed0e2
RM
8322003-02-21 Roland McGrath <roland@redhat.com>
833
834 * Makefile (install-lib-ldscripts): New variable.
835
49dc759f
UD
8362003-02-21 Ulrich Drepper <drepper@redhat.com>
837
8c2e9a29
UD
838 * pthreadP.h: Define INVALID_TD_P and INVALID_NOT_TERMINATED_TD_P.
839 * pthread_cancel.c: Use INVALID_TD_P.
840 * pthread_detach.c: Likewise.
841 * pthread_getschedparam.c: Likewise.
842 * pthread_setschedparam.c: Likewise.
843 * sysdeps/pthread/pthread_getcpuclockid.c: Likewise.
844 * sysdeps/unix/sysv/linux/pthread_kill.c: Likewise.
845 * pthread_join.c: Use INVALID_NOT_TERMINATED_TD_P.
846 * pthread_timedjoin.c: Likewise.
847
848 * tst-basic7.c: Include <signal.h>.
849
49dc759f
UD
850 * pthread_join.c (pthread_join): Limited checking for invalid
851 descriptors.
852 * pthread_timedjoin.c (pthread_timedjoin_np): Likewise.
853
df5803bf
UD
8542003-02-20 Ulrich Drepper <drepper@redhat.com>
855
c5acd3d7
UD
856 * pthread_create.c (deallocate_tsd): Reset found_nonzero at the
857 beginning of the loop. Clear the entire first block of TSD.
df5803bf
UD
858 * Makefile (tests): Add tst-key4.
859 * tst-key4.c: New file.
860
729924a0
UD
8612003-02-18 Ulrich Drepper <drepper@redhat.com>
862
2f7dc594
UD
863 * Makefile (tests): Add tst-basic7.
864 * tst-basic7.c: New file.
865
ba25bb0f
UD
866 * pthread_create.c (deallocate_tsd): Mark as internal_function.
867 Add some more __builtin_expect.
868
12fd3c5f 869 * pthreadP.h: Define dummy version of DEBUGGING_P.
729924a0 870
5430d926
UD
8712003-02-17 Ulrich Drepper <drepper@redhat.com>
872
b0db7fbe
UD
873 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Remnove
874 _POSIX_THREAD_PRIORITY_SCHEDULING.
875 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Remove
876 _XOPEN_REALTIME_THREADS.
877 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Likewise.
878
879 * sysdeps/unix/sysv/linux/pthread_kill.c (__pthread_kill): The
880 kernel returns EINVAL for PID <= 0, work around it.
881
ecfda9bd
UD
882 * Makefile (tests): Add tst-signal5.
883 * tst-signal5.c: New file.
884
7d78ab99
UD
885 * sysdeps/unix/sysv/linux/bits/local_lim.h: Define TTY_NAME_MAX
886 and LOGIN_NAME_MAX.
887
371a2972
UD
888 * tst-cancel1.c (tf): Block all signals.
889
5430d926
UD
890 * Makefile (tests): Add tst-basic6.
891 * tst-basic6.c: New file.
892
893 * tst-basic1.c: Add test for process ID.
894
895 * Makefile (tests): Add tst-cancel10.
896 * tst-cancel10.c: New file.
897
898 * Makefile (tests): Add tst-signal4.
899 * tst-signal4.c: New file.
900
901 * sysdeps/pthread/pthread_sigmask.c (pthread_sigmask): Use
902 __sigismember instead of sigismember. Add __builtin_expect.
903
1564916a
UD
9042003-02-16 Ulrich Drepper <drepper@redhat.com>
905
179ff175
UD
906 * tst-attr1.c (do_test): Add tests for pthread_setcanceltype,
907 pthread_setcancelstate, and pthread_rwlock_setpshared.
908
e4335f9a
UD
909 * tst-cancel7.c (do_test): Make sure the pid file exists before
910 canceling the thread.
911
0a37669a
UD
912 * tst-rwlock6.c: More pthread_rwlock_timedwrlock and
913 pthread_rwlock_timedrdlock tests.
914 * tst-rwlock7.c: More pthread_rwlock_timedwrlock tests.
915 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
916 Check for invalid tv_nsec field.
917 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
918 Likewise.
919
920 * pthread_mutex_trylock.c (__pthread_mutex_trylock): Protect
921 recursive mutex of overflow.
922
923 * tst-attr1.c (do_test): Add test for pthread_mutexattr_setpshared.
924
e4335f9a 925 * libc-cancellation.c (__libc_enable_asynccancel): Rewrite to avoid
1564916a
UD
926 going into an endless loop.
927 * Makefile (tests): Add tst-cancel9.
928 * tst-cancel9.c: New file.
929
930 * pthread_cancel.c (pthread_cancel): Use the result of __pthread_kill.
931
b270b548
UD
9322003-02-15 Ulrich Drepper <drepper@redhat.com>
933
1c82b97f
UD
934 * tst-mutex5.c (do_test): Add more timedlock tests.
935
b2f05465 936 * tst-mutex2.c: Tests of trylock and unlock with ERROR mutexes.
c3bb9ee1
UD
937 * tst-mutex3.c (do_test): Add tests for trylock with RECURSIVE mutexes.
938
e798b60f
UD
939 * sysdeps/unix/sysv/linux/pthread_kill.c (__pthread_kill): Don't
940 use INLINE_SYSCALL. Error number is returned, not -1.
941
90491dc4
UD
942 * pthreadP.h: Mark declarations of __find_in_stack_list, __free_tcb,
943 and __deallocate_stack with internal_function.
944 * pthread_create.c: Adjust definitions appropriately.
945 * allocatestack.c: Likewise.
946
947 * pthread_join.c: Add one more __builtin_expect.
948 * pthread_timedjoin.c: Likewise.
949
950 * pthread_getspecific.c (__pthread_getspecific): Clear data->data
951 not data of sequence number does not match.
952 Add one __builtin_expect.
953
c6247c9d
UD
954 * Makefile (tests): Add tst-clock1.
955 * tst-clock1.c: New file.
956
b270b548
UD
957 * pthread_setconcurrency.c (pthread_setconcurrency): Fail for
958 negative arguments.
959 * Makefile (tests): Add tst-basic5.
960 * tst-basic5.c: New file.
961
700bf7af
UD
9622003-02-14 Ulrich Drepper <drepper@redhat.com>
963
757de559
UD
964 * Makefile (tests): Add tst-basic4.
965 * tst-basic4.c: New file.
966
47202270
UD
967 * pthreadP.h: Add declaraction for __nptl_nthreads.
968 * pthread_create.c: Define __nptl_nthreads
969 (start_thread): Increment __nptl_nthreads at beginning. Decrement
b270b548 970 after thread is done. If then zero, call exit(0).
47202270
UD
971 * sysdeps/pthread/pthread-functions.h (struct pthread_functions):
972 Add ptr_nthreads. Define HAVE_PTR_NTHREADS.
973 * init.c (pthread_functions): Initialize ptr_nthreads.
974 * allocatestack.c (nptl_nthreads): Remove definition and all uses.
975 (__reclaim_stacks): Decrement __nptl_nthreads.
976 * sysdeps/pthread/Makefile [$(subdir)==csu] (CFLAGS-libc-start.c):
977 Define.
978 * Makefile (tests): Add tst-basic3.
979 * tst-basic3.c: New file.
980
e320ef46
UD
981 * descr.h: Define CANCELING_BIT and CANCELING_BITMASK. Introduce
982 after CANCELTYPE_BIT, move the other bits up. Update CANCEL_RESTMASK.
983 * init.c (sigcancel_handler): Also set CANCELING_BITMASK bit in newval.
984 * pthread_cancel.c (pthread_cancel): Likewise. Also set CANCELING_BIT
985 if asynchronous canceling is enabled.
986 * pthread_join.c (pthread_join): When recognizing circular joins,
987 take into account the other thread might be already canceled.
988 * Makefile (tests): Add tst-join5.
989 * tst-join5.c: New file.
990
700bf7af
UD
991 * Makefile (tests): Add tst-join4.
992 * tst-join4.c: New file.
993
9942003-02-13 Ulrich Drepper <drepper@redhat.com>
995
996 * tst-cond4.c (main): Add test of pthread_attr_getpshared.
997
dac0f772
UD
9982003-02-13 Martin Schwidefsky <schwidefsky@de.ibm.com>
999
1000 * sysdeps/s390/tls.h (THREAD_GETMEM, THREAD_GETMEM_NC, THREAD_SETMEM,
1001 THREAD_SETMEM_NC): Use passed descr instead of THREAD_SELF.
1002 * sysdeps/unix/sysv/linux/s390/jmp-unwind.c (_longjmp_unwind): Avoid
1003 warning.
1004 * sysdeps/unix/sysv/linux/s390/lowlevellock.c: Include <sys/time.h>
1005 to avoid warning.
1006 * sysdeps/unix/sysv/linux/s390/sem_post.c (__new_sem_post): Return
1007 error if lll_futex_wake failed.
1008
e8cda341
UD
10092003-02-13 Ulrich Drepper <drepper@redhat.com>
1010
a7720b5e
UD
1011 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Fix
1012 handling of cancellation and failung pthread_mutex_unlock call.
1013 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
1014 * Makefile (tests): Add tst-cond8 and tst-cond9.
1015 * tst-cond8.c: New file.
1016 * tst-cond9.c: New file.
1017
a1ea4c06
UD
1018 * tst-cond7.c (do_test): Unlock the mutex before canceling the thread.
1019
1020 * sysdeps/pthread/pthread.h: Add missing initializers. Protect
1021 non-standard initializers with __USE_GNU.
1022
e8cda341
UD
1023 * Makefile (tests): Add tst-cleanup3.
1024 * tst-cleanup3.c: New file.
1025
2067577c
UD
10262003-02-12 Ulrich Drepper <drepper@redhat.com>
1027
89e78a95
UD
1028 * Makefile (tests): Add tst-attr1 and tst-attr2.
1029 * tst-attr1.c: New file.
1030 * tst-attr2.c: New file.
1031
dfdd294a
UD
1032 * Makefile: Add rules to build and run tst-atfork2 test.
1033 * tst-atfork2.c: New file.
1034 * tst-atfork2mod.c: New file.
1035
1036 * sysdeps/unix/sysv/linux/unregister-atfork.c
1037 (__unregister_atfork): Free the memory allocated for the handlers
1038 after removing them from the lists.
1039
1040 * sysdeps/unix/sysv/linux/register-atfork.c: Define memeory
1041 cleanup function.
1042
1043 * tst-atfork1.c (do_test): Wait for the child we forked.
1044 Report error in child.
1045
1046 * sysdeps/unix/sysv/linux/fork.c (__libc_fork): Fix comment.
1047
2067577c
UD
1048 * sysdeps/pthread/Makefile: Define CFLAGS-confstr.c.
1049
2a8a8a84
UD
10502003-02-10 Ulrich Drepper <drepper@redhat.com>
1051
d9dd121e
UD
1052 * Makefile (tests): Add tst-cancel8.
1053 * tst-cancel8.c: New file.
1054
2a8a8a84
UD
1055 * sysdeps/unix/sysv/linux/i386/pthread_once.S (clear_once_control): Fix
1056 clearing of control variable.
defd1870 1057 * Makefile (tests): Add tst-once3 and tst-once4.
2a8a8a84 1058 * tst-once3.c: New file.
defd1870 1059 * tst-once4.c: New file.
2a8a8a84 1060
a54e8d33
UD
10612003-02-08 kaz Kojima <kkojima@rr.iij4u.or.jp>
1062
1063 * sysdeps/sh/Makefile: New file.
1064 * sysdeps/sh/bits/atomic.h: New file.
1065 * sysdeps/sh/pthread_spin_init.c: New file.
1066 * sysdeps/sh/pthread_spin_lock.c: New file.
1067 * sysdeps/sh/pthread_spin_trylock.S: New file.
1068 * sysdeps/sh/pthread_spin_unlock.S: New file.
1069 * sysdeps/sh/pthreaddef.h: New file.
1070 * sysdeps/sh/tcb-offsets.sym: New file.
1071 * sysdeps/sh/td_ta_map_lwp2thr.c: New file.
1072 * sysdeps/sh/tls.h: New file.
1073 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: New file.
1074 * sysdeps/unix/sysv/linux/sh/bits/semaphore.h: New file.
1075 * sysdeps/unix/sysv/linux/sh/createthread.c: New file.
1076 * sysdeps/unix/sysv/linux/sh/fork.c: New file.
1077 * sysdeps/unix/sysv/linux/sh/libc-lowlevellock.S: New file.
1078 * sysdeps/unix/sysv/linux/sh/libc-lowlevelmutex.S: New file.
1079 * sysdeps/unix/sysv/linux/sh/lowlevel-atomic.h: New file.
1080 * sysdeps/unix/sysv/linux/sh/lowlevelcond.h: New file.
1081 * sysdeps/unix/sysv/linux/sh/lowlevellock.S: New file.
1082 * sysdeps/unix/sysv/linux/sh/lowlevellock.h: New file.
1083 * sysdeps/unix/sysv/linux/sh/lowlevelmutex.S: New file.
1084 * sysdeps/unix/sysv/linux/sh/lowlevelrwlock.h: New file.
1085 * sysdeps/unix/sysv/linux/sh/pt-initfini.c: New file.
1086 * sysdeps/unix/sysv/linux/sh/pt-vfork.S: New file.
1087 * sysdeps/unix/sysv/linux/sh/pthread_barrier_wait.S: New file.
1088 * sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S: New file.
1089 * sysdeps/unix/sysv/linux/sh/pthread_cond_signal.S: New file.
1090 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: New file.
1091 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: New file.
1092 * sysdeps/unix/sysv/linux/sh/pthread_once.S: New file.
1093 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: New file.
1094 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S: New file.
1095 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S: New file.
1096 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S: New file.
1097 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: New file.
1098 * sysdeps/unix/sysv/linux/sh/sem_post.S: New file.
1099 * sysdeps/unix/sysv/linux/sh/sem_timedwait.S: New file.
1100 * sysdeps/unix/sysv/linux/sh/sem_trywait.S: New file.
1101 * sysdeps/unix/sysv/linux/sh/sem_wait.S: New file.
1102 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h: New file.
1103
696e556e
UD
11042003-02-08 Ulrich Drepper <drepper@redhat.com>
1105
1106 * tst-cond2.c: Rearrange code to not rely on behavior undefined
1107 according to POSIX.
1108
1109 * tst-basic2.c (do_test): Lock mutex before creating the thread.
1110
fef710d6
UD
11112003-02-07 Ulrich Drepper <drepper@redhat.com>
1112
c6180643
UD
1113 * sysdeps/x86_64/tls.h: Remove unnecessary macros, left over from x86.
1114 (TLS_GET_FS): New #define.
1115 (TLS_SET_FS): New #define.
1116 Correct value of __NR_set_thread_area.
1117
fef710d6
UD
1118 * sysdeps/x86_64/td_ta_map_lwp2thr.c: New file.
1119
11090a99
UD
11202003-02-06 Ulrich Drepper <drepper@redhat.com>
1121
65c68990
UD
1122 * Makefile (tests): Add tst-popen1.
1123 * tst-popen1.c: New file.
1124
11090a99
UD
1125 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Remove wrong
1126 but inactive generalization.
1127 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
1128 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S: Likewise.
1129 Minor optimization, remove one instruction.
1130 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S: Likewise.
1131
a88c9263
UD
11322003-02-04 Martin Schwidefsky <schwidefsky@de.ibm.com>
1133
1134 * sysdeps/unix/sysv/linux/s390/fork.c: Correct order of parameters.
1135
11362003-01-31 Martin Schwidefsky <schwidefsky@de.ibm.com>
1137
1138 * init.c (__NR_set_tid_address): Add #ifdef for s390.
1139 * sysdeps/pthread/pthread_barrier_wait.c: New file.
1140 * sysdeps/pthread/pthread_cond_broadcast.c: New file.
1141 * sysdeps/pthread/pthread_cond_signal.c: New file.
1142 * sysdeps/pthread/pthread_cond_timedwait.c: New file.
1143 * sysdeps/pthread/pthread_cond_wait.c: New file.
1144 * sysdeps/pthread/pthread_rwlock_rdlock.c: New file.
1145 * sysdeps/pthread/pthread_rwlock_timedrdlock.c: New file.
1146 * sysdeps/pthread/pthread_rwlock_timedwrlock.c: New file.
1147 * sysdeps/pthread/pthread_rwlock_unlock.c: New file.
1148 * sysdeps/pthread/pthread_rwlock_wrlock.c: New file.
1149 * sysdeps/s390/Makefile: New file.
1150 * sysdeps/s390/bits/atomic.h: New file.
1151 * sysdeps/s390/pthread_spin_init.c: New file.
1152 * sysdeps/s390/pthread_spin_lock.c: New file.
1153 * sysdeps/s390/pthread_spin_trylock.c: New file.
1154 * sysdeps/s390/pthread_spin_unlock.c: New file.
1155 * sysdeps/s390/pthreaddef.h: New file.
1156 * sysdeps/s390/tcb-offsets.sym: New file.
1157 * sysdeps/s390/td_ta_map_lwp2thr.c: New file.
1158 * sysdeps/s390/tls.h: New file.
1159 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: New file.
1160 * sysdeps/unix/sysv/linux/s390/bits/semaphore.h: New file.
1161 * sysdeps/unix/sysv/linux/s390/createthread.c: New file.
1162 * sysdeps/unix/sysv/linux/s390/dl-sysdep.h: New file.
1163 * sysdeps/unix/sysv/linux/s390/fork.c: New file.
1164 * sysdeps/unix/sysv/linux/s390/jmp-unwind.c: New file.
1165 * sysdeps/unix/sysv/linux/s390/libc-lowlevellock.c: New file.
1166 * sysdeps/unix/sysv/linux/s390/libc-lowlevelmutex.c: New file.
1167 * sysdeps/unix/sysv/linux/s390/lowlevellock.c: New file.
1168 * sysdeps/unix/sysv/linux/s390/lowlevellock.h: New file.
1169 * sysdeps/unix/sysv/linux/s390/lowlevelmutex.c: New file.
1170 * sysdeps/unix/sysv/linux/s390/lowlevelsem.h: New file.
1171 * sysdeps/unix/sysv/linux/s390/pthread_once.c: New file.
1172 * sysdeps/unix/sysv/linux/s390/s390-32/pt-initfini.c: New file.
1173 * sysdeps/unix/sysv/linux/s390/s390-32/pt-vfork.S: New file.
1174 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h: New file.
1175 * sysdeps/unix/sysv/linux/s390/s390-64/pt-initfini.c: New file.
1176 * sysdeps/unix/sysv/linux/s390/s390-64/pt-vfork.S: New file.
1177 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h: New file.
1178 * sysdeps/unix/sysv/linux/s390/sem_post.c: New file.
1179 * sysdeps/unix/sysv/linux/s390/sem_timedwait.c: New file.
1180 * sysdeps/unix/sysv/linux/s390/libc-lowlevellock.c: New file.
1181 * sysdeps/unix/sysv/linux/s390/sem_wait.c: New file.
1182
6f1cff95
UD
11832003-02-04 Ulrich Drepper <drepper@redhat.com>
1184
ec609a8e
UD
1185 * atomic.h: Add a couple more default implementations.
1186 (atomic_compare_and_exchange_acq): Use
d45e8740
UD
1187 __arch_compare_and_exchange_32_acq in return value definition. It
1188 always exists.
1189 (atomic_bit_set): Renamed from atomic_set_bit.
0289bef9 1190 Add missing atomic_ prefixes.
e3ec8904 1191
6f1cff95
UD
1192 * sysdeps/pthread/bits/libc-lock.h (__libc_once): In case no
1193 thread library is available, use correct value to mark initialized
1194 once variable.
1195
4f088329
UD
11962003-02-03 Ulrich Drepper <drepper@redhat.com>
1197
6f1cff95
UD
1198 * allocatestack.c (allocate_stack): Use __getpagesize instead of
1199 __sysconf to determine pagesize.
1200
3e4fc359 1201 * pthread_create.c: Include <atomic.h>.
4f088329
UD
1202 * allocatestack.c (allocate_stack): Implement coloring of the
1203 allocated stack memory. Rename pagesize to pagesize_m1. It's the
1204 size minus one. Adjust users.
3e4fc359 1205 * sysdeps/i386/i686/Makefile: New file.
4f088329 1206
2f42e8be
UD
12072003-02-02 Ulrich Drepper <drepper@redhat.com>
1208
4301f7e2
UD
1209 * allocatestack.c: Improve comment throughout the file.
1210
2f42e8be 1211 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
a37818b3 1212 (__lll_lock_wait): Add branch prediction.
2f42e8be
UD
1213 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S
1214 (__lll_lock_wait): Likewise.
1215 (lll_unlock_wake_cb): Removed.
1216
4a7d6545
UD
12172003-01-31 Ulrich Drepper <drepper@redhat.com>
1218
1219 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Remove
1220 _POSIX_THREAD_PRIORITY_SCHEDULING.
1221
886d5973
UD
12222003-01-30 Jakub Jelinek <jakub@redhat.com>
1223
1224 * sysdeps/pthread/pthread-functions.h (struct pthread_functions):
1225 Fix return type of ptr___pthread_getspecific.
1226
e474ca78
UD
12272003-01-29 Ulrich Drepper <drepper@redhat.com>
1228
1229 * Makefile (tests): Add tst-umask1.
1230 (tst-umask1-ARGS): Define.
1231 * tst-umask1.c: New file.
1232
e6ebd2e4
UD
12332003-01-28 Ulrich Drepper <drepper@redhat.com>
1234
6cf26f41
UD
1235 * Makefile (libpthread-routines): Remove lowlevelrwlock. Add
1236 pthread_rwlock_rdlock, pthread_rwlock_timedrdlock,
1237 pthread_rwlock_wrlock, pthread_rwlock_timedwrlock, and
1238 pthread_rwlock_unlock.
1239 * sysdeps/unix/sysv/linux/i386/i486/lowlevelrwlock.S: Removed
1240 * sysdeps/unix/sysv/linux/i386/i586/lowlevelrwlock.S: Removed
1241 * sysdeps/unix/sysv/linux/i386/i686/lowlevelrwlock.S: Removed
1242 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: New file.
1243 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
1244 New file.
1245 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: New file.
1246 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
1247 New file.
1248 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S: New file.
1249 * sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_rdlock.S: New file.
1250 * sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_timedrdlock.S:
1251 New file.
1252 * sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_wrlock.S: New file.
1253 * sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_timedwrlock.S:
1254 New file.
1255 * sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_unlock.S: New file.
1256 * sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_rdlock.S: New file.
1257 * sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_timedrdlock.S:
1258 New file.
1259 * sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_wrlock.S: New file.
1260 * sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_timedwrlock.S:
1261 New file.
1262 * sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_unlock.S: New file.
1263
1d087a7e
UD
1264 * Makefile (libpthread-routines): Remove lowlevelcond and
1265 lowlevelsem. Add sem_wait, sem_trywait, sem_timedwait, sem_post,
1266 pthread_cond_wait, pthread_cond_timedwait, pthread_cond_signal,
1267 and pthread_cond_broadcast.
4a99d160
UD
1268 * sysdeps/unix/sysv/linux/i386/i486/lowlevelsem.S: Removed
1269 * sysdeps/unix/sysv/linux/i386/i486/lowlevelcond.S: Removed
1270 * sysdeps/unix/sysv/linux/i386/i586/lowlevelsem.S: Removed
1271 * sysdeps/unix/sysv/linux/i386/i586/lowlevelcond.S: Removed
1272 * sysdeps/unix/sysv/linux/i386/i686/lowlevelsem.S: Removed
1273 * sysdeps/unix/sysv/linux/i386/i686/lowlevelcond.S: Removed
1274 * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S: New file.
1275 * sysdeps/unix/sysv/linux/i386/i486/sem_trywait.S: New file.
1276 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: New file.
1277 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S: New file.
1278 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: New file.
1279 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: New file.
1280 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S: New file.
1281 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S: New file.
1282 * sysdeps/unix/sysv/linux/i386/i586/sem_wait.S: New file.
1283 * sysdeps/unix/sysv/linux/i386/i586/sem_trywait.S: New file.
1284 * sysdeps/unix/sysv/linux/i386/i586/sem_timedwait.S: New file.
1285 * sysdeps/unix/sysv/linux/i386/i586/sem_post.S: New file.
1286 * sysdeps/unix/sysv/linux/i386/i586/pthread_cond_wait.S: New file.
1287 * sysdeps/unix/sysv/linux/i386/i586/pthread_cond_timedwait.S: New file.
1288 * sysdeps/unix/sysv/linux/i386/i586/pthread_cond_signal.S: New file.
1289 * sysdeps/unix/sysv/linux/i386/i586/pthread_cond_broadcast.S: New file.
1290 * sysdeps/unix/sysv/linux/i386/i686/sem_wait.S: New file.
1291 * sysdeps/unix/sysv/linux/i386/i686/sem_trywait.S: New file.
1292 * sysdeps/unix/sysv/linux/i386/i686/sem_timedwait.S: New file.
1293 * sysdeps/unix/sysv/linux/i386/i686/sem_post.S: New file.
1294 * sysdeps/unix/sysv/linux/i386/i686/pthread_cond_wait.S: New file.
1295 * sysdeps/unix/sysv/linux/i386/i686/pthread_cond_timedwait.S: New file.
1296 * sysdeps/unix/sysv/linux/i386/i686/pthread_cond_signal.S: New file.
1297 * sysdeps/unix/sysv/linux/i386/i686/pthread_cond_broadcast.S: New file.
1298 * sysdeps/unix/sysv/linux/i386/lowlevelcond.h: New file.
1d087a7e 1299
e6ebd2e4
UD
1300 * sysdeps/unix/sysv/linux/i386/createthread.c: Define
1301 PREPARE_CREATE and TLS_VALUE with x86-specific bits. All the rest
1302 of the code is moved to ...
1303 * sysdeps/pthread/createthread.c: ...here. New file.
1304
a15698cb
UD
13052003-01-27 Ulrich Drepper <drepper@redhat.com>
1306
0566b130
UD
1307 * sysdeps/unix/sysv/linux/i386/i486/lowlevelsem.S
1308 (__new_sem_post): Clear %eax before returning.
1309 Reported by MAEDA Naoaki <maeda.naoaki@jp.fujitsu.com>.
1310
e6fb8846
UD
1311 * Makefile (tests): Add tst-cleanup2.
1312 * tst-cleanup2.c: New file.
1313
a15698cb
UD
1314 * sysdeps/pthread/bits/libc-lock.h (__libc_cleanup_region_start):
1315 Interpret first parameter correctly.
1316
8824b0a1
UD
13172003-01-17 Ulrich Drepper <drepper@redhat.com>
1318
1319 * Makefile (headers): Add bits/semaphore.h.
1320
850dcfca
UD
13212003-01-16 Jakub Jelinek <jakub@redhat.com>
1322
1323 * sysdeps/i386/tls.h (INIT_SYSINFO): Initialize _head->sysinfo even
1324 if not SHARED.
1325
574b892e
UD
13262003-01-14 Ulrich Drepper <drepper@redhat.com>
1327
a8d87c92
UD
1328 * sem_open.c (sem_open): Return SEM_FAILED if existing semaphore
1329 must be used and mapping failed.
1330 Reported by Luke Elliott <luke.elliott@activfinancial.com>.
1331
574b892e
UD
1332 * Makefile (CFLAGS-pthread_self.os): Define this, not
1333 CFLAGS-pthread_self.c.
1334
fb48047a
UD
13352003-01-13 Ulrich Drepper <drepper@redhat.com>
1336
47805511
UD
1337 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Don't export
1338 lll_unlock_wake_cb.
1339
fb48047a
UD
1340 * Makefile (libpthread-routines): Add version. Add rules to build
1341 version.os and banner.h.
1342 * version.c: New file.
1343
115bb61d
UD
13442003-01-13 Jakub Jelinek <jakub@redhat.com>
1345
1346 * pthread_mutex_lock.c (__pthread_mutex_lock_internal): Make
1347 the alias unconditional.
1348 * pthread_mutex_unlock.c (__pthread_mutex_unlock_internal): Likewise.
1349
13502003-01-13 Ulrich Drepper <drepper@redhat.com>
1351
1352 * Makefile (CFLAGS-pthread_self.c): New definition.
1353
6aca81bb
UD
13542003-01-06 Jakub Jelinek <jakub@redhat.com>
1355
1356 * sysdeps/pthread/pthread_sigmask.c (pthread_sigmask): Add
1357 INTERNAL_SYSCALL_DECL, add err argument to INTERNAL_SYSCALL* macros.
1358 * sysdeps/unix/sysv/linux/raise.c (raise): Likewise.
1359 * init.c (__pthread_initialize_minimal_internal): Likewise.
1360
e9c7764e
UD
13612003-01-07 Jakub Jelinek <jakub@redhat.com>
1362
b5facfda
UD
1363 * pthreadP.h (__pthread_cond_timedwait): Add prototype.
1364
e9c7764e
UD
1365 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h
1366 (RTLD_CORRECT_DYNAMIC_WEAK): Remove.
1367 (DL_SYSINFO_IMPLEMENTATION): Change into .text section and back.
1368 * sysdeps/unix/sysv/linux/i386/i686/dl-sysdep.h
1369 (RTLD_CORRECT_DYNAMIC_WEAK): Remove.
1370 (DL_SYSINFO_IMPLEMENTATION): Change into .text section and back.
1371
bef1e42f
UD
13722003-01-06 Jakub Jelinek <jakub@redhat.com>
1373
1374 * pthreadP.h (LIBC_CANCEL_HANDLED): Define.
1375 * pt-system.c (LIBC_CANCEL_HANDLED): Add.
1376 * tst-cancel-wrappers.sh: Remove all exceptions.
1377
bbd17455
UD
13782003-01-05 Ulrich Drepper <drepper@redhat.com>
1379
a73ab6df
UD
1380 * tst-cancel-wrappers.sh: Invoke gawk not awk since we use GNU awk
1381 features. Reported by Marijn Ros <marijn@mad.scientist.com>.
1382
bbd17455
UD
1383 * sysdeps/unix/sysv/linux/jmp-unwind.c: Include <pthread-functions.h>.
1384 Use __libc_pthread_functions array if SHARED.
1385
1386 * pthreadP.h: Move pthread_cond_2_0_t definition to...
1387 * sysdeps/unix/sysv/linux/internaltypes.h: ...here.
1388
1389 * sysdeps/pthread/bits/libc-lock.h (__libc_ptf_call): New #define.
1390 (__libc_rwlock_rdlock, __libc_rwlock_wrlock, __libc_rwlock_unlock,
1391 __libc_key_create, __libc_getspecific, __libc_setspecific): Use
1392 __libc_ptf_call instead of __libc_maybe_call.
1393 (PTF): New #define.
1394 (__libc_cleanup_region_start): Wrap function name with PTF call.
1395 (__libc_cleanup_region_end): Likewise.
1396 (__libc_cleanup_end): Likewise.
1397
1398 * pthread_getspecific.c: Add __pthread_getspecific_internal alias.
1399 * pthread_setspecific.c: Add __pthread_setspecific_internal alias.
1400 * pthread_key_create.c: Add __pthread_key_create_internal alias.
1401 * pthreadP.h: Add prototypes.
1402
1403 * sysdeps/unix/sysv/linux/i386/i486/lowlevelrwlock.S: Add
1404 __pthread_rwlock_rdlock, __pthread_rwlock_wrlock, and
1405 __pthread_rwlock_unlock aliases.
1406 * pthreadP.h: Add prototypes for new aliases.
1407
1408 * pthreadP.h (struct pthead_functions): Moved to...
1409 * sysdeps/pthread/pthread-functions.h: ...here. New file.
1410 * init.c (pthread_functions): Add initializers for new elements.
1411
1412 * cleanup_defer.c: Add __pthread_cleanup_push_defer and
1413 __pthread_cleanup_pop_restore aliases.
1414 * pthreadP.h: Add prototypes.
1415
1416 * cleanup.c: Rename _GI_pthread_cleanup_push to __pthread_cleanup_push
1417 and _GI_pthread_cleanup_pop to __pthread_cleanup_pop.
1418 * sysdeps/unix/sysv/linux/i386/i486/lowlevelcond.S: Adjust caller.
1419 * sysdeps/unix/sysv/linux/i386/pthread_once.S: Likewise.
1420 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Likewise.
1421 * pthreadP.h: Adjust prototypes and callers.
1422
d27a78be
UD
14232003-01-04 Ulrich Drepper <drepper@redhat.com>
1424
b74121ae
UD
1425 * Makefile (tests): Add tst-cancel7.
1426 (tst-cancel7-ARGS): New variable.
bbd17455 1427 * tst-cancel7.c: New file.
b74121ae 1428
29bc410c
UD
1429 * old_pthread_cond_broadcast.c: Optimize initialization a bit to work
1430 around gcc defficiencies.
1431 * old_pthread_cond_signal.c: Likewise.
1432 * old_pthread_cond_timedwait.c: Likewise.
1433 * old_pthread_cond_wait.c: Likewise.
1434
d27a78be
UD
1435 * pthreadP.h (pthread_cond_2_0_t): Remove unneeded lock element.
1436
733f25e6
UD
14372003-01-03 Ulrich Drepper <drepper@redhat.com>
1438
7edb2ae3
UD
1439 * Makefile (tests): Add tst-cond7.
1440 * tst-cond7.c: New file.
1441
b1151300
UD
1442 * sysdeps/unix/sysv/linux/i386/i486/lowlevelcond.S
1443 (condvar_cleanup): Get condvar address from the right place.
1444
733f25e6
UD
1445 * atomic.h: Correct definitions of atomic_full_barrier,
1446 atomic_read_barrier, atomic_write_barrier.
1447
1448 * old_pthread_cond_broadcast.c: Make memory allocate and initialization
1449 race-free.
1450 * old_pthread_cond_signal.c: Likewise.
1451 * old_pthread_cond_timedwait.c: Likewise.
1452 * old_pthread_cond_wait.c: Likewise.
1453
686b7223
UD
14542003-01-03 Jakub Jelinek <jakub@redhat.com>
1455
1456 * Makefile ($(objpfx)libpthread.so): Depend on ld.so.
1457
0e07706e
UD
14582003-01-03 Ulrich Drepper <drepper@redhat.com>
1459
997256dd
UD
1460 * pthreadP.h (pthread_cond_2_0_t): New type.
1461 (struct pthread_functions): Use new type for 2.0 condvar callbacks.
1462 Use new type for the 2.0 condvar function prototypes.
1463 * forward.c: Use pthread_cond_2_0_t for 2.0 condvar functions.
1464 * old_pthread_cond_init.c: Use pthread_cond_2_0_t for condvar
1465 parameter.
1466 * old_pthread_cond_destroy.c: Likewise.
1467 * old_pthread_cond_broadcast.c: Likewise. Lock appropriately.
1468 * old_pthread_cond_signal.c: Likewise.
1469 * old_pthread_cond_timedwait.c: Likewise.
1470 * old_pthread_cond_wait.c: Likewise.
1471
842d2817
UD
1472 * sysdeps/unix/sysv/linux/i386/i486/lowlevelcond.S
1473 (__pthread_cond_wait): Don't save cancellation mode and seq value
1474 in same location.
1475
0e07706e
UD
1476 * herrno.c (__h_errno_location): Don't define as weak.
1477
bf293afe
UD
14782003-01-02 Jakub Jelinek <jakub@redhat.com>
1479
1480 * Versions [libc] (GLIBC_2.3.2): Export pthread_cond_broadcast,
1481 pthread_cond_destroy, pthread_cond_init, pthread_cond_signal
1482 and pthread_cond_wait.
1483 * old_pthread_cond_broadcast.c (__old_pthread_cond_broadcast):
1484 Renamed to...
1485 (__pthread_cond_broadcast_2_0): ... this.
1486 * old_pthread_cond_destroy.c (__old_pthread_cond_destroy):
1487 Renamed to...
1488 (__pthread_cond_destroy_2_0): ... this.
1489 * old_pthread_cond_init.c (__old_pthread_cond_init):
1490 Renamed to...
1491 (__pthread_cond_init_2_0): ... this.
1492 * old_pthread_cond_signal.c (__old_pthread_cond_signal):
1493 Renamed to...
1494 (__pthread_cond_signal_2_0): ... this.
1495 * old_pthread_cond_wait.c (__old_pthread_cond_wait):
1496 Renamed to...
1497 (__pthread_cond_wait_2_0): ... this.
1498 * pthread_cond_destroy.c: Include shlib-compat.h.
1499 (pthread_cond_destroy): Change strong_alias into versioned_symbol.
1500 * pthread_cond_init.c: Include shlib-compat.h.
1501 (pthread_cond_init): Change strong_alias into versioned_symbol.
1502 * pthreadP.h (struct pthread_functions): Rename ptr_pthread_cond_*
1503 fields to ptr___pthread_cond_* and add ptr___pthread_cond_*_2_0
1504 fields.
1505 (__pthread_cond_broadcast_2_0, __pthread_cond_destroy_2_0,
1506 __pthread_cond_init_2_0, __pthread_cond_signal_2_0,
1507 __pthread_cond_wait_2_0): New prototypes.
1508 (__old_pthread_cond_broadcast, __old_pthread_cond_destroy,
1509 __old_pthread_cond_init, __old_pthread_cond_signal,
1510 __old_pthread_cond_wait): Removed.
1511 * init.c: Include shlib-compat.h.
1512 (pthread_functions): Guard ptr___pthread_attr_init_2_0
1513 initialization with SHLIB_COMPAT (GLIBC_2_0, GLIBC_2_1).
1514 Rename ptr_pthread_cond_* to ptr___pthread_cond_*, initialize
1515 ptr___pthread_cond_*_2_0 fields.
1516 * forward.c: Export both pthread_cond_*@@GLIBC_2.3.2 and
1517 pthread_cond_*@GLIBC_2.0 compatibility symbols.
1518
1519 * sysdeps/pthread/sigaction.c (SIGCANCEL): Only define if
1520 LIBC_SIGACTION was not yet defined.
1521 [!defined LIBC_SIGACTION]: Define LIBC_SIGACTION, #include self.
1522 [!defined LIBC_SIGACTION] (__sigaction): New function and
1523 libc_hidden_weak.
1524 [!defined LIBC_SIGACTION] (sigaction): New weak_alias.
1525 [defined LIBC_SIGACTION]: #include_next <sigaction.c>.
1526
15272003-01-02 Jakub Jelinek <jakub@redhat.com>
1528
1529 * Makefile (CFLAGS-pthread_atfork.c): Add -DNOT_IN_libc.
1530
05df18c3
UD
15312003-01-02 Ulrich Drepper <drepper@redhat.com>
1532
1533 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_cond_t):
1534 New, larger type definition.
1535 * sysdeps/unix/sysv/linux/i386/i486/lowlevelcond.S: New condvar
1536 implementation.
1537 * Versions [libpthread]: Add definitions for new pthread_cond_*
1538 interfaces for version GLIBC_2.3.2.
1539 * pthread_cond_init.c: Update initialization for new type definition.
1540 * Makefile (libpthread-routines): Remove pthread_cond_wait,
1541 pthread_cond_timedwait, pthread_cond_signal, and
1542 pthread_cond_broadcast. Add old_pthread_cond_init,
1543 old_pthread_cond_destroy, old_pthread_cond_wait,
1544 old_pthread_cond_timedwait, old_pthread_cond_signal, and
1545 old_pthread_cond_broadcast.
1546 * old_pthread_cond_broadcast.c: New file.
1547 * old_pthread_cond_destroy.c: New file.
1548 * old_pthread_cond_init.c: New file.
1549 * old_pthread_cond_signal.c: New file.
1550 * old_pthread_cond_timedwait.c: New file.
1551 * old_pthread_cond_wait.c: New file.
1552 * pthreadP.h: Add prototypes for the compatibility interfaces.
1553
1554 * pthread_cond_destroy.c: Don't include <errno.h>.
1555
fd8979e4
UD
15562003-01-01 Ulrich Drepper <drepper@redhat.com>
1557
1558 * sysdeps/unix/sysv/linux/i386/i486/lowlevelrwlock.S: Avoid
1559 unnecessary zero offset when addressing MUTEX.
1560
6d6ee629
UD
15612002-12-31 Ulrich Drepper <drepper@redhat.com>
1562
1563 * sysdeps/unix/sysv/linux/fork.h: Add libc_hidden_proto for
1564 __register_atfork.
1565 * sysdeps/unix/sysv/linux/register-atfork.c: Add libc_hidden_def
1566 for __register_atfork.
1567
a4baf360
UD
15682002-12-31 Jakub Jelinek <jakub@redhat.com>
1569
1570 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Use __ASSEMBLER__
1571 instead of ASSEMBLER test macro.
1572
1573 * sysdeps/unix/sysv/linux/allocrtsig.c (__libc_current_sigrtmin,
1574 __libc_current_sigrtmax): Add libc_hidden_def.
1575
1576 * sysdeps/pthread/list.h: Remove assert.h include.
1577
e9395a94
UD
15782002-12-31 Ulrich Drepper <drepper@redhat.com>
1579
1580 * sysdeps/pthread/pt-initfini.c (call_initialize_minimal): Use
1581 __pthread_initialize_minimal_internal not
1582 __pthread_initialize_minimal.
1583
89d6e444
UD
15842002-12-30 Ulrich Drepper <drepper@redhat.com>
1585
416d2de6
UD
1586 * sysdeps/pthread/pt-initfini.c (call_initialize_minimal): Mark
1587 __pthread_initialize_minimal as hidden.
1588
89d6e444
UD
1589 * init.c (__pthread_initialize_minimal_internal): Don't mark as
1590 constructor.
1591
15922002-12-31 Jakub Jelinek <jakub@redhat.com>
1593
1594 * Makefile ($(inst_libdir)/libpthread.so): Depend on
1595 $(common-objpfx)format.lds, include that into the output script.
1596 Fix comment.
1597 (extra-B-pthread.so): Change linuxthreads/ into nptl/.
1598
8cac677c
UD
15992002-12-28 Andreas Jaeger <aj@suse.de>
1600
1601 * sysdeps/unix/sysv/linux/xstatconv.c (xstat_conv): Adjust for
1602 nsec resolution changes.
1603 (xstat64_conv): Likewise.
1604 (xstat32_conv): Likewise.
1605 * sysdeps/unix/sysv/linux/kernel_stat.h: Add nsec resolution for
1606 struct kernel_stat.
1607 * sysdeps/unix/sysv/linux/bits/stat.h: Add nsec resolution for
1608 structs stat and stat64.
1609 * time/time.h (__timespec_defined): Define for __USE_MISC.
89d6e444 1610 * io/sys/stat.h [__USE_MISC]: Define __need_timespec for struct stat.
8cac677c 1611
49e9f864
UD
16122002-12-30 Jakub Jelinek <jakub@redhat.com>
1613
1614 * forward.c (FORWARD2): Renamed from FORWARD3. Remove unused export
1615 argument.
1616 (pthread_attr_init_2_0, pthread_attr_init_2_1): Use FORWARD macro.
1617 (pthread_exit): Use strong_alias to avoid warnings.
1618 * pthreadP.h (struct pthread_functions): Rename ptr_pthread_exit
1619 and ptr_pthread_attr_init_2_* to ptr___pthread_exit and
1620 ptr___pthread_attr_init_2_*.
1621 * init.c (pthread_functions): Adjust.
1622
bab09b26
UD
16232002-12-29 Ulrich Drepper <drepper@redhat.com>
1624
598d7a42
UD
1625 * forward.c: Make all functions available by default again. It
1626 caused too much trouble.
1627
bab09b26
UD
1628 * pt-siglongjmp.c: Removed.
1629
3b7ed871
UD
16302002-12-28 Jakub Jelinek <jakub@redhat.com>
1631
1632 * sysdeps/i386/tls.h: Include tcb-offsets.h in assembler.
1633 (SYSINFO_OFFSET, MULTIPLE_THREADS_OFFSET): Remove.
1634 * sysdeps/i386/Makefile: New file.
1635 * sysdeps/i386/tcb-offsets.sym: New file.
1636 * sysdeps/pthread/tcb-offsets.h: New file.
1637 * sysdeps/unix/sysv/linux/libc_pthread_init.c (__libc_pthread_init):
1638 Remove MULTIPLE_THREADS_OFFSET and SYSINFO_OFFSET checks.
1639
1640 * sysdeps/unix/sysv/linux/Versions [libc] (GLIBC_PRIVATE): Move
1641 __register_atfork...
1642 (GLIBC_2.3.2): ...here.
1643
16442002-12-28 Ulrich Drepper <drepper@redhat.com>
1645
1646 * sysdeps/pthread/pthread.h: Mark pthread_attr_getstackaddr and
1647 pthread_attr_setstackaddr with __attribute_deprecated__.
1648
270d9d47
UD
16492002-12-27 Jakub Jelinek <jakub@redhat.com>
1650
1651 * pt-system.c (system): Remove cancellation handling.
1652 * tst-cancel-wrappers.sh: Allow pt-system.o* to not use the
1653 cancellation routines.
1654
131fd126
UD
16552002-12-28 Ulrich Drepper <drepper@redhat.com>
1656
afb2e954
UD
1657 * descr.h: Include <dl-sysdep.h>.
1658 (struct pthread): Move header.data.list to the back of the struct.
131fd126
UD
1659 * sysdeps/i386/tls.h (tcbhead_t): Move list to the back of the struct.
1660 (MULTIPLE_THREADS_OFFSET): Adjust offset.
1661 (SYSINFO_OFFSEET): Likewise.
1662
16632002-12-27 Jakub Jelinek <jakub@redhat.com>
1664
1665 * sysdeps/unix/sysv/linux/i386/i686/dl-sysdep.h (USE_DL_SYSINFO):
1666 Define.
1667 (DL_SYSINFO_DEFAULT): Cast to uintptr_t to avoid warnings.
1668 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h (NEED_DL_SYSINFO,
1669 DL_SYSINFO_DEFAULT, DL_SYSINFO_IMPLEMENTATION): Define.
1670 (USE_DL_SYSINFO): Undef.
1671
16722002-12-22 Jakub Jelinek <jakub@redhat.com>
1673
1674 * Makefile (tests-reverse): Use $(objpfx)../libc.so instead of
1675 $(common-objpfx)libc.so.
1676 * tst-cancel4.c (tf_write, tf_writev): Increase buf sizes so that
1677 it is bigger than pipe buffer size even on arches with bigger
1678 page size.
1679 (tf_usleep): Cast usleep argument to useconds_t to avoid warnings.
1680
a218c9cf
UD
16812002-12-25 Ulrich Drepper <drepper@redhat.com>
1682
1683 * sysdeps/unix/sysv/linux/i386/i486/lowlevelsem.S: Implement
1684 correct errno access for case that USE___THREAD is not defined.
1685
015a2dc9
UD
16862002-12-24 Ulrich Drepper <drepper@redhat.com>
1687
1688 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h: Add missing #endif.
1689 Patch by Marijn Ros <marijn@mad.scientist.com>.
1690
5220f9ac
RM
16912002-12-22 Roland McGrath <roland@redhat.com>
1692
1693 * Makefile (omit-deps): Add $(unix-syscalls:%=ptw-%).
1694
1561bf63
UD
16952002-12-20 Ulrich Drepper <drepper@redhat.com>
1696
1697 * sysdeps/pthread/bits/stdio-lock.h (_IO_lock_inexpensive): Define.
1698
3325198e
UD
16992002-12-19 Ulrich Drepper <drepper@redhat.com>
1700
057c823f
UD
1701 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h: Don't define
1702 NEED_DL_SYSINFO since no processor < i686 had the sysenter opcode.
1703 * sysdeps/unix/sysv/linux/i386/i686/dl-sysdep.h: New file.
1704
097eca29
UD
1705 * sysdeps/unix/sysv/linux/i386/pthread_once.S: Use ENTER_KERNEL instead
1706 of int $0x80.
1707 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Likewise.
1708 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevelmutex.S: Likewise.
1709 * sysdeps/unix/sysv/linux/i386/i486/lowlevelcond.S: Likewise.
1710 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Likewise.
1711 * sysdeps/unix/sysv/linux/i386/i486/lowlevelmutex.S: Likewise.
1712 * sysdeps/unix/sysv/linux/i386/i486/lowlevelrwlock.S: Likewise.
1713 * sysdeps/unix/sysv/linux/i386/i486/lowlevelsem.S: Likewise.
1714 * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S: Likewise.
1715
1716 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Add support for using
1717 sysenter.
1718 * sysdeps/unix/sysv/linux/i386/lowlevelsem.h: Likewise.
1719
1720 * sysdeps/i386/tls.h: Unconditionally include <dl-sysdep.h>.
1721
5f5843e3
UD
1722 * allocatestack.c (allocate_stack) [NEED_DL_SYSINFO]: Set sysinfo
1723 in new TCB.
1724 * sysdeps/unix/sysv/linux/i386/createthread.c (create_thread): Check
1725 that sysinfo is properly initialized.
1726 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h: Define RTLD_PRIVATE_ERRNO
1727 to 1 only for ld.so.
1728
3325198e
UD
1729 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h: Define
1730 RTLD_CORRECT_DYNAMIC_WEAK.
1731
74e8f2dc
UD
17322002-12-19 Jakub Jelinek <jakub@redhat.com>
1733
1734 * forward.c (pthread_attr_init_2_0, pthread_attr_init_2_1):
1735 Use return 0 as 6th argument to FORWARD4.
1736 * pthread_equal.c: Include pthreadP.h instead of pthread.h.
1737
df45b31e
UD
17382002-12-18 Ulrich Drepper <drepper@redhat.com>
1739
1740 * descr.h (struct pthread) [NEED_DL_SYSINFO]: Add sysinfo member.
1741 * sysdeps/i386/tls.h (tcbhead_t): Add sysinfo member.
1742 Define SYSINFO_OFFSEET if NEED_DL_SYSINFO is defined.
1743 (INIT_SYSINFO): New #define.
1744 (TLS_TP_INIT): Use INIT_SYSINFO.
1745 * sysdeps/unix/sysv/linux/libc_pthread_init.c (__libc_pthread_init):
1746 At test to make sure SYSINFO_OFFSET value is correct.
1747 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h: New file.
1748
3d539579
UD
17492002-12-18 Jakub Jelinek <jakub@redhat.com>
1750
1751 * sysdeps/pthread/flockfile.c (flockfile): Change into weak alias.
1752 * sysdeps/unix/sysv/linux/raise.c (gsignal): Add weak alias to raise.
1753 * Versions [libc: GLIBC_2.0]: Add pthread_attr_init.
1754 [libpthread: GLIBC_2.1]: Remove __pthread_rwlock_init,
1755 __pthread_rwlock_destroy, __pthread_rwlock_rdlock,
1756 __pthread_rwlock_wrlock, __pthread_rwlock_unlock,
1757 __pthread_rwlock_tryrdlock and __pthread_rwlock_trywrlock.
1758
d7913e0e
UD
17592002-12-18 Ulrich Drepper <drepper@redhat.com>
1760
f051627f
UD
1761 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Use ENTER_KERNEL
1762 macro instead of using int $0x80 directly.
1763
d7913e0e
UD
1764 * sysdeps/pthread/bits/stdio-lock.h: New file.
1765 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevelmutex.S: New file.
1766 * sysdeps/unix/sysv/linux/i386/i586/libc-lowlevelmutex.S: New file.
1767 * sysdeps/unix/sysv/linux/i386/i686/libc-lowlevelmutex.S: New file.
1768 * Makefile (routines): Add libc-lowlevelmutex.
1769
1770 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Remove
1771 __i686.get_pc_thunk.dx.
1772
f077a4a9
UD
17732002-12-17 Jakub Jelinek <jakub@redhat.com>
1774
1775 * Makefile (libpthread-shared-only-routines): Add pt-allocrtsig.
1776 (tests): Depend on $(objpfx)tst-cancel-wrappers.out.
1777 ($(objpfx)tst-cancel-wrappers.out): New rule.
1778 * tst-cancel-wrappers.sh: New test.
1779 * tst-locale1.c: Include signal.h.
1780 (uselocale): Test static linking of __libc_current_sigrt*.
1781
17822002-12-17 Ulrich Drepper <drepper@redhat.com>
1783
1784 * Makefile (tests): Add tst-cancel6.
1785 * tst-cancel6.c: New file
1786
bd499a3b
UD
17872002-12-17 Jakub Jelinek <jakub@redhat.com>
1788
1789 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h (SINGLE_THREAD_P):
1790 Define meaningfully for assembler as well.
1791 * pthreadP.h (struct pthread_functions): Remove
1792 ptr_pthread_attr_init field. Add ptr_pthread_attr_init_2_0
1793 and ptr_pthread_attr_init_2_1 fields.
1794 * init.c (pthread_functions): Initialize ptr_pthread_attr_init_2_0
1795 and ptr_pthread_attr_init_2_1 instead of ptr_pthread_attr_init.
1796 * forward.c (FORWARD4): Renamed from FORWARD3. Add export argument.
1797 (FORWARD3): Define using FORWARD4.
1798 (pthread_attr_init): Provide both @GLIBC_2.0 and @@GLIBC_2.1
1799 versions.
1800 * pt-system.c: Remove duplicate stdlib.h include.
1801
0a1063f4
UD
18022002-12-16 Ulrich Drepper <drepper@redhat.com>
1803
87d60668
UD
1804 * sem_init.c: Define sem_init@GLIBC_2.0.
1805 * sem_destroy.c: Define sem_destroy@GLIBC_2.0.
1806 * sem_getvalue.c: Define sem_getvalue@GLIBC_2.0.
1807
0a1063f4
UD
1808 * flockfile.c: Moved to...
1809 * sysdeps/pthread/flockfile.c: ...here. New file.
1810 * funlockfile.c: Moved to...
1811 * sysdeps/pthread/funlockfile.c: ...here. New file.
1812 * ftrylockfile.c: Moved to...
1813 * sysdeps/pthread/ftrylockfile.c: ...here. New file.
1814
9634cf9d
UD
18152002-12-16 Jakub Jelinek <jakub@redhat.com>
1816
1817 * libc-cancellation.c: Guard both function with
1818 #if !defined NOT_IN_libc.
1819 * Makefile (libpthread-routines): Use ptw-, not pt- prefix for the
1820 automatically provided pthread wrappers.
1821 * pthreadP.h (LIBC_CANCEL_ASYNC, LIBC_CANCEL_RESET): Define to
1822 CANCEL_* if IS_IN_libpthread and to dummy versions if not in libc
1823 nor in libpthread.
1824 * pt-open.c: Removed.
1825 * pt-fcntl.c: Removed.
1826 * pt-fsync.c: Removed.
1827 * pt-lseek.c: Removed.
1828 * pt-msgrcv.c: Removed.
1829 * pt-msgsnd.c: Removed.
1830 * pt-msync.c: Removed.
1831 * pt-nanosleep.c: Removed.
1832 * pt-open64.c: Removed.
1833 * pt-pause.c: Removed.
1834 * pt-pread.c: Removed.
1835 * pt-pread64.c: Removed.
1836 * pt-pwrite.c: Removed.
1837 * pt-pwrite64.c: Removed.
1838 * pt-read.c: Removed.
1839 * pt-recv.c: Removed.
1840 * pt-recvfrom.c: Removed.
1841 * pt-recvmsg.c: Removed.
1842 * pt-send.c: Removed.
1843 * pt-sendto.c: Removed.
1844 * pt-sigtimedwait.c: Removed.
1845 * pt-sigwait.c: Removed.
1846 * pt-wait.c: Removed.
1847 * pt-waitpid.c: Removed.
1848 * pt-write.c: Removed.
1849 * pt-accept.c: Removed.
1850 * pt-close.c: Removed.
1851 * pt-connect.c: Removed.
1852 * pt-lseek64.c: Removed.
1853 * pt-sendmsg.c: Removed.
1854 * pt-tcdrain.c: Removed.
1855
6ee8d334
UD
18562002-12-15 Ulrich Drepper <drepper@redhat.com>
1857
81fa9371
UD
1858 * init.c (__pthread_initialize_minimal_internal): Renamed from
1859 __pthread_initialize_minimal. Make old name an alias. This
1860 converts a normal relocation into a relative relocation.
1861
f3015aa5
UD
1862 * pt-fcntl.c (__fcntl): Use fcntl64 syscall, not fcntl.
1863
4cbc1950
UD
1864 * Versions [libpthread: GLIBC_2.3.2]: Remove creat, poll, pselect,
1865 readv, select, sigpause, sigsuspend, sigwaitinfo, waitid, writev.
1866 * Makefile (libpthread-routines): Remove pt-creat, pt-poll,
1867 pt-pselect, pt-readv, pt-select, pt-sigpause, pt-sigsuspend,
1868 pt-sigwaitinfo, pt-waitid, and pt-writev.
1869 * pt-creat.c: Removed.
1870 * pt-poll.c: Removed.
1871 * pt-pselect.c: Removed.
1872 * pt-readv.c: Removed.
1873 * pt-select.c: Removed.
1874 * pt-sigpause.c: Removed.
1875 * pt-sigsuspend.c: Removed.
1876 * pt-sigwaitinfo.c: Removed.
1877 * pt-waitid.c: Removed.
1878 * pt-writev.c: Removed.
1879
8454830b
UD
1880 * init.c (pthread_functions): New variable.
1881 (__pthread_initialize_minimal): Pass pointer to pthread_functions
1882 (or NULL) to __libc_pthread_init.
1883 * forward.c: Rewrite to use __libc:pthread_functions array to get
1884 function addresses.
1885 * sysdeps/unix/sysv/linux/fork.h: Remove __libc_pthread_init
1886 prototype.
1887 * sysdeps/unix/sysv/linux/libc_pthread_init.c (__libc_pthread_init):
1888 Take new parameter. Copy content of variable pointed to by it
1889 to __libc_pthread_init.
1890
1891 * pthreadP.h (struct pthread_functions): New type.
1892 (__libc_pthread_init): Declare.
1893
1894 * pthread_attr_destroy.c: Add namespace protected alias.
1895 * pthread_attr_getdetachstate.c: Likewise.
1896 * pthread_attr_getinheritsched.c: Likewise.
1897 * pthread_attr_getschedparam.c: Likewise.
1898 * pthread_attr_getschedpolicy.c: Likewise.
1899 * pthread_attr_getscope.c: Likewise.
1900 * pthread_attr_setdetachstate.c: Likewise.
1901 * pthread_attr_setinheritsched.c: Likewise.
1902 * pthread_attr_setschedparam.c: Likewise.
1903 * pthread_attr_setschedpolicy.c: Likewise.
1904 * pthread_attr_setscope.c: Likewise.
1905 * pthread_cond_broadcast.c: Likewise.
1906 * pthread_cond_destroy.c: Likewise.
1907 * pthread_cond_init.c: Likewise.
1908 * pthread_cond_signal.c: Likewise.
1909 * pthread_cond_wait.c: Likewise.
1910 * pthread_condattr_destroy.c: Likewise.
1911 * pthread_condattr_init.c: Likewise.
1912 * pthread_equal.c: Likewise.
1913 * pthread_exit.c: Likewise.
1914 * pthread_getschedparam.c: Likewise.
1915 * pthread_self.c: Likewise.
1916 * pthread_setcancelstate.c: Likewise.
1917 * pthread_setschedparam.c: Likewise.
1918 * pthread_mutex_destroy.c: Likewise.
1919 * pthread_mutex_init.c: Likewise.
1920 * pthreadP.h: Add prototypes for the aliases.
1921
0d5f4929
UD
1922 * sysdeps/unix/sysv/linux/i386/createthread.c (create_thread): Set
1923 multiple_threads member in correct TCB to 1.
1924
6ee8d334
UD
1925 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Define
1926 SINGLE_THREAD_P. If in libc or libpthread examine multiple_thread
1927 member of thread decriptor, otherwise return unconditionally 1.
1928
2fb6444d
UD
19292002-12-14 Ulrich Drepper <drepper@redhat.com>
1930
1931 * sysdeps/unix/sysv/linux/i386/pt-socket.S: Changes folded into the
1932 regular Linux version. Remove file.
1933 * sysdeps/unix/sysv/linux/connect.S: Likewise. Remove file.
1934 * sysdeps/unix/sysv/linux/llseek.c: Likewise. Remove file.
1935 * sysdeps/unix/sysv/linux/msgrcv.c: Likewise. Remove file.
1936 * sysdeps/unix/sysv/linux/msgsnd.c: Likewise. Remove file.
1937 * sysdeps/unix/sysv/linux/open64.c: Likewise. Remove file.
1938 * sysdeps/unix/sysv/linux/poll.c: Likewise. Remove file.
1939 * sysdeps/unix/sysv/linux/pread.c: Likewise. Remove file.
1940 * sysdeps/unix/sysv/linux/pread64.c: Likewise. Remove file.
1941 * sysdeps/unix/sysv/linux/pselect.c: Likewise. Remove file.
1942 * sysdeps/unix/sysv/linux/pwrite.c: Likewise. Remove file.
1943 * sysdeps/unix/sysv/linux/pwrite64.c: Likewise. Remove file.
1944 * sysdeps/unix/sysv/linux/readv.c: Likewise. Remove file.
1945 * sysdeps/unix/sysv/linux/recv.S: Likewise. Remove file.
1946 * sysdeps/unix/sysv/linux/recvfrom.S: Likewise. Remove file.
1947 * sysdeps/unix/sysv/linux/recvmsg.S: Likewise. Remove file.
1948 * sysdeps/unix/sysv/linux/send.S: Likewise. Remove file.
1949 * sysdeps/unix/sysv/linux/sendmsg.S: Likewise. Remove file.
1950 * sysdeps/unix/sysv/linux/sendto.S: Likewise. Remove file.
1951 * sysdeps/unix/sysv/linux/sigpause.c: Likewise. Remove file.
1952 * sysdeps/unix/sysv/linux/sigsuspend.c: Likewise. Remove file.
1953 * sysdeps/unix/sysv/linux/sigtimedwait.c: Likewise. Remove file.
1954 * sysdeps/unix/sysv/linux/sigwait.c: Likewise. Remove file.
1955 * sysdeps/unix/sysv/linux/sigwaitinfo.c: Likewise. Remove file.
1956 * sysdeps/unix/sysv/linux/system.c: Likewise. Remove file.
1957 * sysdeps/unix/sysv/linux/tcdrain.c: Likewise. Remove file.
1958 * sysdeps/unix/sysv/linux/wait.c: Likewise. Remove file.
1959 * sysdeps/unix/sysv/linux/waitid.c: Likewise. Remove file.
1960 * sysdeps/unix/sysv/linux/waitpid.c: Likewise. Remove file.
1961 * sysdeps/unix/sysv/linux/writev.c: Likewise. Remove file.
1962 * sysdeps/unix/sysv/linux/i386/fcntl.c: Likewise. Remove file.
1963
86b2dc40
UD
19642002-12-14 Jakub Jelinek <jakub@redhat.com>
1965
1966 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: New file.
1967 * sysdeps/unix/sysv/linux/open.c: Removed.
1968 * sysdeps/unix/sysv/linux/fsync.c: Removed.
1969 * sysdeps/unix/sysv/linux/lseek.c: Removed.
1970 * sysdeps/unix/sysv/linux/msync.c: Removed.
1971 * sysdeps/unix/sysv/linux/read.c: Removed.
1972 * sysdeps/unix/sysv/linux/close.c: Removed.
1973 * sysdeps/unix/sysv/linux/creat.c: Removed.
1974 * sysdeps/unix/sysv/linux/nanosleep.c: Removed.
1975 * sysdeps/unix/sysv/linux/pause.c: Removed.
1976 * sysdeps/unix/sysv/linux/select.c: Removed.
1977 * sysdeps/unix/sysv/linux/write.c: Removed.
1978
9d263d72
UD
19792002-12-14 Ulrich Drepper <drepper@redhat.com>
1980
1981 * sysdeps/unix/sysv/linux/i386/pt-socket.S: Check multiple_threads
1982 element in TCB to see whether locking is needed.
1983
1984 * sysdeps/unix/sysv/linux/libc_pthread_init.c: Check that
1985 MULTIPLE_THREADS_OFFSET value is correct.
1986
1987 * sysdeps/unix/sysv/linux/close.c: New file.
1988 * sysdeps/unix/sysv/linux/connect.S: New file.
1989 * sysdeps/unix/sysv/linux/creat.c: New file.
1990 * sysdeps/unix/sysv/linux/fsync.c: New file.
1991 * sysdeps/unix/sysv/linux/llseek.c: New file.
1992 * sysdeps/unix/sysv/linux/lseek.c: New file.
1993 * sysdeps/unix/sysv/linux/msgrcv.c: New file.
1994 * sysdeps/unix/sysv/linux/msgsnd.c: New file.
1995 * sysdeps/unix/sysv/linux/msync.c: New file.
1996 * sysdeps/unix/sysv/linux/nanosleep.c: New file.
1997 * sysdeps/unix/sysv/linux/open.c: New file.
1998 * sysdeps/unix/sysv/linux/open64.c: New file.
1999 * sysdeps/unix/sysv/linux/pause.c: New file.
2000 * sysdeps/unix/sysv/linux/poll.c: New file.
2001 * sysdeps/unix/sysv/linux/pread.c: New file.
2002 * sysdeps/unix/sysv/linux/pread64.c: New file.
2003 * sysdeps/unix/sysv/linux/pselect.c: New file.
2004 * sysdeps/unix/sysv/linux/pwrite.c: New file.
2005 * sysdeps/unix/sysv/linux/pwrite64.c: New file.
2006 * sysdeps/unix/sysv/linux/readv.c: New file.
2007 * sysdeps/unix/sysv/linux/recv.S: New file.
2008 * sysdeps/unix/sysv/linux/recvfrom.S: New file.
2009 * sysdeps/unix/sysv/linux/recvmsg.S: New file.
2010 * sysdeps/unix/sysv/linux/select.c: New file.
2011 * sysdeps/unix/sysv/linux/send.S: New file.
2012 * sysdeps/unix/sysv/linux/sendmsg.S: New file.
2013 * sysdeps/unix/sysv/linux/sendto.S: New file.
2014 * sysdeps/unix/sysv/linux/sigpause.c: New file.
2015 * sysdeps/unix/sysv/linux/sigsuspend.c: New file.
2016 * sysdeps/unix/sysv/linux/sigtimedwait.c: New file.
2017 * sysdeps/unix/sysv/linux/sigwait.c: New file.
2018 * sysdeps/unix/sysv/linux/sigwaitinfo.c: New file.
2019 * sysdeps/unix/sysv/linux/system.c: New file.
2020 * sysdeps/unix/sysv/linux/tcdrain.c: New file.
2021 * sysdeps/unix/sysv/linux/wait.c: New file.
2022 * sysdeps/unix/sysv/linux/waitid.c: New file.
2023 * sysdeps/unix/sysv/linux/waitpid.c: New file.
2024 * sysdeps/unix/sysv/linux/writev.c: New file.
2025 * sysdeps/unix/sysv/linux/i386/fcntl.c: New file.
2026
2027 * pt-readv.c: Fix comment.
2028
20292002-12-14 Jakub Jelinek <jakub@redhat.com>
2030
2031 * tst-cleanup1.c: Include stdlib.h.
2032
2033 * tst-cancel5.c: New test.
2034 * Makefile (tests): Add tst-cancel5.
2035 (tst-cancel5): Link against libc.so libpthread.so in that order.
2036
9ae0909b
UD
20372002-12-13 Ulrich Drepper <drepper@redhat.com>
2038
b7bdd9c4
UD
2039 * forward.c (test_loaded): Prevent recursive calls.
2040
9ae0909b
UD
2041 * Makefile (routines): Add libc-cancellation.
2042 * libc-cancellation.c: New file.
2043 * descr.h (struct pthread): Add multiple_threads field.
2044 * allocatestack.c (allocate_stack): Initialize multiple_header field of
2045 new thread descriptor to 1.
2046 * sysdeps/unix/sysv/linux/i386/createthread.c (create_thread):
2047 Initialize multiple_thread field after successful thread creation.
2048 * cancellation.c (__do_cancel): Move to pthreadP.h.
2049 (__pthread_enable_asynccancel): Remove parameter from __do_cancel call.
2050 (__pthread_disable_asynccancel): Add internal_function attribute.
2051 * init.c (sigcancel_handler): Remove parameter from __do_cancel call.
2052 * pthread_setcancelstate.c: Likewise.
2053 * pthread_setcanceltype.c: Likewise.
2054 * pthread_exit.c: Likewise.
2055 * pthreadP.h (CANCELLATION_P): Likewise.
2056 (__do_cancel): Define as static inline.
2057 (LIBC_CANCEL_ASYNC, LIBC_CANCEL_RESET): New #defines.
2058 (__libc_enable_asynccancel, __libc_disable_asynccancel): New
2059 declarations.
2060 * sysdeps/i386/tls.h (tcbhead_t): Add list and multiple_threads
2061 fields. Define MULTIPLE_THREADS_OFFSET.
2062 * sysdeps/pthread/bits/libc-lock.h: Remove __libc_locking_needed
2063 declaration.
2064 * sysdeps/unix/sysv/linux/accept.S: New file.
2065 * sysdeps/unix/sysv/linux/read.c: New file.
2066 * sysdeps/unix/sysv/linux/write.c: New file.
2067 * sysdeps/unix/sysv/linux/i386/pt-socket.S: New file.
2068 * sysdeps/unix/sysv/linux/libc_pthread_init.c: Remove definition and
2069 initialization of __libc_locking_needed.
2070 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Don't use
2071 __libc_locking_needed, use multiple_threads field in TCB.
2072 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Likewise.
2073
22f20674
UD
20742002-12-12 Ulrich Drepper <drepper@redhat.com>
2075
2ad2e1e7
UD
2076 * sysdeps/unix/sysv/linux/i386/i686/libc-lowlevellock.S: Use i486
2077 version.
2078 * sysdeps/unix/sysv/linux/i386/i586/libc-lowlevellock.S: Likewise.
2079
22f20674
UD
2080 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Correct
2081 access to __libc_locking_needed for PIC.
2082
aa80bf86
UD
20832002-12-12 Jakub Jelinek <jakub@redhat.com>
2084
2085 * sysdeps/pthread/bits/libc-lock.h (__libc_locking_needed): Only
2086 declare for libc.so.
2087 (__libc_lock_init, __libc_lock_init_recursive): Change into comma
2088 expression.
2089 (__libc_lock_lock): Put into statement expression.
2090 (__libc_lock_unlock): Remove trailing semicolon.
2091 * sysdeps/unix/sysv/linux/fork.h (__libc_pthread_init): Fix typo.
2092
24021373
RM
20932002-12-12 Roland McGrath <roland@redhat.com>
2094
2095 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Use asm operand with
2096 "m" constraint to refer to __libc_locking_needed. Declare it here.
2097
14e7aece
UD
20982002-12-12 Ulrich Drepper <drepper@redhat.com>
2099
2100 * sysdeps/unix/sysv/linux/fork-gen.c: Renamed to...
2101 * sysdeps/unix/sysv/linux/libc_pthread_init.c: ...this.
2102 Initialize __libc_locking_needed.
2103 * init.c (__pthread_initialize_minimal): Call __libc_pthread_init
2104 instead of __register_pthread_fork_handler.
2105 * sysdeps/pthread/bits/libc-lock.h: Declare __libc_locking_needed.
2106 * sysdeps/unix/sysv/linux/Makefile (sysdep_routimes): Replace
2107 fork-gen with libc_pthread_init.
2108 * sysdeps/unix/sysv/linux/Versions: Use __libc_pthread_init instead
2109 of __register_pthread_fork_handler.
2110 * sysdeps/unix/sysv/linux/fork.h: Declare __libc_pthread_init instead
2111 of __register_pthread_fork_handler.
2112 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Use
2113 __libc_locking_needed to determine whether lock prefix can be avoided.
2114 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Likewise.
2115
85631c8e
UD
21162002-12-11 Ulrich Drepper <drepper@redhat.com>
2117
da63009e
UD
2118 * Makefile (tests): Add tst-cleanup1.
2119 * tst-cleanup1.c: New file.
2120 * cancellation.c (__cleanup_thread): Removed.
2121 (__do_cancel): Remove call to __cleanup_thread.
2122 * pthreadP.h: Remove __cleanup_thread prorotype.
2123
000160a2
UD
2124 * sysdeps/pthread/bits/libc-lock.h (__libc_cleanup_region_start):
2125 Remember function and argument even if cancellation handler
2126 function is not available.
2127 (__libc_cleanup_region_end): Execute registered function directly if
2128 pthread functions are not available.
2129 (__libc_cleanup_end): Likewise.
2130
85631c8e
UD
2131 * init.c (__pthread_initialize_minimal): Fix initialization in
2132 static lib by preventing gcc from being too clever.
2133
dce8f2b6
UD
21342002-12-10 Ulrich Drepper <drepper@redhat.com>
2135
34a075be
UD
2136 * init.c (__pthread_initialize_minimal): Remove unneccesary
2137 sigaddset call.
2138
dce8f2b6
UD
2139 * Makefile (tests): We can run tst-locale2 now.
2140
e5e45b53
UD
21412002-12-09 Ulrich Drepper <drepper@redhat.com>
2142
2143 * Versions: Remove duplicated sigwait entry.
2144
bdb04f92
UD
21452002-12-08 Ulrich Drepper <drepper@redhat.com>
2146
1e506629
UD
2147 * pthreadP.h: Enable pthread_cleanup_{push,pop} optimizations only
2148 inside libpthread.
2149
a3957dd5
UD
2150 * pt-fcntl.c (__fcntl): Initialize oldtype to avoid warning.
2151
bdb04f92
UD
2152 * pthreadP.h: Declare __pthread_enable_asynccancel and
2153 __pthread_disable_asynccancel.
2154 (CANCEL_ASYNC): Use __pthread_enable_asynccancel.
2155 (CANCEL_RESET): Use __pthread_disable_asynccancel.
2156 * cancellation.c (__pthread_enable_asynccancel): New function.
2157 (__pthread_disable_asynccancel): New function.
2158 * pt-accept.c: Adjust for CANCEL_ASYNC and CANCEL_RESET change.
2159 * pt-close.c: Likewise.
2160 * pt-connect.c: Likewise.
2161 * pt-creat.c: Likewise.
2162 * pt-fcntl.c: Likewise.
2163 * pt-fsync.c: Likewise.
2164 * pt-lseek.c: Likewise.
2165 * pt-lseek64.c: Likewise.
2166 * pt-msgrcv.c: Likewise.
2167 * pt-msgsnd.c: Likewise.
2168 * pt-msync.c: Likewise.
2169 * pt-nanosleep.c: Likewise.
2170 * pt-open.c: Likewise.
2171 * pt-open64.c: Likewise.
2172 * pt-pause.c: Likewise.
2173 * pt-poll.c: Likewise.
2174 * pt-pread.c: Likewise.
2175 * pt-pread64.c: Likewise.
2176 * pt-pselect.c: Likewise.
2177 * pt-pwrite.c: Likewise.
2178 * pt-pwrite64.c: Likewise.
2179 * pt-read.c: Likewise.
2180 * pt-readv.c: Likewise.
2181 * pt-recv.c: Likewise.
2182 * pt-recvfrom.c: Likewise.
2183 * pt-recvmsg.c: Likewise.
2184 * pt-select.c: Likewise.
2185 * pt-send.c: Likewise.
2186 * pt-sendmsg.c: Likewise.
2187 * pt-sendto.c: Likewise.
2188 * pt-sigpause.c: Likewise.
2189 * pt-sigsuspend.c: Likewise.
2190 * pt-sigtimedwait.c: Likewise.
2191 * pt-sigwait.c: Likewise.
2192 * pt-sigwaitinfo.c: Likewise.
2193 * pt-system.c: Likewise.
2194 * pt-tcdrain.c: Likewise.
2195 * pt-wait.c: Likewise.
2196 * pt-waitid.c: Likewise.
2197 * pt-waitpid.c: Likewise.
2198 * pt-write.c: Likewise.
2199 * pt-writev.c: Likewise.
a3957dd5
UD
2200 * pthread_join.c: Likewise.
2201 * pthread_timedjoin.c: Likewise.
bdb04f92
UD
2202
2203 * pt-sigpause.c (sigsuspend): Call __sigsuspend.
2204 (__xpg_sigpause): New function.
2205 * Versions (libpthread:GLIBC_2.3.2): Add __xpg_sigpause.
2206
6ccb3834
UD
22072002-12-07 Ulrich Drepper <drepper@redhat.com>
2208
09efc3ba
UD
2209 * Makefile (CFLAGS-ftrylockfile.c): Add -D_IO_MTSAFE_IO.
2210
2211 * cleanup.c: Move declarations of _GI_pthread_cleanup_push and
2212 _GI_pthread_cleanup_pop to pthreadP.h.
2213
2214 * ftrylockfile.c: Use _IO_lock_trylock instead of
2215 pthread_mutex_trylock.
2216
2217 * pthreadP.h (CANCEL_ASYNC): Use __pthread_setcanceltype.
2218 (CANCEL_RESET): Likewise.
2219 (__pthread_setcanceltype_): Declare.
2220 (__pthread_mutex_lock_internal): Declare.
2221 (__pthread_mutex_unlock_internal): Declare.
2222 (__pthread_once_internal): Declare.
2223 (pthread_cleanup_push): Redefine using _GI_pthread_cleanup_push.
2224 (pthread_cleanup_pop): Redefine using _GI_pthread_cleanup_pop.
2225
2226 * pthread_cond_timedwait.c: Use INTUSE is calls to pthread_mutex_lock
2227 and pthread_mutex_unlock.
2228 * pthread_cond_wait.c: Likewise.
2229 * pthread_mutex_lock.c: Use INTDEF to define alias if needed.
2230 * pthread_mutex_unlock.c: Likewise.
2231
2232 * pthread_setcanceltype.c: Add additional alias
2233 __pthread_setcanceltype.
2234
2235 * sem_unlink.c (sem_unlink): Use __pthread_once with INTDEF.
2236 * sem_open.c (sem_open): Likewise.
2237 Use __libc_open, __libc_write, and __libc_close instead of
2238 open, write, and close respectively.
2239
2240 * sysdeps/pthread/bits/libc-lock.h (__libc_lock_trylock_internal):
2241 Rewrite as statement expression since it must return a value.
2242
2243 * pthread_cancel.c: Use __pthread_kill instead of pthread_kill.
2244 * sysdeps/unix/sysv/linux/pthread_kill.c: Define additional alias
2245 __pthread_kill.
2246
2247 * sysdeps/unix/sysv/linux/i386/pthread_once.S: Define additional
2248 alias __pthread_once_internal.
2249
6ccb3834
UD
2250 * sysdeps/unix/sysv/linux/raise.c: Use libc_hidden_def for raise.
2251
d3c9f895
UD
22522002-12-06 Ulrich Drepper <drepper@redhat.com>
2253
4614167a
UD
2254 * Makefile (tests): Add tst-stdio1 and tst-stdio2.
2255 * tst-stdio1.c: New file.
2256 * tst-stdio2.c: New file.
2257
a4548cea
UD
2258 * init.c (__pthread_initialize_minimal): Correct INIT_LIST_HEAD use.
2259
d3c9f895
UD
2260 * Makefile (tests): Comment out tst-locale2 for now.
2261 (CFLAGS-flockfile.c, CFLAGS-funlockfile.c): Define to -D_IO_MTSAFE_IO.
2262
2263 * sysdeps/unix/sysv/linux/Makefile: Define CFLAGS-fork.c to
2264 -D_IO_MTSAFE_IO.
2265 * sysdeps/unix/sysv/linux/fork.c: Include <bits/stdio-lock.h>.
2266 Use _IO_lock_init instead of explicit assignment.
2267
2268 * sysdeps/pthread/bits/libc-lock.h: Define __rtld_lock_* macros.
2269 Define __libc_lock_* and __libc_lock_recursive macros with
2270 lowlevellock macros, not pthread mutexes.
2271
2272 * flockfile.c: Include <bits/stdio-lock.h>. Use _IO_lock_lock instead
2273 of pthread_mutex_lock.
2274 * funlockfile.c: Include <bits/stdio-lock.h>. Use _IO_lock_unlock
2275 instead of pthread_mutex_unlock.
2276
fde89ad0
RM
22772002-12-06 Roland McGrath <roland@redhat.com>
2278
2279 * allocatestack.c (__stack_user): Use uninitialized defn.
2280 * init.c (__pthread_initialize_minimal): Initialize it here.
2281
11767d47
RM
22822002-12-05 Roland McGrath <roland@redhat.com>
2283
fde89ad0
RM
2284 * sysdeps/i386/tls.h (TLS_INIT_TP): Make it return zero or an error
2285 string.
2286 * sysdeps/x86_64/tls.h (TLS_INIT_TP): Likewise.
2287
11767d47
RM
2288 * sysdeps/unix/sysv/linux/i386/createthread.c (create_thread): Add
2289 missing & here too.
2290
440d8bc2
UD
22912002-12-05 Ulrich Drepper <drepper@redhat.com>
2292
2293 * sysdeps/unix/sysv/linux/Makefile (sysdep_routines): Remove
2294 lowlevellock.
2295 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: New file.
2296 * sysdeps/unix/sysv/linux/i386/i586/libc-lowlevellock.S: New file.
2297 * sysdeps/unix/sysv/linux/i386/i686/libc-lowlevellock.S: New file.
2298 * sysdeps/pthread/bits/libc-lock.h: Use lowlevellock implementation
2299 for __libc_lock_* macros.
2300 * Makefile (routines): Add libc-lowlevellock.
2301
23022002-10-09 Roland McGrath <roland@redhat.com>
2303
2304 * sysdeps/pthread/bits/libc-lock.h (__libc_maybe_call): New macro.
2305 Under [__PIC__], call the function via the pointer fetched for
2306 comparison rather than a call by name that uses the PLT.
2307 (__libc_lock_init, __libc_rwlock_init, __libc_lock_fini)
2308 (__libc_rwlock_fini, __libc_lock_lock, __libc_rwlock_rdlock)
2309 (__libc_rwlock_wrlock, __libc_lock_trylock, __libc_rwlock_tryrdlock)
2310 (__libc_rwlock_trywrlock, __libc_lock_unlock, __libc_rwlock_unlock)
2311 (__libc_key_create, __libc_getspecific, __libc_setspecific): Use it.
2312
d5ed0118
RM
23132002-12-04 Roland McGrath <roland@redhat.com>
2314
2315 * forward.c (pthread_self): Use FORWARD3 macro to correct return type.
2316
2317 * sysdeps/i386/td_ta_map_lwp2thr.c: Moved from ../nptl_db.
2318 * sysdeps/generic/td_ta_map_lwp2thr.c: New file.
2319
2320 * pthread_create.c (start_thread): Add missing & on __nptl_last_event.
2321
eaa4099f
UD
23222002-12-04 Ulrich Drepper <drepper@redhat.com>
2323
2324 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Make pthread_t
2325 a completely opaque, non-integer type.
2326 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
2327
33b5d0cc
UD
23282002-12-05 Jakub Jelinek <jakub@redhat.com>
2329
2330 * sysdeps/i386/tls.h: Include stdlib.h.
2331 * sysdeps/x86_64/tls.h: Likewise.
2332
7a5cdb30
UD
23332002-12-04 Ulrich Drepper <drepper@redhat.com>
2334
c4a6d859
UD
2335 * Makefile (tests): Add tst-locale2.
2336 (tests-static): Likewise.
2337 * tst-locale2.c: New file.
2338
7a5cdb30
UD
2339 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Mark asms as
2340 volatile and add memory clobbers to lock operations.
2341
d82d5d12
UD
23422002-12-03 Ulrich Drepper <drepper@redhat.com>
2343
69cae3cf
UD
2344 * sysdeps/i386/i686/bits/atomic.h: Use i486 version.
2345 * sysdeps/i386/i486/bits/atomic.h: New file.
2346 * sysdeps/i386/i586/bits/atomic.h: New file.
2347 * sysdeps/i386/i686/pthread_spin_trylock.S: Define HAVE_CMOV and
2348 include i486 version.
2349 * sysdeps/i386/i486/pthread_spin_trylock.S: New file.
2350 * sysdeps/i386/i586/pthread_spin_trylock.S: New file.
c97c64de 2351 Patch by Marijn Ros <marijn@mad.scientist.com>.
69cae3cf 2352
e4044c01
UD
2353 * allocatestack.c (get_cached_stack): Don't crash if we first
2354 found a stack with a larger size then needed.
2355 Reported by Hui Huang <hui.huang@sun.com>.
2356
d82d5d12
UD
2357 * Makefile (tests): Add tst-sysconf.
2358 * tst-sysconf.c: New file.
2359
2360 * sysdeps/unix/sysv/linux/bits/local_lim.h: Undefine
2361 PTHREAD_THREADS_MAX.
2362
fa9a4ff0
RM
23632002-12-02 Roland McGrath <roland@redhat.com>
2364
2365 * pthreadP.h (__stack_user, __nptl_create_event, __nptl_death_event):
2366 Declare using hidden_proto instead of attribute_hidden, so there are
2367 non-.hidden static symbols for gdb to find.
2368 (__pthread_keys): Likewise.
2369 * events.c (__nptl_create_event, __nptl_death_event): Add hidden_def.
2370 * allocatestack.c (__stack_user): Likewise.
2371 * pthread_create.c (__pthread_keys): Likewise.
2372 (__nptl_threads_events, __nptl_last_event): Make these static instead
2373 of hidden.
2374 * pthread_key_create.c (__pthread_pthread_keys_max,
2375 __pthread_pthread_key_2ndlevel_size): Renamed from __linuxthreads_*.
2376
91949a33
UD
23772002-12-02 Ulrich Drepper <drepper@redhat.com>
2378
c22b52fa
UD
2379 * Makefile (tests): Add tst-locale1. If buid-static is yes link
2380 statically.
2381 * tst-locale1.c: New file.
2382
beb6aa41
UD
2383 * pthread_cond_timedwait.c: Include <stdlib.h>.
2384
91949a33
UD
2385 * Makefile (tests): Add tst-fork2 and tst-fork3.
2386 * tst-fork2.c: New file.
2387 * tst-fork3.c: New file.
2388
654dff90
UD
23892002-11-28 Ulrich Drepper <drepper@redhat.com>
2390
cb0e76b4
UD
2391 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: New file.
2392
2393 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define macros which
2394 require it to 200112L.
2395
2396 * sysdeps/unix/sysv/linux/i386/i486/lowlevelrwlock.S: Use cmov
2397 instruction only if HAVE_CMOV is defined.
2398 * sysdeps/unix/sysv/linux/i386/i686/lowlevelrwlock.S: Define HAVE_CMOV.
2399
975aa229
UD
2400 * sysdeps/unix/sysv/linux/x86_64/bits/semaphore.h: New file.
2401
654dff90
UD
2402 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S: New file.
2403
2404 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: New file.
2405
2406 * sysdeps/unix/sysv/linux/x86_64/pt-vfork.S: New file.
2407
a3931336
UD
24082002-11-27 Ulrich Drepper <drepper@redhat.com>
2409
c10c099c
UD
2410 * sysdeps/x86_64/bits/atomic.h: New file.
2411
2412 * sysdeps/i386/i686/bits/atomic.h: Fix asm syntax for 8- and
2413 16-bit operations.
2414
dca99d27
UD
2415 * sysdeps/unix/sysv/linux/raise.c (raise): Use INTERNAL_SYSCALL if
2416 possible since gettid cannot fail.
2417
f78deea6
UD
2418 * sysdeps/x86_64/pthreaddef.h: New file.
2419
2420 * sysdeps/i386/pthreaddef.h (gettid): Removed.
2421
2422 * sysdeps/x86_64/pthread_spin_init.c: New file.
2423 * sysdeps/x86_64/pthread_spin_lock.c: New file.
2424 * sysdeps/x86_64/pthread_spin_trylock.c: New file.
2425 * sysdeps/x86_64/pthread_spin_unlock.c: New file.
2426
2427 * sysdeps/i386/i686/pthread_spin_trylock.S (pthread_spin_trylock):
2428 Add missing lock prefix. Minute optimization.
2429
2430 * tst-spin2.c (main): Also check successful trylock call.
2431
2432 * sysdeps/pthread/pthread_sigmask.c (pthread_sigmask): Use correct
2433 syscall. Fix typo in case INTERNAL_SYSCALL is not used.
2434
2435 * sysdeps/i386/pthread_spin_destroy.c: Moved to...
2436 * sysdeps/pthread/pthread_spin_destroy.c: ...here. New file.
2437
2438 * sysdeps/i386/pthread_sigmask.c: Removed. Use the generic code.
2439 * sysdeps/pthread/pthread_sigmask.c (pthread_sigmask): Return correct
2440 value in case of an error. Add support for INTERNAL_SYSCALL.
b54e18eb
UD
2441
2442 * sysdeps/i386/pthread_sigmask.c (pthread_sigmask): Return correct
2443 value in case of an error.
2444
a3931336
UD
2445 * sysdeps/x86_64/tls.h: New file.
2446
76a50749
UD
24472002-11-26 Ulrich Drepper <drepper@redhat.com>
2448
117c452c
UD
2449 * sysdeps/i386/tls.h (THREAD_GETMEM_NC): Change interface. It now
2450 takes the array member name and the index as parameters.
2451 (THREAD_SETMEM_NC): Likewise.
2452 * pthread_getspecific.c: Use new THREAD_GETMEM_NC interface.
2453 * pthread_setspecific.c: Use new THREAD_GETMEM_NC and THREAD_SETMEM_NC
2454 interfaces.
2455
2456 * sysdeps/i386/tls.h (THREAD_SETMEM): Use size of member element
2457 to decide which code to use.
2458 (THREAD_SETMEM_NC): Likewise.
2459
76a50749
UD
2460 * allocatestack.c (queue_stack): Don't remove stack from list here.
2461 Do it in the caller. Correct condition to prematurely terminate
2462 loop to free stacks.
2463 (__deallocate_stack): Remove stack from list here.
2464
24652002-11-26 Ulrich Drepper <drepper@redhat.com>
2466
2467 * Makefile (tests): Add tst-stack1.
2468 * tst-stack1.c: New file.
2469
2470 * allocatestack.c (allocate_stack): Initialize the TCB on a user
2471 provided stack.
2472
2473 * pthread_attr_getstack.c: Return bottom of the thread area.
2474
24752002-11-25 Ulrich Drepper <drepper@redhat.com>
2476
2477 * Makefile (libpthread-routines): Add pt-allocrtsig and
2478 pthread_kill_other_threads.
2479 * pt-allocrtsig.c: New file.
2480 * pthread_kill_other_threads.c: New file.
2481 * sysdeps/unix/sysv/linux/allocrtsig.c: Add additional aliases for
2482 all three functions.
2483 * sysdeps/unix/sysv/linux/Makefile (sysdep_routines): Remove
2484 allocrtsig.
2485 * sysdeps/unix/sysv/linux/Versions (libc:GLIBC_PRIVATE): Export
2486 __libc_current_sigrtmin_private, __libc_current_sigrtmax_private,
2487 and __libc_allocate_rtsig_private.
2488 * Versions (libpthread): Export pthread_kill_other_threads_np,
2489 __libc_current_sigrtmin, and __libc_current_sigrtmax.
2490
24912002-11-24 Ulrich Drepper <drepper@redhat.com>
2492
2493 * allocatestack.c (allocate_stack): stackaddr in attribute points to
2494 the end of the stack. Adjust computations.
2495 When mprotect call fails dequeue stack and free it.
2496 * pthread_attr_setstack.c: Store top of the stack in stackaddr
2497 attribute.
2498 * pthread_getattr_np.c: Likewise.
2499
2500 * descr.h (IS_DETACHED): Add some more parenthesis to prevent
2501 surprises.
2502
25032002-11-23 Ulrich Drepper <drepper@redhat.com>
2504
2505 * sysdeps/pthread/pthread.h (pthread_self): __THROW must come before
2506 attribute definitions. Patch by Luca Barbieri <ldb@ldb.ods.org>.
2507
25082002-11-22 Ulrich Drepper <drepper@redhat.com>
2509
2510 * pthread_getspecific.c: Optimize access to first 2nd-level array.
2511 * pthread_setspecific.c: Likewise.
2512
25132002-11-21 Ulrich Drepper <drepper@redhat.com>
2514
2515 * sysdeps/unix/sysv/linux/i386/createthread.c: Remove CLONE_ flags
2516 definitions. Get them from the official place.
2517 * sysdeps/unix/sysv/linux/i386/fork.c: Likewise.
2518
2519 * sysdeps/unix/sysv/linux/i386/createthread.c: Update CLONE_* flags.
2520 Use new CLONE_ flags in clone() calls.
2521
2522 * sysdeps/unix/sysv/linux/fork.c: Use ARCH_FORK to actually fork.
2523 * sysdeps/unix/sysv/linux/i386/fork.c: New file.
2524
2525 * Versions: Add pthread_* functions for libc.
2526 * forward.c: New file.
2527
2528 * sysdeps/pthread/Makefile (libpthread-sysdeps_routines): Add
2529 errno-loc.
2530 * herrno.c: New file.
2531 * res.c: New file.
2532
2533 * Makefile (libpthread-routines): Remove sem_post, sem_wait,
2534 sem_trywait, and sem_timedwait. Add herrno and res.
2535 * sem_init.c: Don't initialize lock and waiters members.
2536 * sem_open.c: Likewise.
2537 * sem_post.c: Removed.
2538 * sem_wait.c: Removed.
2539 * sem_trywait.c: Removed.
2540 * sem_timedwait.c: Removed.
2541 * sysdeps/unix/sysv/linux/i386/i486/lowlevelsem.S: Complete rewrite.
2542 Includes full implementations of sem_post, sem_wait, sem_trywait,
2543 and sem_timedwait.
2544 * sysdeps/unix/sysv/linux/i386/lowlevelsem.h (lll_sem_post): Adjust
2545 for new implementation.
2546 * sysdeps/unix/sysv/linux/internaltypes.h (struct sem): Remove lock
2547 and waiters fields.
2548
2549 * tst-sem3.c: Improve error message.
2550 * tst-signal3.c: Likewise.
2551
2552 * init.c (__pthread_initialize_minimal): Use set_tid_address syscall
2553 to tell the kernel about the termination futex and to initialize tid
2554 member. Don't initialize main_thread.
2555 * descr.h (struct pthread): Remove main_thread member.
2556 * cancelllation.c (__do_cancel): Remove code handling main thread.
2557 The main thread is not special anymore.
2558
2559 * allocatestack.c (__reclaim_stacks): Mark stacks as unused. Add
2560 size of the stacks to stack_cache_actsize.
2561
2562 * pt-readv.c: Add missing "defined".
2563 * pt-sigwait.c: Likewise.
2564 * pt-writev.c: Likewise.
2565
25662002-11-09 Ulrich Drepper <drepper@redhat.com>
2567
2568 * Versions: Export __connect from libpthread.
2569 Patch by Luca Barbieri <ldb@ldb.ods.org>.
2570
2571 * Makefile (libpthread-routines): Add pt-raise.
2572 * sysdeps/unix/sysv/linux/raise.c: New file.
2573 * sysdeps/unix/sysv/linux/pt-raise.c: New file.
2574 * sysdeps/generic/pt-raise.c: New file.
2575
2576 * pthread_cond_init.c: Initialize all data elements of the condvar
2577 structure. Patch by Luca Barbieri <ldb@ldb.ods.org>.
2578
2579 * pthread_attr_init.c: Actually implement 2.0 compatibility version.
2580 * pthread_create.c: Likewise.
2581
2582 * Makefile (tests): Add tst-key1, tst-key2, tst-key3.
2583 * tst-key1.c: New file.
2584 * tst-key2.c: New file.
2585 * tst-key3.c: New file.
2586
2587 * Versions: Export pthread_detach for version GLIBC_2.0.
2588 Reported by Saurabh Desai <sdesai@austin.ibm.com>.
2589
25902002-11-08 Ulrich Drepper <drepper@redhat.com>
2591
2592 * pthread_key_create.c: Terminate search after an unused key was found.
2593 Patch by Luca Barbieri <ldb@ldb.ods.org>.
2594
2595 * sysdeps/unix/sysv/linux/i386/pthread_once.S: Return zero.
2596 Patch by Luca Barbieri <ldb@ldb.ods.org>.
2597
25982002-10-10 Ulrich Drepper <drepper@redhat.com>
2599
2600 * sysdeps/unix/sysv/linux/i386/i486/lowlevelsem.S: Use slow generic
2601 dynamic lookup for errno in PIC.
2602
2603 * allocatestack.c (get_cached_stack): Rearrange code slightly to
2604 release the stack lock as soon as possible.
2605 Call _dl_allocate_tls_init for TCB from the cache to re-initialize
2606 the static TLS block.
2607 (allocate_stack): Call _dl_allocate_tls_init for user-provided stack.
2608
2609 * cancellation.c: Renamed from cancelation.c.
2610 * Makefile: Adjust accordingly.
2611 * pthreadP.h (CANCELLATION_P): Renamed from CANCELATION_P.
2612 * cleanup_defer.c: Use CANCELLATION_P.
2613 * pthread_testcancel.c: Likewise.
2614 * descr.h: Fix spelling in comments.
2615 * init.c: Likewise.
2616 * pthread_getattr_np.c: Likewise.
2617 * pthread_getschedparam.c: Likewise.
2618 * pthread_setschedparam.c: Likewise.
2619 * Versions: Likewise.
2620
2621 * pt-pselect.c: New file.
2622 * Makefile (libpthread-routines): Add pt-pselect.
2623 * Versions: Add pselect.
2624
2625 * tst-cancel4.c: New file.
2626 * Makefile (tests): Add tst-cancel4.
2627
26282002-10-09 Ulrich Drepper <drepper@redhat.com>
2629
2630 * pthread_mutex_lock.c: Always record lock ownership.
2631 * pthread_mutex_timedlock.c: Likewise.
2632 * pthread_mutex_trylock.c: Likewise.
2633
2634 * pt-readv.c: New file.
2635 * pt-writev.c: New file.
2636 * pt-creat.c: New file.
2637 * pt-msgrcv.c: New file.
2638 * pt-msgsnd.c: New file.
2639 * pt-poll.c: New file.
2640 * pt-select.c: New file.
2641 * pt-sigpause.c: New file.
2642 * pt-sigsuspend.c: New file.
2643 * pt-sigwait.c: New file.
2644 * pt-sigwaitinfo.c: New file.
2645 * pt-waitid.c: New file.
2646 * Makefile (libpthread-routines): Add pt-readv, pt-writev, pt-creat,
2647 pt-msgrcv, pt-msgsnd, pt-poll, pt-select, pt-sigpause, pt-sigsuspend,
2648 pt-sigwait, pt-sigwaitinfo, and pt-waitid.
2649 * Versions: Add all the new functions.
2650
2651 * tst-exit1.c: New file.
2652 * Makefile (tests): Add tst-exit1.
2653
2654 * sem_timedwait.c: Minor optimization for more optimal fastpath.
2655
26562002-10-08 Ulrich Drepper <drepper@redhat.com>
2657
2658 * pt-fcntl.c: Only enable asynchronous cancellation for F_SETLKW.
2659
2660 * pthread_join.c: Enable asynchronous cancellation around lll_wait_tid
2661 call. pthread_join is an official cancellation point.
2662 * pthread_timedjoin.c: Likewise.
2663
2664 * pthread_cond_wait.c: Revert order in which internal lock are dropped
2665 and the condvar's mutex are retrieved.
2666 * pthread_cond_timedwait.c: Likewise.
2667 Reported by dice@saros.East.Sun.COM.
2668
26692002-10-07 Ulrich Drepper <drepper@redhat.com>
2670
2671 * pthreadP.h: Cut out all type definitions and move them...
2672 * sysdeps/unix/sysv/linux/internaltypes.h: ...here. New file.
2673 * pthreadP.h: Include <internaltypes.h>.
2674
2675 * sysdeps/unix/sysv/linux/i386/lowlevelsem.h (lll_sem_post): Little
2676 performance tweaks.
2677
2678 * sem_trywait.c: Shuffle #includes around to get right order.
2679 * sem_timedwait.c: Likewise.
2680 * sem_post.c: Likewise.
2681 * sem_wait.c: Likewise.
2682
2683 * nptl 0.3 released.
2684
2685 * Makefile (tests): Add tst-signal3.
2686 * tst-signal3.c: New file.
2687
26882002-10-05 Ulrich Drepper <drepper@redhat.com>
2689
2690 * sysdeps/unix/sysv/linux/i386/lowlevelsem.h: Tell the compiler that
2691 the asms modify the sem object.
2692 (__lll_sem_timedwait): Now takes struct sem* as first parameter.
2693
2694 * sysdeps/unix/sysv/linux/i386/bits/semaphore.h (sem_t): Don't expose
2695 the actual members.
2696 * pthreadP.h (struct sem): New type. Actual semaphore type.
2697 * semaphoreP.h: Include pthreadP.h.
2698 * sem_getvalue.c: Adjust to sem_t change.
2699 * sem_init.c: Likewise.
2700 * sem_open.c: Likewise.
2701 * sem_post.c: Likewise.
2702 * sem_timedwait.c: Likewise.
2703 * sem_trywait.c: Likewise.
2704 * sem_wait.c: Likewise.
2705
27062002-10-04 Ulrich Drepper <drepper@redhat.com>
2707
2708 * Makefile (tests): Add tst-basic2, tst-exec1, tst-exec3, tst-exec3.
2709 * tst-basic2.c: New file.
2710 * tst-exec1.c: New file.
2711 * tst-exec2.c: New file.
2712 * tst-exec3.c: New file.
2713
2714 * tst-fork1.c: Remove extra */.
2715
2716 * nptl 0.2 released. The API for IA-32 is complete.
This page took 0.315793 seconds and 5 git commands to generate.