Ulrich Drepper
5a9e37df22
Fix whitespaces.
2009-12-13 11:51:54 -08:00
Dinakar Guniguntala
75956694f3
Add Requeue-PI support for x86 arch.
2009-12-13 11:50:16 -08:00
Ulrich Drepper
9554ebf2d4
Invalid timeouts in i386 sem_timedwait.
...
We adjusted nwaiters even though this isn't necessary.
2009-12-12 11:06:23 -08:00
Thomas Schwinge
ebb92a491f
SH calling __gmon_start__ from pt-initfini.c.
2009-11-30 06:24:22 -08:00
Andreas Schwab
b55ec98c64
Fix infloop in __pthread_disable_asynccancel on x86_64
2009-11-27 21:37:30 -08:00
Ulrich Drepper
fa214705b9
Once again forgot to add new test file.
2009-11-24 18:22:30 -08:00
Ulrich Drepper
80b3a4ea1c
New NPTL POSIX semaphore test.
2009-11-24 16:37:29 -08:00
Roland McGrath
57a299fe47
Use #include instead of duplication for i386 vs i686 dl-sysdep.h in NPTL.
2009-11-22 17:49:21 -08:00
Ulrich Drepper
dfedb126d6
Minor optimizations and cleanups of x86 cond_broadcast.
2009-11-18 06:40:25 -08:00
Dinakar Guniguntala
dd7106b3c6
Update cfi offsets for pthread_cond_broadcast and signal fir x86.
2009-11-18 06:33:23 -08:00
Ulrich Drepper
62616842ec
Minimal unwind section size reduction.
2009-11-17 23:13:08 -08:00
Ulrich Drepper
f8c10bb45b
Use cfi directives in x86 pthread_cond_{,timed}wait.
2009-11-17 17:59:33 -08:00
Andreas Schwab
13f6812ffb
Make name of libgcc_s library configurable
2009-11-03 23:52:01 +01:00
Ulrich Drepper
9c04f7c155
Fix aliasing problem in tst-sem11.
2009-10-30 09:35:20 -07:00
Daniel Jacobowitz
25db0f6ca9
Fix races in setXid implementation.
2009-10-30 01:00:44 -07:00
Roland McGrath
7967983fd4
configure tweaks, support $libc_add_on_config_subdirs
2009-09-15 14:14:42 -07:00
Andreas Schwab
3d60eb1734
Fix malformed #pragma.
2009-09-07 08:31:52 -07:00
Ulrich Drepper
01034d7590
Fix whitespaces.
2009-09-02 19:59:43 -07:00
Suzuki Poulose
38eb613663
Fix timer_create to initialize timer_t properly.
2009-09-02 19:58:50 -07:00
Andrew Stubbs
7812c65b90
SH lowlevellock broken for FUTEX_CLOCK_REALTIME.
2009-08-28 14:57:16 -07:00
Ulrich Drepper
84088310ce
Handle AVX saving on x86-64 in interrupted smbol lookups.
...
If a signal arrived during a symbol lookup and the signal handler also
required a symbol lookup, the end of the lookup in the signal handler reset
the flag whether restoring AVX/SSE registers is needed. Resetting means
in this case that the tail part of the outer lookup code will try to
restore the registers and this can fail miserably. We now restore to the
previous value which makes nesting calls possible.
2009-08-25 10:42:30 -07:00
Ulrich Drepper
b42a214c18
Hint to kernel that thread stack memory can be removed.
2009-08-24 16:23:47 -07:00
Ulrich Drepper
2d094b7395
More namespace cleanups.
2009-08-23 13:59:41 -07:00
Ulrich Drepper
cd16986ee3
Rvert accidental checkins.
2009-08-22 17:58:04 -07:00
Andreas Schwab
15efafdf07
Add sigstack handling to Linux ____longjmp_chk on powerpc.
2009-08-22 02:01:51 -07:00
Ulrich Drepper
ae0d545003
Add CFI directives to x86-64 pthread_rwlock_unlock.
2009-08-11 20:47:36 -07:00
Ulrich Drepper
1bc2b97ee4
Add CFI directives to x86-64 pthread_rwlock_{rd,wr)lock.
2009-08-10 11:26:16 -07:00
Andreas Schwab
ec4922395b
Fix check for PI mutex in x86-64 pthread_cond_signal
...
Register eax contains the syscall number, use a different one instead.
2009-08-10 08:10:11 -07:00
Ulrich Drepper
efa0569d2b
Optimize x86-64 version of sem_timedwait.
2009-08-08 17:48:09 -07:00
Ulrich Drepper
49eea97b00
Another minor optimization of x86-64 pthread_cond_wait.
2009-08-08 10:21:46 -07:00
Ulrich Drepper
9083bcc5dc
Small optimizations to cancellable x86-64 code.
2009-08-07 20:36:53 -07:00
Ulrich Drepper
421665c40a
Optimize x86-64 syscall cancellation handling.
...
The syscall wrappers had to save and restore the syscall parameter
values and return value when calling the functions to enable/disable
cancellation were called. Not anymore. The called functions are
special and don't modify any unexpected registers.
2009-08-04 11:03:46 -07:00
Ulrich Drepper
bd03a1afa2
Macro cleanup.
...
Better definition of the *_NITSET macros.
2009-07-31 22:30:30 -07:00
Ulrich Drepper
22d94a7bc9
Regenerated.
2009-07-31 21:48:59 -07:00
Ulrich Drepper
586fa886ad
Fix x86-64 TCB alignment for future processor versions.
2009-07-29 09:01:04 -07:00
Ulrich Drepper
b48a267b8f
Preserve SSE registers in runtime relocations on x86-64.
...
SSE registers are used for passing parameters and must be preserved
in runtime relocations. This is inside ld.so enforced through the
tests in tst-xmmymm.sh. But the malloc routines used after startup
come from libc.so and can be arbitrarily complex. It's overkill
to save the SSE registers all the time because of that. These calls
are rare. Instead we save them on demand. The new infrastructure
put in place in this patch makes this possible and efficient.
2009-07-29 08:33:03 -07:00
Ulrich Drepper
b0948ffdcb
Fix bookkeeping in mutex when using requeue_pi.
2009-07-28 09:40:39 -07:00
Ulrich Drepper
e73e694e38
pthread_mutex_unlock needs to use _rel semantics for atomic ops.
2009-07-27 13:46:56 -07:00
Ulrich Drepper
052757bfa6
Revert "Memory ordering in pthread_mutex_{,timed}lock."
...
This reverts commit 7b7f43bed1
.
2009-07-27 13:43:01 -07:00
Ulrich Drepper
7b7f43bed1
Memory ordering in pthread_mutex_{,timed}lock.
...
All commits should have happened before the mutex lock is taken.
Therefore use the _rel variant of the cmpxchg atomic op.
2009-07-26 13:00:04 -07:00
Ulrich Drepper
01b597da40
Check for .cfi_{personality,lsda} on x86-64.
...
We need this support in NPTL now to avoid the hand-coded tables.
2009-07-23 17:15:56 -07:00
Ulrich Drepper
f1adf1f490
Fix pthread_cond_timedwait error handling on old kernels.
2009-07-23 16:39:06 -07:00
Ulrich Drepper
c3db953c16
Minor optimizations of last x86-64 condvar changes.
2009-07-20 08:39:47 -07:00
Ulrich Drepper
42e69bcf11
Support requeueing for condvars using PI mutex. x86-64 only.
...
Add support for the new FUTEX_WAIT_REQUEUE_PI and FUTEX_CMP_REQUEUE_PI
options of futex.
2009-07-19 20:56:40 -07:00
Ulrich Drepper
515a8908ce
Make x86-64 pthread_cond_timedwait more robust.
...
It just happens that __pthread_enable_asynccancel doesn't modify the $rdi
register. But this isn't guaranteed. Hence we reload the register after
the calls.
2009-07-19 14:54:56 -07:00
Ulrich Drepper
e2dca2fea3
Extend x86-64 __lll_robust_timedlock_wait to use futex syscall with absolute timeout.
2009-07-19 00:00:17 -07:00
Ulrich Drepper
3d77b2687f
Add more sem_timedwait tests.
2009-07-18 22:07:25 -07:00
Ulrich Drepper
32c6c342b6
Extend x86-64 pthread_rwlock_timedrdlock to use futex syscall with absolute timeout.
2009-07-18 21:53:26 -07:00
Ulrich Drepper
4c74e6522a
Pretty printing last change.
2009-07-18 21:41:52 -07:00
Ulrich Drepper
d979611eb9
Extend x86-64 pthread_rwlock_timedwrlock to use futex syscall with absolute timeout.
2009-07-18 21:35:33 -07:00
Ulrich Drepper
d9201c1365
Remove leftover cfi.
2009-07-18 13:08:21 -07:00
Ulrich Drepper
f8b6cd2182
Extend pthread_cond_timedwait tests.
2009-07-18 12:45:27 -07:00
Ulrich Drepper
e88726b483
Extend x86-64 pthread_cond_timedwait to use futex syscall with absolute timeout.
2009-07-18 12:44:12 -07:00
Ulrich Drepper
92618c954f
Optimize x86-64 pthread_cond_timedwait.
...
Instead of actively registering an unwind buffer we now use the
exception handling functionality of the gcc runtime.
2009-07-18 08:53:18 -07:00
Ulrich Drepper
30b1954abb
Optimize x86-64 pthread_cond_wait.
...
Instead of actively registering an unwind buffer we now use the
exception handling functionality of the gcc runtime.
2009-07-18 08:09:39 -07:00
Ulrich Drepper
f351f2b756
Extend x86-64 sem_timedwait to use futex syscall with absolute timeout.
2009-07-17 19:08:54 -07:00
Ulrich Drepper
312d667b85
Consistently use symbolic constants.
2009-07-17 16:39:27 -07:00
Ulrich Drepper
aee2665a17
Replace hand-coded unwind tables from x86-64 sem_timedwait.
2009-07-17 16:26:06 -07:00
Ulrich Drepper
0adae46817
Optimize x86-64 sem_wait for uncontested semaphore.
2009-07-17 15:50:23 -07:00
Ulrich Drepper
c3c2f3cf56
Replace hand-coded unwind tables from x86-64 sem_wait.
2009-07-17 15:31:36 -07:00
Ulrich Drepper
63601ccd16
Replace hand-coded unwind tables from x86-64 pthread_once.
2009-07-17 14:45:08 -07:00
Ulrich Drepper
d52c96e73a
Replace hand-coded unwind tables from x86-64 pthread_cond_wait.
2009-07-17 12:14:09 -07:00
Ulrich Drepper
bfdb73e145
Implement pthread_sigqueue.
...
The kernel from 2.3.31 on supports the rt_tgsigqueueinfo syscall.
Use it to implement the non-standard extension which, like
sigqueue, can pass additional data to the receiving thread.
2009-06-12 08:34:02 -07:00
Bryan Kadzban
1828530f09
Fix futex syscall parameter for x86 absolute timeout waits.
...
This affects only installations compiled for kernels older than 2.6.18.
2009-06-11 11:32:51 -07:00
Ulrich Drepper
e20c4ef0ef
libc-cancellation.c cleanup.
...
The unrelated function __libc_cleanup_routine should not be in
this file. Move it into its own file.
2009-05-16 15:04:27 -07:00
Ulrich Drepper
cba0ca7925
Unify source for async cancel handling.
...
Unify all three places where we enable async cancellation for
syscalls. Optimize a bit.
2009-05-16 14:55:59 -07:00
Ulrich Drepper
a5b8b56df7
Rename nptl/init.c to nptl/nptl-init.c.
...
Needed to allow overwriting architectures init.c in csu and nptl
individually. Fixes BZ #9924 .
2009-05-16 08:57:49 -07:00
Ulrich Drepper
6dd78596d5
ChangeLog entries incorrectly applied.
2009-05-15 21:03:49 -07:00
Jakub Jelinek
1f3615a1c9
Add missing export of fallocate64 on 32-bit platforms.
...
Due to a pasto the fallocate64 interface, introduced in glibc 2.10,
isn't exported for 32-bit Linux platforms. It is too late for this
now so exported them for glibc 2.11.
2009-05-15 21:00:09 -07:00
Jakub Jelinek
9e471dad8e
Don't try to cleanup libselinux and libaudit.
...
Because we are not shutting down the other threads first another
thread might work on a query before the process shuts down. In this
case the now uninitialized libselinux and libaudit might be used.
Just don't free the resources. It's not necessary anyway because
the process is about to terminate.
2009-05-15 20:48:08 -07:00
Ulrich Drepper
9437b427ce
Fix change to prevent cancel signal in unsafe places.
...
The bits tested to decide when to delay the return when switching
off async cancel mode were wrong. Fix that. Also close a race
condition in pthread_cancel where the bit indicating the cancellation
is unconditionally set even if the cancel type might have changed.
2009-05-15 20:42:36 -07:00
Ulrich Drepper
1a7f254b4b
No cancel signal in unsafe places.
...
When disabling async cancellation we cannot return from the function
call if the thread is canceled. This happens when the cancel bits
have been set before async cancel is disabled but the signal hasn't
been sent/received yet. Delay for as long as necessary since
otherwise the signal might be received in an unsafe context.
2009-05-15 19:37:12 -07:00
Jakub Jelinek
40de0fe350
Add missing CHangeLog entry.
...
2009-01-07 Ulrich Drepper <drepper@redhat.com>
* (in_flight_stack): New variable.
(stack_list_del): New function. Use instead of list_del.
(stack_list_add): New function. Use instead of list_add when adding to
stack_cache and stack_used lists.
(__reclaim_stacks): Complete operations on stack_cache and stack_used lists
when the fork call interrupted another thread.
2009-04-29 18:04:10 +00:00
Ulrich Drepper
d5c157a978
* cancellation.c (__pthread_disable_asynccancel): Use THREAD_ATOMIC_AND
...
is available.
* libc-cancellation.c (__libc_disable_asynccancel): Likewise.
* sysdeps/x86_64/tls.h: Define THREAD_ATOMIC_AND.
* sysdeps/i386/tls.h: Likewise.
(tcbhead_t): Add __private_tm member.
2009-04-27 21:55:49 +00:00
Ulrich Drepper
5efe86507d
* sem_open.c (sem_open): Rewrite initialization of initsem to
...
avoid warnings.
2009-04-26 18:37:05 +00:00
Ulrich Drepper
f521be31b9
* sysdeps/unix/sysv/linux/libc_pthread_init.c (__libc_pthread_init):
...
Avoid warning by using may_alias attribute on ptrhack.
2009-04-26 18:06:47 +00:00
Ulrich Drepper
5497de87c9
[BZ #9963 ]
...
2009-04-22 Ulrich Drepper <drepper@redhat.com>
[BZ #9963 ]
* locales/en_PH: Fix LC_PAPER.
* locales/es_CL: Likewise.
* locales/es_CO: Likewise.
* locales/es_MX: Likewise.
* locales/es_US: Likewise.
* locales/es_VE: Likewise.
* locales/fil_PH: Likewise.
* locales/ik_CA: Likewise.
* locales/iu_CA: Likewise.
* locales/tl_PH: Likewise.
2009-04-23 04:30:42 +00:00
Ulrich Drepper
d301a6e167
* pthread_attr_setschedparam.c (__pthread_attr_setschedparam):
...
Check policy and priority for validity.
Patch mostly by Zhang Xiliang <zhangxiliang@cn.fujitsu.com>.
2009-04-23 02:29:18 +00:00
Ulrich Drepper
71a5bd3e17
[BZ #5807 ]
...
2009-03-15 Ulrich Drepper <drepper@redhat.com>
[BZ #5807 ]
* string/strlen.c (strlen): Fix omission in the expression to test
for NUL bytes.
2009-03-15 09:03:38 +00:00
Ulrich Drepper
30991b8bd9
* init.c (nptl_freeres): Compile only for SHARED.
2009-03-10 22:03:24 +00:00
Jakub Jelinek
9920a6b8db
* sysdeps/unix/sysv/linux/sparc/lowlevellock.h: Define
...
FUTEX_WAIT_BITSET, FUTEX_WAKE_BITSET, FUTEX_CLOCK_REALTIME and
FUTEX_BITSET_MATCH_ANY.
2009-03-09 Jakub Jelinek <jakub@redhat.com>
* sysdeps/unix/sysv/linux/sparc/lowlevellock.h: Define
FUTEX_WAIT_BITSET, FUTEX_WAKE_BITSET, FUTEX_CLOCK_REALTIME and
FUTEX_BITSET_MATCH_ANY.
2009-03-09 14:19:53 +00:00
Roland McGrath
e965d5147e
* Makeconfig (%.v.i): Depend on Makeconfig.
...
Exclude % lines from initial #-comment removal.
2009-02-28 02:26:51 +00:00
Ulrich Drepper
6cbe890a9d
* wctype/wctype.h: The *_l functions are in POSIX 2008.
...
* wcsmbs/wchar.h: mbsnrtowcs, open_wmemstream, wcpcpy, wcpncpy,
wcscasecmp, wcsdup, wcsncasecmp, wcsnlen, wcsnrtombs,
wcscasecmp_l, wcsncasecmp_l, wcscoll_l, and wcsxfrm_l.
* sysdeps/mach/hurd/bits/posix_opt.h: Reset value of macros from
200112L to 200809L.
* sysdeps/unix/sysv/linux/bits/posix_opt.h: Likewise.
* posix/getconf.c (vars): Add _SC_THREAD_ROBUST_PRIO_INHERIT and
_SC_THREAD_ROBUST_PRIO_PROTECT entries.
* bits/confname.h: Add _SC_THREAD_ROBUST_PRIO_INHERIT and
_SC_THREAD_ROBUST_PRIO_PROTECT.
* posix/unistd.h: fexecve is in POSIX 2008.
* time/time.h: strftime_l is in POSIX 2008.
* io/sys/stat.h: futimens is in POSIX 2008.
* string/strings.h: strcasecmp_l and strncasecmp_l are in POSIX 2008.
* string/string.h: stpcpy, stpncpy, strndup, strnlen, strsignal,
strcoll_l, strerror_l, and strxfrm_l are in POSIX 2008.
* stdlib/stdlib.h: mkdtemp is in POSIX 2008.
2009-02-26 16:53:30 +00:00
Ulrich Drepper
1f04d00542
* locale/langinfo.h: nl_langinfo_l is in POSIX 2008.
...
* locale/xlocale.h: Define locale_t type.
* locale/locale.h: duplocale, freelocale, newlocale, uselocale are
in POSIX 2008. Don't define locale_t here.
* stdlib/monetary.h: strfmon_l is in POSIX 2008.
* signal/signal.h: Declare psignal and psiginfo for POSIX 2008.
* stdio-common/psiginfo.c: New file.
* stdio-common/psiginfo-data.h: New file.
* stdio-common/psiginfo-define.h: New file.
* stdio-common/Makefile (routines): Add psiginfo.
* stdio-common/Versions: Export psiginfo for GLIBC_2.10.
2009-02-26 06:18:24 +00:00
Ulrich Drepper
77db439eaf
* ctype/ctype.h: The *_l functions are in POSIX 2008.
...
* dirent/dirent.h: alphasort, dirfd, scandir, and fdopendir are in
POSIX 2008.
/proc/sys/kernel/rtsig_max doesn't exist anymore, use getrlimit
2009-02-26 02:23:50 +00:00
Ulrich Drepper
5be0a68819
* sysdeps/unix/sysv/linux/sysconf.c (__sysconf):
...
/proc/sys/kenrel/rtsig_max doesn't exist anymore, use getrlimit
instead.
2009-02-24 23:34:08 +00:00
Ulrich Drepper
8c4a5f4214
* io/sys/stat.h: The lstat functions have been mandatory since 2001.
2009-02-24 22:47:58 +00:00
Ulrich Drepper
4c869eb67e
* sysdeps/unix/sysv/linux/sh/lowlevellock.S: Define
...
LOAD_FUTEX_WAIT_ABS even if (FUTEX_WAIT == 0).
2009-02-13 23:36:40 +00:00
Ulrich Drepper
7f901dd7ca
* sysdeps/pthread/unwind-forcedunwind.c: Encrypt all function
...
pointer variables.
2009-01-29 20:52:36 +00:00
Ulrich Drepper
cca50323b6
* allocatestack.c (__free_stacks): Renamed from free_stacks.
...
(__free_stack_cache): Removed. Change callers to call __free_stacks.
* init.c (nptl_freeres): New function.
(pthread_functions): Initialize ptr_freeres to nptl_freeres.
* pthreadP.h: Don't declare __free_stack_cache. Declare __free_stacks.
* sysdeps/pthread/unwind-forcedunwind.c (libgcc_s_handle): New
variable.
(pthread_cancel_init): Depend in libgcc_s_handle for decision to
load DSO. Assign last.
(__unwind_freeres): New function.
* allocatestack.c (__reclaim_stacks): Reset in_flight_stack later
for better debugging. No need to use stack_list_add here.
2009-01-29 20:38:04 +00:00
Ulrich Drepper
a7bd183ffe
* sysdeps/unix/sysv/linux/sh/sysdep.h (INTERNAL_SYSCALL):
...
Add "t" to clobber list.
(INTERNAL_SYSCALL_NCS): Likewise.
2009-01-28 16:11:36 +00:00
Ulrich Drepper
563ee1cb34
* pthread_mutex_lock.c (__pthread_mutex_lock): Remove unused label out.
2009-01-25 17:58:06 +00:00
Ulrich Drepper
f25c7b087f
* sysdeps/pthread/list.h (list_add): Initialize new element first.
...
(list_add_tail): Removed.
2009-01-08 18:32:16 +00:00
Ulrich Drepper
df9293cb16
* resolv/nss_dns/dns-host.c (_nss_dns_gethostbyaddr2_r): Check and
...
adjust the buffer alignment.
2009-01-08 00:03:29 +00:00
Ulrich Drepper
5846e22fbf
(in_flight_stack): New variable. (stack_list_del): New function. Use instead of list_del. (stack_list_add): New function. Use instead of list_add when adding to stack_cache and stack_used lists. (__reclaim_stacks): Complete operations on stack_cache and stack_used lists when the fork call interrupted another thread.
2009-01-07 23:45:39 +00:00
Ulrich Drepper
3c612057ae
* init.c (__pthread_initialize_minimal_internal): Optimize test
...
FUTEX_CLOCK_REALTIME a bit.
2009-01-04 18:10:04 +00:00
Ulrich Drepper
a9fa090b02
(__lll_timedlock_wait): Use FUTEX_WAIT_BITSET|FUTEX_CLOCK_REALTIME
...
Use FUTEX_WAIT_BITSET|FUTEX_CLOCK_REALTIME instead of computing
2009-01-03 23:18:50 +00:00
Ulrich Drepper
19834b42f6
* init.c (__pthread_initialize_minimal_internal): Cheat a bit by
...
only passing five parameters to FUTEX_WAIT_BITSET call.
* sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
(__lll_timedlock_wait): Use FUTEX_WAIT_BITSET|FUTEX_CLOCK_READTIME
instead of computing relative timeout.
2009-01-03 23:18:34 +00:00
Ulrich Drepper
45f7760695
(__lll_timedlock_wait): Use FUTEX_WAIT_BITSET|FUTEX_CLOCK_READTIME instead of computing relative timeout.
2009-01-03 23:17:21 +00:00
Ulrich Drepper
b2bcd249bf
* sysdeps/unix/sysv/linux/i386/sysdep.h: Describe 6th argument
...
handling.
2009-01-03 20:36:44 +00:00