Commit Graph

1376 Commits

Author SHA1 Message Date
Ulrich Drepper
1475e2012f * stdlib/tst-strtod2.c (do_test): Use %tu in fmt string for ptrdiff_t
value.

	* stdio-common/tst-fmemopen2.c (do_test): Avoid fmt string warning
	if off_t is different rank from size_t.

	* sysdeps/generic/unwind-dw2.c (extract_cie_info, execute_cfa_program,
	uw_frame_state_for): Avoid type punning warnings.
	* sysdeps/generic/unwind-dw2-fde-glibc.c
	(_Unwind_IteratePhdrCallback): Likewise.
	* sysdeps/generic/unwind-dw2-fde.c (_Unwind_Find_FDE): Likewise.
	(binary_search_single_encoding_fdes, binary_search_mixed_encoding_fdes,
	get_cie_encoding, linear_search_fdes): Don't mix char and unsigned char
	pointers.
2007-08-01 03:44:35 +00:00
Ulrich Drepper
6f59d56e61 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S
(pthread_rwlock_timedrdlock): Copy futex retval to %esi rather than
	%ecx.
	* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S
	(pthread_rwlock_timedwrlock): Likewise.
	* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S
	(__pthread_rwlock_unlock): Fix MUTEX != 0 args to __lll_*.
2007-08-01 03:41:01 +00:00
Jakub Jelinek
558f030079 * sysdeps/sparc/tls.h (tcbhead_t): Add private_futex field.
2007-07-31  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/sparc/tls.h (tcbhead_t): Add private_futex field.
2007-07-31 19:36:40 +00:00
Jakub Jelinek
1168be45be (__lll_private_flag): Define. (lll_futex_timed_wait, lll_futex_wake): Use it. (lll_private_futex_wait, lll_private_futex_timed_wait, lll_private_futex_wake): Removed. 2007-07-29 10:08:46 +00:00
Ulrich Drepper
cedb410957 * locale/programs/ld-monetary.c (monetary_finish): Avoid range check
for int_frac_digits and frac_digits.

	* login/logout.c (logout): Avoid aliasing violation.
	* login/logwtmp.c (logwtmp): Likewise.

	* libio/genops.c (_IO_un_link): Avoid aliasing violation.
2007-07-28 20:45:36 +00:00
Ulrich Drepper
701666b77d * nss/nsswitch.c (__nss_lookup_function): Don't cast &ni->known to
void **.
	* nss/nsswitch.h (service_user): Use void * type for KNOWN field.

	* nss/nss_files/files-hosts.c (LINE_PARSER): Cast host_addr to
	char * to avoid warning.
	* nis/nss_nis/nis-hosts.c (LINE_PARSER): Likewise.

	* timezone/Makefile (CFLAGS-zdump.c): Add -fwrapv.

	* locale/programs/ld-ctype.c (ctype_finish, set_class_defaults,
	allocate_arrays): Cast second argument to charmap_find_symbol
	to char * to avoid warnings.

	* locale/programs/repertoire.c (repertoire_new_char): Change
	from_nr, to_nr and cnt to unsigned long, adjust printf format
	string.

	* locale/programs/ld-collate.c (insert_value, handle_ellipsis):
	Cast second argument to new_element to char * to avoid warnings.

	* locale/weightwc.h (findidx): Cast &extra[-i] to const int32_t *.

	* intl/gettextP.h (struct loaded_domain): Change plural to const
	struct expression *.
	* intl/plural-eval.c (plural_eval): Change first argument to
	const struct expression *.
	* intl/plural-exp.c (EXTRACT_PLURAL_EXPRESSION): Change first
	argument to const struct expression **.
	* intl/plural-exp.h (EXTRACT_PLURAL_EXPRESSION, plural_eval): Adjust
	prototypes.
	* intl/loadmsgcat (_nl_unload_domain): Cast away const
	in call to __gettext_free_exp.

	* posix/fnmatch.c (fnmatch): Rearrange code to avoid maybe
	unitialized wstring/wpattern var warnings.

	* posix/runtests.c (struct a_test): Make data field const char *.

	* stdio-common/tst-sprintf2.c (main): Don't declere u, v and buf
	vars if not LDBL_MANT_DIG >= 106.

	* stdio-common/Makefile (CFLAGS-vfwprintf.c): Add -Wno-unitialized.

	* stdio-common/vfprintf.c (vfprintf): Cast first arugment to
	__find_specmb to avoid warning.

	* rt/tst-mqueue1.c (do_one_test): Add casts to avoid warnings.

	* debug/test-strcpy_chk.c (do_tests, do_random_tests): Add casts
	to avoid warnings.

	* sysdeps/ieee754/ldbl-96/s_roundl.c (huge): Add L suffix to
	initializer.

	* sysdeps/unix/clock_gettime.c (clock_gettime): Only define
	tv var when it will be actually used.

	* sunrpc/rpc_cmsg.c (xdr_callmsg): Cast IXDR_PUT_* to void
	to avoid warnings.
2007-07-28 20:36:21 +00:00
Ulrich Drepper
085a441220 * iconvdata/gbk.c (BODY): Make buf and cp char instead of unsigned
char array resp. pointer.
	* iconvdata/iso-2022-kr.c (BODY): Make buf unsigned char instead of
	char array.
	* iconvdata/cns11643.h (cns11643_to_ucs4): Change first argument
	to const unsigned char **.
	(ucs4_to_cns11643): Change second argument to unsigned char *.
	* iconvdata/euc-tw.c (BODY): Change endp type to
	const unsigned char *.
	* iconvdata/iso-ir-165.h (ucs4_to_isoir165): Change second argument
	to unsigned char *.
	* iconvdata/ibm1008_420.c (LOOP_NEED_FLAGS): Don't define.
	* iconvdata/iso-2022-cn.c (BODY): Change buf to unsigned char array.
	* iconvdata/iso-2022-cn-ext.c (BODY): Change buf, tmpbuf, tmp
	types to unsigned char pointers/arrays instead of char.
	* iconvdata/jis0201.h (ucs4_to_jisx0201): Change second argument
	to unsigned char *.
	* iconvdata/jis0208.h (ucs4_to_jisx0208): Likewise.
	* iconvdata/jis0212.h: Include assert.h.
	(ucs4_to_jisx0212): Change second argument to unsigned char *.
	assert that if cp[0] is not '\0', cp[1] is not '\0' either instead
	of trying to handle that.
	* iconvdata/euc-kr.c (euckr_from_ucs4): Initialize also cp[1] to
	shut up a warning.
	* iconvdata/euc-jp-ms.c (from_ucs4_lat1, from_ucs4_greek,
	from_ucs4_cjk, from_ucs4_cjkcpt, from_ucs4_extra): Change type to
	two dimensional const unsigned char arrays.
	(BODY): Cast "" to (const unsigned char *) for assignment to cp.
	Initialize endp to inptr to shut up a warning.
2007-07-28 20:16:07 +00:00
Jakub Jelinek
ef0af159c5 2007-07-27 Jakub Jelinek <jakub@redhat.com>
* sysdeps/sparc/tls.h (tcbhead_t): Move gscope_flag to the end
	of the structure for sparc32.

2007-07-26  Aurelien Jarno  <aurelien@aurel32.net>

	* sysdeps/sparc/tls.h (tcbhead_t): Add gscope_flag.
2007-07-27  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/sparc/tls.h (tcbhead_t): Move gscope_flag to the end
	of the structure for sparc32.

2007-07-26  Aurelien Jarno  <aurelien@aurel32.net>

	* sysdeps/sparc/tls.h (tcbhead_t): Add gscope_flag.
2007-07-27 22:07:39 +00:00
Ulrich Drepper
eb4f590989 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S: Fix
code used when private futexes are assumed.
	* sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S:
	Likewise.
2007-07-24 06:57:42 +00:00
Ulrich Drepper
b5f13526e2 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h
(__lll_private_flag): Define.
	(lll_futex_wait): Define as a wrapper around lll_futex_timed_wait.
	(lll_futex_timed_wait, lll_futex_wake, lll_futex_wake_unlock): Use
	__lll_private_flag.
	(lll_private_futex_wait, lll_private_futex_timedwait,
	lll_private_futex_wake): Define as wrapper around non-_private
	macros.
	* sysdeps/unix/sysv/linux/x86_64/lowlevellock.h
	(__lll_private_flag): Define.
	(lll_futex_timed_wait, lll_futex_wake): Use __lll_private_flag.
	(lll_private_futex_wait, lll_private_futex_timedwait,
	lll_private_futex_wake): Define as wrapper around non-_private
	macros.
2007-07-24 06:43:01 +00:00
Ulrich Drepper
eb7721f232 * pthread_rwlock_rdlock.c (__pthread_rwlock_rdlock): Add LLL_SHARED
parameter to lll_futex_wait call.
	* pthread_rwlock_wrlock.c (__pthread_rwlock_wrlock): Likewise.

	* sysdeps/unix/sysv/linux/powerpc/pthread_once.c (__pthread_once):
	Replace lll_futex_wait with lll_private_futex_wait.
	* sysdeps/unix/sysv/linux/powerpc/sem_post.c (__new_sem_post):
	Add LLL_SHARED parameter to lll_futex_wake().

	* sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Define LLL_PRIVATE
	LLL_SHARED, lll_private_futex_wait, lll_private_futex_timed_wait and
	lll_private_futex_wake.
	(lll_futex_wait): Add private parameter. Adjust FUTEX_PRIVATE_FLAG
	bit from private parm before syscall.
	(lll_futex_timed_wait): Likewise.
	(lll_futex_wake): Likewise.
	(lll_futex_wake_unlock): Likewise.
	(lll_mutex_unlock): Add LLL_SHARED parm to lll_futex_wake call.
	(lll_robust_mutex_unlock): Likewise.
	(lll_mutex_unlock_force): Likewise.
	(lll_wait_tid): Add LLL_SHARED parm to lll_futex_wait call.
2007-07-23 16:07:53 +00:00
Ulrich Drepper
defc45f2fa * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S: Fix
compilation when unconditionally using private futexes.
	* sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S:
	Likewise.
	* sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_unlock.S: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S: Likewise.
2007-07-23 15:46:31 +00:00
Ulrich Drepper
28635aca92 Fix compilation when unconditionally using private futexes. 2007-07-23 15:46:18 +00:00
Ulrich Drepper
087722b854 * include/features.h (__USE_ISOC95): New define.
* wcsmbs/wchar.h (fwprintf, fwscanf, wprintf, wscanf, swprintf,
	swscanf, vfwprintf, vwprintf, vswprintf, fwide): Define even
	for -std=iso9899:199409.
	* CONFORMANCE: Remove comments about unsupported AMD1.
2007-07-19 17:28:06 +00:00
Ulrich Drepper
b257c726a4 * libio/libioP.h (_IO_acquire_lock_clear_flags2_fct): New function.
* debug/vfwprintf_chk.c (__vfwprintf_chk): Use
	_IO_acquire_lock_clear_flags2 instead of _IO_acquire_lock.
	* debug/vprintf_chk.c (__vprintf_chk): Likewise.
	* debug/vwprintf_chk.c (__vwprintf_chk): Likewise.
	* debug/vfprintf_chk.c (__vfprintf_chk): Likewise.
	* debug/fwprintf_chk.c (__fwprintf_chk): Likewise.
	* debug/printf_chk.c (__printf_chk): Likewise.
	* debug/fprintf_chk.c (__fprintf_chk): Likewise.
	* debug/wprintf_chk.c (__wprintf_chk): Likewise.

	* sysdeps/pthread/bits/stdio-lock.h (_IO_acquire_lock_clear_flags2):
	Define.
2007-07-19 17:12:59 +00:00
Ulrich Drepper
765c6b0c46 * sysdeps/sh/tls.h: Include stdlib.h, list.h, sysdep.h and
kernel-features.h.
2007-07-07 01:54:07 +00:00
Ulrich Drepper
0a2b90bd50 Include stdlib.h, list.h, sysdep.h and kernel-features.h. 2007-07-07 01:53:19 +00:00
Roland McGrath
7d9d8bd189 * init.c (__nptl_initial_report_events): New variable.
(__pthread_initialize_minimal_internal): Initialize pd->report_events
	to that.
2007-06-26 06:47:56 +00:00
Roland McGrath
0ecf9c1064 2007-05-16 Roland McGrath <roland@redhat.com>
* init.c (__nptl_initial_report_events): New variable.
	(__pthread_initialize_minimal_internal): Initialize pd->report_events
	to that.
2007-06-26 06:47:07 +00:00
Ulrich Drepper
a28876d013 (pthread_getattr_np): Clear cpuset and cpusetsize if pthread_getaffinity_np failed with ENOSYS. 2007-06-22 22:13:52 +00:00
Ulrich Drepper
a4915df27a * pthread_getattr_np.c (pthread_getattr_np): Clear cpuset and
cpusetsize if pthread_getaffinity_np failed with ENOSYS.
2007-06-22 22:13:38 +00:00
Ulrich Drepper
e4eb675d0c * elf/dl-close.c (free_mem): Free _dl_scope_free_list.
2007-06-13  Jakub Jelinek  <jakub@redhat.com>

	* include/link.h: Don't include rtld-lowlevel.h.
	(struct link_map): Remove l_scope_lock.
	* sysdeps/generic/ldsodefs.h: Don't include rtld-lowlevel.h.
	(_dl_scope_free_list): New field (variable) in _rtld_global.
	(DL_LOOKUP_SCOPE_LOCK): Remove.
	(_dl_scope_free): New prototype.
	* elf/dl-runtime.c (_dl_fixup): Don't use __rtld_mrlock_*lock.
	Don't pass DL_LOOKUP_SCOPE_LOCK to _dl_lookup_symbol_x.
	(_dl_profile_fixup): Likewise.
	* elf/dl-sym.c (do_sym): Likewise.  Use wrapped _dl_lookup_symbol_x
	whenever !RTLD_SINGLE_THREAD_P, use THREAD_GSCOPE_SET_FLAG and
	THREAD_GSCOPE_RESET_FLAG around it.
	* elf/dl-close.c (_dl_close_worker): Don't use
	__rtld_mrlock_{change,done}.  Call _dl_scope_free on the old
	scope.  Make sure THREAD_GSCOPE_WAIT () happens if any old
	scopes were queued or if l_scope_mem has been abandoned.
	* elf/dl-open.c (_dl_scope_free): New function.
	(dl_open_worker): Use it.  Don't use __rtld_mrlock_{change,done}.
	* elf/dl-support.c (_dl_scope_free_list): New variable.
	* elf/dl-lookup.c (add_dependency): Remove flags argument.
	Remove DL_LOOKUP_SCOPE_LOCK handling.
	(_dl_lookup_symbol_x): Adjust caller.  Remove DL_LOOKUP_SCOPE_LOCK
	handling.
	* elf/dl-object.c (_dl_new_object): Don't use
	__rtld_mrlock_initialize.

2007-06-19  Ulrich Drepper  <drepper@redhat.com>
2007-06-20 03:19:13 +00:00
Ulrich Drepper
ae1ad3aebb [BZ #4647]
Tomas Janousek  <tjanouse@redhat.com>
            Ulrich Drepper  <drepper@redhat.com>

	[BZ #4647]
	* resolv/res_send.c (send_dg): Remove socket_pf.  Use ipv6_unavail
	member in __res_state, only convaddr4to6 if nssocks[ns] is a PF_INET6
	socket.
	* resolv/resolv.h (__res_state): Add ipv6_unavail member.  Make
	unused member a bitmap.
	* resolv/res_init.c (__res_vinit): Reset ipv6_unavail if IPv6
	servers are configured.

2007-06-18  Jakub Jelinek  <jakub@redhat.com>
2007-06-18 22:22:57 +00:00
Ulrich Drepper
8907459218 * sysdeps/generic/initfini.c: Tell gcc about the nonstandard sections.
PTRACE_O_TRACEVFORKDONE, PTRACE_O_TRACEEXIT, PTRACE_O_MASK,
2007-06-17 18:03:08 +00:00
Ulrich Drepper
c4243ff43f Tell gcc about the nonstandard sections. 2007-06-17 18:02:40 +00:00
Ulrich Drepper
d4201cc4ba * allocatestack.c (allocate_stack): Make code compile if
__ASSUME_PRIVATE_FUTEX is set.
2007-06-17 16:43:57 +00:00
Ulrich Drepper
339dbf0e39 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S:
(__pthread_rwlock_rdlock): Don't use non SH-3/4 instruction.
	* sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S:
	(__pthread_rwlock_wrlock): Likewise.
	* sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S:
	(pthread_rwlock_timedrdlock): Likewise.
	* sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S:
	(pthread_rwlock_timedwrlock): Likewise.
	* sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S:
	(__pthread_rwlock_unlock): Likewise.

2007-06-10  Kaz Kojima  <kkojima@rr.iij4u.or.jp>

	* sysdeps/sh/tcb-offsets.sym: Add PRIVATE_FUTEX.
	* sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Include endian.h.
	Split __flags into __flags, __shared, __pad1 and __pad2.
	* sysdeps/unix/sysv/linux/sh/libc-lowlevellock.S: Use private
        futexes if they are available.
	* sysdeps/unix/sysv/linux/sh/lowlevellock.S: Adjust so that change
        in libc-lowlevellock.S allow using private futexes.
	* sysdeps/unix/sysv/linux/sh/lowlevellock.h: Define
	FUTEX_PRIVATE_FLAG.  Add additional parameter to lll_futex_wait,
	lll_futex_timed_wait and lll_futex_wake.  Change lll_futex_wait
	to call lll_futex_timed_wait.  Add lll_private_futex_wait,
	lll_private_futex_timed_wait and lll_private_futex_wake.
	(lll_robust_mutex_unlock): Fix typo.
	* sysdeps/unix/sysv/linux/sh/pthread_barrier_wait.S: Use private
        field in futex command setup.
	* sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Use
	COND_NWAITERS_SHIFT instead of COND_CLOCK_BITS.
	* sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Likewise.
	* sysdeps/unix/sysv/linux/sh/pthread_once.S: Use private futexes
        if they are available.  Remove clear_once_control.
	* sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: Use private
	futexes if they are available.
	* sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S: Likewise.
	* sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S: Likewise.
	* sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S: Likewise.
	* sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: Likewise.
	* sysdeps/unix/sysv/linux/sh/sem_post.S: Add private futex support.
	Wake only when there are waiters.
	* sysdeps/unix/sysv/linux/sh/sem_wait.S: Add private futex
	support.  Indicate that there are waiters.  Remove unnecessary
        extra cancellation test.
	* sysdeps/unix/sysv/linux/sh/sem_timedwait.S: Likewise.  Removed
	left-over duplication of __sem_wait_cleanup.
2007-06-17 16:42:55 +00:00
Ulrich Drepper
26f56c1c0e * configure.in: Avoid variable named BASH.
Patch in part by Mike Frysinger.
2007-06-06  Jakub Jelinek  <jakub@redhat.com>
2007-06-08 03:17:15 +00:00
Ulrich Drepper
835abc5c0d [BZ #4586]
2007-06-06  Jakub Jelinek  <jakub@redhat.com>
	BZ #4586
	* sysdeps/i386/ldbl2mpn.c (__mpn_extract_long_double): Treat
	pseudo-zeros as zero.
	* sysdeps/x86_64/ldbl2mpn.c: New file.
	* sysdeps/ia64/ldbl2mpn.c: New file.
2007-06-08 02:50:59 +00:00
Ulrich Drepper
b03b0c2920 * pthread_getattr_np.c: No need to install a cancellation handler,
this is no cancellation point.
	* pthread_getschedparam.c: Likewise.
	* pthread_setschedparam.c: Likewise.
	* pthread_setschedprio.c: Likewise.
	* sysdeps/unix/sysv/linux/lowlevellock.c: Remove all traces of
	lll_unlock_wake_cb.
	* sysdeps/unix/sysv/linux/alpha/lowlevellock.h: Likewise.
	* sysdeps/unix/sysv/linux/i386/lowlevellock.h: Likewise.
	* sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Likewise.
	* sysdeps/unix/sysv/linux/ia64/lowlevellock.h: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Likewise.
	* sysdeps/unix/sysv/linux/s390/lowlevellock.h: Likewise.
	* sysdeps/unix/sysv/linux/sh/lowlevellock.S: Likewise.
	* sysdeps/unix/sysv/linux/sh/lowlevellock.h: Likewise.
	* sysdeps/unix/sysv/linux/sparc/lowlevellock.h: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/lowlevellock.c: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
2007-05-30 04:45:03 +00:00
Ulrich Drepper
fc3f0ccb98 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
(__lll_mutex_unlock_wake): Add back label '1' which went AWOL quite
	some time ago.
2007-05-30 04:22:24 +00:00
Ulrich Drepper
0154658d3d * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Checking
whether there are more than one thread makes no sense here since
	we only call the slow path if the locks are taken.
	* sysdeps/unix/sysv/linux/x86_64/libc-lowlevellock.S: Likewise.
2007-05-30 04:08:13 +00:00
Ulrich Drepper
ee5d5755a8 * sysdeps/unix/sysv/linux/internaltypes.h: Introduce
COND_NWAITERS_SHIFT.
	* pthread_cond_destroy.c: Use COND_NWAITERS_SHIFT instead of
	COND_CLOCK_BITS.
	* pthread_cond_init.c: Likewise.
	* pthread_cond_timedwait.c: Likewise.
	* pthread_cond_wait.c: Likewise.
	* pthread_condattr_getclock.c: Likewise.
	* pthread_condattr_setclock.c: Likewise.
	* sysdeps/unix/sysv/linux/lowlevelcond.sym: Likewise.
	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
2007-05-29 16:15:48 +00:00
Ulrich Drepper
40f57573d0 * sysdeps/unix/sysv/linux/futimes.c (miss_utimensat): Don't define
if __NR_utimensat is not defined.
2007-05-28 16:43:59 +00:00
Ulrich Drepper
991fa82be5 * sysdeps/i386/tls.h (THREAD_GSCOPE_RESET_FLAG): Use explicit
insn suffix.
	(THREAD_GSCOPE_GET_FLAG): Remove.
	* sysdeps/x86_64/tls.h (THREAD_GSCOPE_GET_FLAG): Remove.
	* allocatestack.c (__wait_lookup_done): Revert 2007-05-24
	changes.
	* sysdeps/powerpc/tls.h (tcbhead_t): Remove gscope_flag.
	(THREAD_GSCOPE_GET_FLAG): Remove.
	(THREAD_GSCOPE_RESET_FLAG): Use THREAD_SELF->header.gscope_flag
	instead of THREAD_GSCOPE_GET_FLAG.
	(THREAD_GSCOPE_SET_FLAG): Likewise.  Add atomic_write_barrier after
	it.
	* sysdeps/s390/tls.h (THREAD_GSCOPE_FLAG_UNUSED,
	THREAD_GSCOPE_FLAG_USED, THREAD_GSCOPE_FLAG_WAIT,
	THREAD_GSCOPE_RESET_FLAG, THREAD_GSCOPE_SET_FLAG,
	THREAD_GSCOPE_WAIT): Define.
	* sysdeps/sparc/tls.h (THREAD_GSCOPE_FLAG_UNUSED,
	THREAD_GSCOPE_FLAG_USED, THREAD_GSCOPE_FLAG_WAIT,
	THREAD_GSCOPE_RESET_FLAG, THREAD_GSCOPE_SET_FLAG,
	THREAD_GSCOPE_WAIT): Define.
	* sysdeps/sh/tls.h (THREAD_GSCOPE_FLAG_UNUSED,
	THREAD_GSCOPE_FLAG_USED, THREAD_GSCOPE_FLAG_WAIT,
	THREAD_GSCOPE_RESET_FLAG, THREAD_GSCOPE_SET_FLAG,
	THREAD_GSCOPE_WAIT): Define.
	* sysdeps/ia64/tls.h (THREAD_GSCOPE_FLAG_UNUSED,
	THREAD_GSCOPE_FLAG_USED, THREAD_GSCOPE_FLAG_WAIT,
	THREAD_GSCOPE_RESET_FLAG, THREAD_GSCOPE_SET_FLAG,
	THREAD_GSCOPE_WAIT): Define.

2007-05-24  Richard Henderson  <rth@redhat.com>

	* descr.h (struct pthread): Add header.gscope_flag.
	* sysdeps/alpha/tls.h (THREAD_GSCOPE_FLAG_UNUSED,
	THREAD_GSCOPE_FLAG_USED, THREAD_GSCOPE_FLAG_WAIT,
	THREAD_GSCOPE_RESET_FLAG, THREAD_GSCOPE_SET_FLAG,
	THREAD_GSCOPE_WAIT): Define.
2007-05-28 16:42:08 +00:00
Ulrich Drepper
cd0dbd8944 [__WORDSIZE=64]: Renamed __pad1 element int rwlock structure to 2007-05-27 18:56:40 +00:00
Ulrich Drepper
50f1dec5d3 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Likewise.
* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
	Likewise.
	* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
	Likewise.
	* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S: Likewise.
	* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
2007-05-27 18:56:02 +00:00
Ulrich Drepper
e59660bc25 * init.c: Make it compile with older kernel headers.
* tst-initializers1.c: Show through exit code which test failed.

	* pthread_rwlock_init.c: Also initialize __shared field.
	* sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Split __flags
	element in rwlock structure into four byte elements.  One of them is
	the new __shared element.
	* sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h [__WORDSIZE=32]:
	Likewise.
	[__WORDSIZE=64]: Renamed __pad1 element int rwlock structire to
	__shared, adjust names of other padding elements.
	* sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
	* sysdeps/pthread/pthread.h: Adjust rwlock initializers.
	* sysdeps/unix/sysv/linux/lowlevelrwlock.sym: Add PSHARED.
	* sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Define
	FUTEX_PRIVATE_FLAG.
	* sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S: Change main
	futex to use private operations if possible.
	* sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S:
	Likewise.
	* sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S:
	Likewise.
	* sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_unlock.S: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S: Likewise.
2007-05-27 18:06:18 +00:00
Ulrich Drepper
546346b6f8 * pthreadP.h (PTHREAD_RWLOCK_PREFER_READER_P): Define.
* pthread_rwlock_rdlock.c: Use PTHREAD_RWLOCK_PREFER_READER_P.
	* pthread_rwlock_timedrdlock.c: Likewise.
	* pthread_rwlock_tryrdlock.c: Likewise.
2007-05-26 22:11:42 +00:00
Ulrich Drepper
a2dd3360db * sysdeps/unix/sysv/linux/x86_64/sem_trywait.S (sem_trywait): Tiny
optimization.
2007-05-26 21:47:28 +00:00
Ulrich Drepper
6df7ffad19 * sysdeps/unix/sysv/linux/powerpc/libc-start.c: Include <sysdep.h>. 2007-05-26 20:13:27 +00:00
Ulrich Drepper
d8ff3792a8 * sysdeps/unix/sysv/linux/internaltypes.h (struct pthread_barrier):
Add private field.
	* sysdeps/unix/sysv/linux/lowlevelbarrier.sym: Add PRIVATE definition.
	* pthread_barrier_init.c: Set private flag if pshared and private
	futexes are supported.
	* sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S: Use
	private field in futex command setup.
	* sysdeps/unix/sysv/linux/x86_64/pthread_barrier_wait.S: Likewise.
2007-05-26 16:19:15 +00:00
Ulrich Drepper
42e6c66593 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S: Add private futex
support.
	* sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: Likewise.
	* sysdeps/unix/sysv/linux/i386/i486/sem_wait.S: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/sem_post.S: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Likewise.
2007-05-26 04:49:06 +00:00
Ulrich Drepper
3d2dd6ca71 * semaphoreP.h: Declare __old_sem_init and __old_sem_wait.
* sem_init.c (__new_sem_init): Rewrite to initialize all three
	fields in the structure.
	(__old_sem_init): New function.
	* sem_open.c: Initialize all fields of the structure.
	* sem_getvalue.c: Adjust for renamed element.
	* sysdeps/unix/sysv/linux/Makefile [subdir=nptl]
	(gen-as-const-headers): Add structsem.sym.
	* sysdeps/unix/sysv/linux/structsem.sym: New file.
	* sysdeps/unix/sysv/linux/internaltypes.h: Rename struct sem to
	struct new_sem.  Add struct old_sem.
	* sysdeps/unix/sysv/linux/sem_post.c: Wake only when there are waiters.
	* sysdeps/unix/sysv/linux/i386/i486/sem_post.S: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/sem_post.S: Likewise.
	* sysdeps/unix/sysv/linux/sem_wait.c: Indicate that there are waiters.
	* sysdeps/unix/sysv/linux/i386/i486/sem_wait.S: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Likewise.
	* sysdeps/unix/sysv/linux/sem_timedwait.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Likewise.
	* Makefile (tests): Add tst-sem10, tst-sem11, tst-sem12.
	* tst-sem10.c: New file.
	* tst-sem11.c: New file.
	* tst-sem12.c: New file.
	* tst-typesizes.c: Test struct new_sem and struct old_sem instead
	of struct sem.

2007-05-25  Ulrich Drepper  <drepper@redhat.com>
2007-05-26 01:31:40 +00:00
Ulrich Drepper
2af4e3e566 Test of semaphores. 2007-05-26 01:23:04 +00:00
Jakub Jelinek
20a4d7228e * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S (sem_timedwait):
Move __pthread_enable_asynccancel right before futex syscall. 
* sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S (sem_timedwait): 
Likewise.
2007-05-25  Ulrich Drepper  <drepper@redhat.com>
	    Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S (sem_timedwait):
	Move __pthread_enable_asynccancel right before futex syscall.
	* sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S (sem_timedwait):
	Likewise.

2007-05-24  Jakub Jelinek  <jakub@redhat.com>
2007-05-25 19:27:03 +00:00
Ulrich Drepper
47ad95ab96 * io/bits/fcntl2.h (__open_2): Add nonnull attribute.
(open): Fix comment typos.  Don't call __open_2 if flags
	is a compile time constant without O_CREAT.
	(__open64_2): Add nonnull attribute.
	(open64): Fix comment typos.  Don't call __open64_2 if flags
	is a compile time constant without O_CREAT.
	(__openat_2): Add nonnull attribute, fix nonnull attribute
	on redirect.
	(openat): Fix comment typos.  Don't call __openat_2 if flags
	is a compile time constant without O_CREAT.
	(__openat64_2): Add nonnull attribute, fix nonnull attribute
	on redirect.
	(openat64): Fix comment typos.  Don't call __openat64_2 if flags
	is a compile time constant without O_CREAT.
2007-05-25 14:41:55 +00:00
Ulrich Drepper
86acd59634 * sysdeps/i386/tls.h (THREAD_SET_PRIVATE_FUTEX,
THREAD_COPY_PRIVATE_FUTEX): Define.
	* sysdeps/x86_64/tls.h (THREAD_SET_PRIVATE_FUTEX,
	THREAD_COPY_PRIVATE_FUTEX): Define.
	* allocatestack.c (allocate_stack): Use THREAD_COPY_PRIVATE_FUTEX.
	* init.c (__pthread_initialize_minimal_internal): Use
	THREAD_SET_PRIVATE_FUTEX.
2007-05-25 05:24:16 +00:00
Ulrich Drepper
0a54ab53f2 * sysdeps/powerpc/tls.h (tcbhead_t): Add gscope_flag.
(THREAD_GSCOPE_FLAG_UNUSED, THREAD_GSCOPE_FLAG_USED,
	THREAD_GSCOPE_FLAG_WAIT): Define.
	(THREAD_GSCOPE_GET_FLAG, THREAD_GSCOPE_SET_FLAG,
	THREAD_GSCOPE_RESET_FLAG, THREAD_GSCOPE_WAIT): Define.
	* sysdeps/i386/tls.h (THREAD_GSCOPE_WAIT): Don't use
	PTR_DEMANGLE.
	(THREAD_GSCOPE_GET_FLAG): Define.
	* sysdeps/x86_64/tls.h (THREAD_GSCOPE_GET_FLAG): Define.
	* allocatestack.c (__wait_lookup_done): Use THREAD_GSCOPE_GET_FLAG
	instead of ->header.gscope_flag directly.
2007-05-25 05:21:07 +00:00
Ulrich Drepper
5a8075b116 * init.c (__pthread_initialize_minimal_internal): Check whether
private futexes are available.
	* allocatestack.c (allocate_stack): Copy private_futex field from
	current thread into the new stack.
	* sysdeps/unix/sysv/linux/x86_64/libc-lowlevellock.S: Use private
	futexes if they are available.
	* sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Likewise
	* sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Adjust so that change
	in libc-lowlevellock.S allow using private futexes.
	* sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Define
	FUTEX_PRIVATE_FLAG.
	* sysdeps/unix/sysv/linux/i386/lowlevellock.h: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Use private futexes
	if they are available.
	* sysdeps/unix/sysv/linux/i386/pthread_once.S: Likewise.
	* sysdeps/x86_64/tcb-offsets.sym: Add PRIVATE_FUTEX.
	* sysdeps/i386/tcb-offsets.sym: Likewise.
	* sysdeps/x86_64/tls.h (tcbhead_t): Add private_futex field.
	* sysdeps/i386/tls.h (tcbhead_t): Likewise.
2007-05-23 20:51:45 +00:00