Commit Graph

596 Commits

Author SHA1 Message Date
Andreas Schwab
eaee348ce7 Add test case for bug 20263 2016-07-07 14:33:36 +02:00
H.J. Lu
dfc9ea7b01 Compile tst-cleanupx4 test with -fexceptions
tst-cleanupx4 is linked with tst-cleanupx4.o and tst-cleanup4aux.o.
Since tst-cleanupx4.o is compiled from tst-cleanup4.c with -fexceptions,
tst-cleanup4aux.c should also be compiled with -fexceptions.

Tested on x86-64 and i686.

	[BZ #18645]
	* nptl/Makefile (extra-test-objs): Add tst-cleanupx4aux.o.
	(test-extras): Add tst-cleanupx4aux.
	(CFLAGS-tst-cleanupx4aux.c): New.  Set to -fexceptions.
	($(objpfx)tst-cleanupx4): Replace tst-cleanup4aux.o with
	tst-cleanupx4aux.o.
	* nptl/tst-cleanupx4aux.c: New file.
2016-06-29 20:24:44 -07:00
Adhemerval Zanella
b39b6e0c90 nptl: Add sendmmsg and recvmmsg cancellation tests
This patch adds cancellation tests for both sendmmsg and recvmmsg
syscalls.  Since for some system configuration (x86_64/i686 on
older kernels and non-Linux platforms), the tests are added as
two independent that report as unsupported if the syscall is not
presented.

Both new tests uses the already tst-cancel4.c code, which as moved
to a common tst-cancel4-common{.c,h} files.

Tested on x86_64 and i686.

	* nptl/Makefile (test): Add tst-cancel4_1 and tst-cancel4_2.
	* nptl/tst-cancel4-common.c: New file.
	* nptl/tst-cancel4-common.h: Likewise.
	* nptl/tst-cancel4.c: Move common definitions to
	tst-cancel4-common.{c,h} file.
	* nptl/tst-cancel4_1.c: New test.
	* nptl/tst-cancel4_2.c: New test.
2016-06-13 13:37:24 -03:00
Adhemerval Zanella
78880cc185 Revert {send,sendm,recv,recvm}msg conformance changes
After some discussion in libc-alpha about this POSIX compliance fix, I see
that GLIBC should indeed revert back to previous definition of msghdr and
cmsghdr and implementation of sendmsg, recvmsg, sendmmsg, recvmmsg due some
reasons:

 * The possible issue where the syscalls wrapper add the compatibility
   layer is quite limited in scope and range.  And kernel current
   also add some limits to the values on the internal msghdr and
   cmsghdr fields:

     - msghdr::msg_iovlen larger than UIO_MAXIOV (1024) returns
       EMSGSIZE.
     - msghdr::msg_controllen larger than INT_MAX returns ENOBUFS.

 * There is a small performance hit for recvmsg/sendmsg/recmmsg which
   is neglectable, but it is a big hit for sendmmsg since now instead
   of calling the syscall for the packed structure, GLIBC is calling
   multiple sendmsg.  This defeat the very existence of the syscall.

 * It currently breaks libsanitizer build on GCC [1] (I fixed on compiler-rt).
   However the fix is incomplete because it does add any runtime check
   since libsanitizer currently does not have any facility to intercept
   symbols with multiple version [2].

   This, along with incorret dlsym/dlvsym return for versioned symbol due
   another bug [3], makes hard to interpose versioned symbols.

   Also, current approach of fixing GCC PR#71445 leads to half-baked
   solutions without versioned symbol interposing.

This patch basically reverts commits 2f0dc39029, 222c2d7f43,
af7f7c7ec8.  I decided to not revert abf29edd4a (Adjust
kernel-features.h defaults for recvmsg and sendmsg) mainly because it
does not really address the POSIX compliance original issue and also
adds some cleanups.

Tested on x86, i386, s390, s390x, aarch64, and powerpc64le.

[1] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71445
[2] https://github.com/google/sanitizers/issues/628
[3] https://sourceware.org/bugzilla/show_bug.cgi?id=14932

	* conform/data/sys/socket.h-data (msghdr.msg_iovlen): Add xfail-.
	(msghdr.msg_controllen): Likewise.
	(cmsghdr.cmsg_len): Likewise.
	* nptl/Makefile (libpthread-routines): Remove ptw-oldrecvmsg and
	ptw-oldsendmsg.
	(CFLAGS-oldrecvmsg.c): Remove rule.
	(CFLAGS-oldsendmsg.c): Likewise.
	(CFLAGS-recvmsg.c): Add rule.
	(CFLAGS-sendmsg.c): Likewise.
	* sysdeps/unix/sysv/linux/Makefile (sysdep_routines): Remove
	oldrecvmsg, oldsendmsg, oldrecvmmsg, oldsendmmsg.
	(CFLAGS-recvmsg.c): Remove rule.
	(CFLAGS-sendmsg.c): Likewise.
	(CFLAGS-oldrecvmsg.c): Likewise.
	(CFLAGS-oldsendmsg.c): Likewise.
	(CFLAGS-recvmmsg.c): Likewise.
	* sysdeps/unix/sysv/linux/bits/socket.h (msghdr.msg_iovlen): Revert
	to kernel defined interfaces.
	(msghdr.msg_controllen): Likewise.
	(cmsghdr.cmsg_len): Likewise.
	(msghdr.__glibc_reserved1): Remove member.
	(msghdr.__glibc_reserved2): Likewise.
	(cmsghdr.__glibc_reserved1): Likewise.
	* sysdeps/unix/sysv/linux/oldrecvmmsg.c: Remove file.
	* sysdeps/unix/sysv/linux/oldrecvmsg.c: Likewise.
	* sysdeps/unix/sysv/linux/oldsendmmsg.c: Likewise.
	* sysdeps/unix/sysv/linux/oldsendmsg.c: Likewise.
	* sysdeps/unix/sysv/linux/recvmmsg.c: Revert back to previous
	version.
	* sysdeps/unix/sysv/linux/recvmsg.c: Likewise.
	* sysdeps/unix/sysv/linux/sendmmsg.c: Likewise.
	* sysdeps/unix/sysv/linux/sendmsg.c: Likewise.
	* sysdeps/unix/sysv/linux/aarch64/Versions [libc] (GLIBC_2.24):
	Remove recvmsg and sendmsg.
	* sysdeps/unix/sysv/linux/alpha/Versions [libc] (GLIBC_2.24):
	Likewise.
	* sysdeps/unix/sysv/linux/hppa/Versions [libc] (GLIBC_2.24):
	Likewise.
	* sysdeps/unix/sysv/linux/i386/Versions [libc] (GLIBC_2.24): Likewise.
	* sysdeps/unix/sysv/linux/m68k/Versions [libc] (GLIBC_2.24): Likewise.
	* sysdeps/unix/sysv/linux/microblaze/Versions [libc] (GLIBC_2.24):
	Likewise.
	* sysdeps/unix/sysv/linux/mips/mips32/Versions [libc] (GLIBC_2.24):
	Likewise.
	* sysdeps/unix/sysv/linux/mips/mips64/n32/Versions
	[libc] (GLIBC_2.24): Likewise.
	* sysdeps/unix/sysv/linux/nios2/Versions [libc] (GLIBC_2.24):
	Likewise.
	* sysdeps/unix/sysv/linux/powerpc/Versions [libc] (GLIBC_2.24):
	Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/Versions
	[libc] (GLIBC_2.24): Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/Versions [libc] (GLIBC_2.24):
	Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-64/Versions [libc] (GLIBC_2.24):
	Likewise.
	* sysdeps/unix/sysv/linux/sh/Versions [libc] (GLIBC_2.24): Likewise.
	* sysdeps/unix/sysv/linux/sparc/Versions [libc] (GLIBC_2.24):
	Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/Versions [libc] (GLIBC_2.24):
	Likewise.
	* sysdeps/unix/sysv/linux/tile/Versions [libc] (GLIBC_2.24):
	Likewise.
	* sysdeps/unix/sysv/linux/x86_64/Versions [libc] (GLIBC_2.24):
	Likewise.
	* sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/Versions: Remove file
	* sysdeps/unix/sysv/linux/x86_64/64/Versions: Likewise.
	* sysdeps/unix/sysv/linux/mips/mips64/n64/Versions: Likewise.
	* sysdeps/unix/sysv/linux/aarch64/libc.abilist: Remove new 2.24
	version for {recv,send,recm,sendm}msg.
	* sysdeps/unix/sysv/linux/alpha/libc.abilist: Likewise.
	* sysdeps/unix/sysv/linux/arm/libc.abilist: Likewise.
	* sysdeps/unix/sysv/linux/hppa/libc.abilist: Likewise.
	* sysdeps/unix/sysv/linux/i386/libc.abilist: Likewise.
	* sysdeps/unix/sysv/linux/ia64/libc.abilist: Likewise.
	* sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist: Likewise.
	* sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist: Likewise.
	* sysdeps/unix/sysv/linux/microblaze/libc.abilist: Likewise.
	* sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist: Likewise.
	* sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist: Likewise.
	* sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist: Likewise.
	* sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist:
	Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist:
	Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist: Likewise.
	* sysdeps/unix/sysv/linux/nios2/libc.abilist: Likewise.
	* sysdeps/unix/sysv/linux/sh/libc.abilist: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist: Likewise.
	* sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libc.abilist: Likewise.
	* sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libc.abilist: Likewise.
	* sysdeps/unix/sysv/linux/tile/tilepro/libc.abilist: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/64/libc.abilist: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist: Likewise.
2016-06-10 11:58:16 -03:00
Adhemerval Zanella
2f0dc39029 network: Fix missing bits from {recv,send}{m}msg standard com,pliance
This patch fixes wrong/missing bits from the Fix {recv,send}{m}msg
standard compliance (BZ#16919) patches:

  * nptl/Makefile sets CFLAGS-oldrecvfrom.c, but there's no such file as
    oldrecvfrom.c.  It should be oldsendmsg.c as defined by ChangeLog.

  * sysdeps/unix/sysv/linux/hppa/Versions and
    sysdeps/unix/sysv/linux/i386/Versions list a symbol recvms instead of
    recvmsg at version GLIBC_2.24.

	* nptl/Makefile (CFLAGS-oldrecvfrom.c): Remove rule.
	(CFLAGS-oldsendmsg.c): Add rule.
	* sysdeps/unix/sysv/linux/hppa/Versions [libc] (GLIBC_2.24):
	Correct recvmsg symbol name.
	* sysdeps/unix/sysv/linux/i386/Versions [libc] (GLIBC_2.24):
	Likewise.
2016-05-26 11:11:33 -03:00
Adhemerval Zanella
af7f7c7ec8 network: recvmsg and sendmsg standard compliance (BZ#16919)
POSIX specifies that both msghdr::msg_iovlen and msghdr::msg_controllen
to be of size int and socklen_t respectively.  However Linux defines it as
both size_t and for 64-bit it requires some adjustments to make the
functions standard compliance.

This patch fixes it by creating a temporary header and zeroing the pad
fields for 64-bits architecture where size of size_t exceeds the size of
the int.

Also the new recvmsg and sendmsg implementation is only added on libc,
with libpthread only containing a compat symbol.

Tested on x86_64, i686, aarch64, armhf, and powerpc64le.

	* conform/data/sys/socket.h-data (msghdr.msg_iovlen): Remove xfail-
	and change to correct expected type.
	(msghdr.msg_controllen): Likewise.
	(cmsghdr.cmsg_len): Likewise.
	* sysdeps/unix/sysv/linux/bits/socket.h (msghdr.msg_iovlen): Fix
	expected POSIX assumption about the size.
	(msghdr.msg_controllen): Likewise.
	(msghdr.__glibc_reserved1): Likewise.
	(msghdr.__glibc_reserved2): Likewise.
	(cmsghdr.cmsg_len): Likewise.
	(cmsghdr.__glibc_reserved1): Likewise.
	* nptl/Makefile (libpthread-routines): Remove ptw-recvmsg and ptw-sendmsg.
	Add ptw-oldrecvmsg and ptw-oldsendmsg.
	(CFLAGS-sendmsg.c): Remove rule.
	(CFLAGS-recvmsg.c): Likewise.
	(CFLAGS-oldsendmsg.c): Add rule.
	(CFLAGS-oldrecvmsg.c): Likewise.
	* sysdeps/unix/sysv/linux/alpha/Versions [libc] (GLIBC_2.24): Add
	recvmsg and sendmsg.
	* sysdeps/unix/sysv/linux/aarch64/Version [libc] (GLIBC_2.24):
	Likewise.
	* sysdeps/unix/sysv/linux/arm/Versions [libc] (GLIBC_2.24): Likewise.
	* sysdeps/unix/sysv/linux/hppa/Versions [libc] (GLIBC_2.24): Likewise.
	* sysdeps/unix/sysv/linux/i386/Versions [libc] (GLIBC_2.24): Likewise.
	* sysdeps/unix/sysv/linux/ia64/Versions [libc] (GLIBC_2.24): Likewise.
	* sysdeps/unix/sysv/linux/m68k/Versions [libc] (GLIBC_2.24): Likewise.
	* sysdeps/unix/sysv/linux/microblaze/Versions [libc] (GLIBC_2.24):
	Likewise.
	* sysdeps/unix/sysv/linux/mips/mips32/Versions [libc] (GLIBC_2.24):
	Likewise.
	* sysdeps/unix/sysv/linux/mips/mips64/n32/Versions [libc] (GLIBC_2.24):
	Likewise.
	* sysdeps/unix/sysv/linux/mips/mips64/Versions [libc] (GLIBC_2.24):
	Likewise.
	* sysdeps/unix/sysv/linux/nios2/Versions [libc] (GLIBC_2.24):
	Likewise.
	* sysdeps/unix/sysv/linux/powerpc/Versions [libc] (GLIBC_2.24):
	Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/Versions [libc]
	(GLIBC_2.24): Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/Versions [libc] (GLIBC_2.24):
	Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-64/Versions [libc] (GLIBC_2.24):
	Likewise.
	* sysdeps/unix/sysv/linux/sh/Versions [libc] (GLIBC_2.24): Likewise.
	* sysdeps/unix/sysv/linux/sparc/Versions [libc] (GLIBC_2.24):
	Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/Versions [libc] (GLIBC_2.24):
	Likewise.
	( sysdeps/unix/sysv/linux/tile/Versions [libc] (GLIBC_2.24):
	Likewise.
	* sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/Versions [libc]
	(GLIBC_2.24): Likewise.
	( sysdeps/unix/sysv/linux/x86_64/64/Versions [libc] (GLIBC_2.24):
	Likewise.
	* sysdeps/unix/sysv/linux/x84_64/Versions [libc] (GLIBC_2.24):
	Likewise.
	* sysdeps/unix/sysv/linux/Makefile
	[$(subdir) = socket)] (sysdep_headers): Add oldrecvmsg and oldsendmsg.
	(CFLAGS-sendmsg.c): Add rule.
	(CFLAGS-recvmsg.c): Likewise.
	(CFLAGS-oldsendmsg.c): Likewise.
	(CFLAGS-oldrecvmsg.c): Likewise.
	* sysdeps/unix/sysv/linux/check_native.c (__check_native): Fix msghdr
	initialization.
	* sysdeps/unix/sysv/linux/check_pf.c (make_request): Likewise.
	* sysdeps/unix/sysv/linux/ifaddrs.c (__netlink_request): Likewise.
	* sysdeps/unix/sysv/linux/oldrecvmsg.c: New file.
	* sysdeps/unix/sysv/linux/oldsendmsg.c: Likewise.
	* sysdeps/unix/sysv/linux/recvmsg.c (__libc_recvmsg): Adjust msghdr
	iovlen and controllen fields to adjust to POSIX specification.
	* sysdeps/unix/sysv/linux/sendmsg.c (__libc_sendmsg): Likewise.
	* sysdeps/unix/sysv/linux/aarch64/libc.abilist: New version and
	added recvmsg and sendmsg.
	* sysdeps/unix/sysv/linux/alpha/libc.abilist: Likewise.
	* sysdeps/unix/sysv/linux/hppa/libc.abilist: Likewise.
	* sysdeps/unix/sysv/linux/i386/libc.abilist: Likewise.
	* sysdeps/unix/sysv/linux/ia64/libc.abilist: Likewise.
	* sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist: Likewise.
	* sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist: Likewise.
	* sysdeps/unix/sysv/linux/microblaze/libc.abilist: Likewise.
	* sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist: Likewise.
	* sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist: Likewise.
	* sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist: Likewise.
	* sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist: Likewise.
	* sysdeps/unix/sysv/linux/nios2/libc.abilist: Likewise
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist:
	Likewise.
	* sysdeps/unix/linux/powerpc/powerpc32/nofpu/libc.abilist: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist: Likewise.
	* sysdepe/unix/sysv/linux/powerpc/powerpc64/libc.abilist: Likewise.
	Likewise.
	Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist: Likewise.
	* sysdeps/unix/sysv/linux/sh/libc.abilist: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist: Likewise.
	* sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libc.abilist: Likewise.
	* sysdeps/unix/sysv/linux/tile/tilepro/libc.abilist: Likewise.
	* sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libc.abilist: Likewise.
	Likewise.
	* sysdeps/unix/sysv/linux/x86_64/64/libc.abilist: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist: Likewise.
2016-05-25 17:39:01 -03:00
Andreas Schwab
5aded6f2ab Don't do lock elision on an error checking mutex (bug 17514)
Error checking mutexes are not supposed to be subject to lock elision.
That would defeat the error checking nature of the mutex because lock
elision doesn't record ownership.
2016-01-25 16:26:07 +01:00
Torvald Riegel
b02840bacd New pthread_barrier algorithm to fulfill barrier destruction requirements.
The previous barrier implementation did not fulfill the POSIX requirements
for when a barrier can be destroyed.  Specifically, it was possible that
threads that haven't noticed yet that their round is complete still access
the barrier's memory, and that those accesses can happen after the barrier
has been legally destroyed.
The new algorithm does not have this issue, and it avoids using a lock
internally.
2016-01-15 21:20:34 +01:00
Joseph Myers
f7a9f785e5 Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
Joseph Myers
678443ce17 Add -std=gnu11 and -std=c11 NPTL initializers tests.
NPTL has tests that initializers work with various -std= options.  Now
that we can rely on -std=gnu11 and -std=c11 being available, this
patch adds versions of those tests for those options.

Tested for x86_64 and x86 (testsuite).

	* nptl/tst-initializers1-c11.c: New file.
	* nptl/tst-initializers1-gnu11.c: Likewise.
	* nptl/Makefile (tests): Add these new tests.
	(CFLAGS-tst-initializers1-c11.c): New variable.
	(CFLAGS-tst-initializers1-gnu11.c): Likewise.
2015-10-27 21:48:34 +00:00
Joseph Myers
3e2ee6f0e3 Remove sysdeps/nptl/configure.ac.
sysdeps/nptl/configure.ac tests for forced unwind support and the C
cleanup attribute, giving errors if either is unsupported.  It does
nothing beyond running those two tests.

Both the attribute, and _Unwind_GetCFA which is used in the forced
unwind test, were added in GCC 3.3.  Thus these tests are long
obsolete, and this patch removes the configure fragment running them,
along with associated conditionals.

Tested for x86_64 and x86 (testsuite, and that installed stripped
shared libraries are unchanged by the patch).

	* sysdeps/nptl/configure.ac: Remove file.
	* sysdeps/nptl/configure: Remove generated file.
	* configure.ac (libc_cv_forced_unwind): Do not substitute.
	* configure: Regenerated.
	* config.h.in (HAVE_FORCED_UNWIND): Remove #undef.
	* config.make.in (have-forced-unwind): Remove variable.
	* nptl/Makefile [$(have-forced-unwind) = yes]: Make code
	unconditional.
	* nptl/descr.h [HAVE_FORCED_UNWIND]: Likewise.
	* nptl/unwind.c [HAVE_FORCED_UNWIND]: Likewise.
	(__pthread_unwind) [!HAVE_FORCED_UNWIND]: Remove conditional code.
	* nptl/version.c [HAVE_FORCED_UNWIND]: Make code unconditional.
	* sysdeps/nptl/Makefile [$(have-forced-unwind) = yes]: Make code
	unconditional.
2015-10-27 21:46:03 +00:00
Adhemerval Zanella
67ac0f74a4 nptl: Add NPTL cases for cancellation failures cases
This patch pthread cancellation tests to check for failures cases
wherer the syscall cancel wrapper should both set the error and
the errno values.

Tested on i686, x86_64, x32, powerpc64le, and aarch64.

	* nptl/Makefile (tests): Add tst-cancel26.c and tst-cancel27.c.
	* nptl/tst-cancel26.c: New file.
	* nptl/tst-cancel27.c: Likewise.
2015-10-09 15:50:27 -03:00
Florian Weimer
99e1dc0a68 Add a test case for C++11 thread_local support
This requires a C++ compiler with thread_local support, and a new
configure check is needed.
2015-10-06 21:27:55 +02:00
Siddhesh Poyarekar
e400f3ccd3 Use IE model for static variables in libc.so, libpthread.so and rtld
The recently introduced TLS variables in the thread-local destructor
implementation (__cxa_thread_atexit_impl) used the default GD access
model, resulting in a call to __tls_get_addr.  This causes a deadlock
with recent changes to the way TLS is initialized because DTV
allocations are delayed and hence despite knowing the offset to the
variable inside its TLS block, the thread has to take the global rtld
lock to safely update the TLS offset.

This causes deadlocks when a thread is instantiated and joined inside
a destructor of a dlopen'd DSO.  The correct long term fix is to
somehow not take the lock, but that will need a lot deeper change set
to alter the way in which the big rtld lock is used.

Instead, this patch just eliminates the call to __tls_get_addr for the
thread-local variables inside libc.so, libpthread.so and rtld by
building all of their units with -mtls-model=initial-exec.

There were concerns that the static storage for TLS is limited and
hence we should not be using it.  Additionally, dynamically loaded
modules may result in libc.so looking for this static storage pretty
late in static binaries.  Both concerns are valid when using TLSDESC
since that is where one may attempt to allocate a TLS block from
static storage for even those variables that are not IE.  They're not
very strong arguments for the traditional TLS model though, since it
assumes that the static storage would be used sparingly and definitely
not by default.  Hence, for now this would only theoretically affect
ARM architectures.

The impact is hence limited to statically linked binaries that dlopen
modules that in turn load libc.so, all that on arm hardware.  It seems
like a small enough impact to justify fixing the larger problem that
currently affects everything everywhere.

This still does not solve the original problem completely.  That is,
it is still possible to deadlock on the big rtld lock with a small
tweak to the test case attached to this patch.  That problem is
however not a regression in 2.22 and hence could be tackled as a
separate project.  The test case is picked up as is from Alex's patch.

This change has been tested to verify that it does not cause any
issues on x86_64.

ChangeLog:

	[BZ #18457]
	* nptl/Makefile (tests): New test case tst-join7.
	(modules-names): New test case module tst-join7mod.
	* nptl/tst-join7.c: New file.
	* nptl/tst-join7mod.c: New file.
	* Makeconfig (tls-model): Pass -ftls-model=initial-exec for
	all translation units in libc.so, libpthread.so and rtld.
2015-07-24 19:13:38 +05:30
Adhemerval Zanella
edcfe9eab0 Avoid C++ tests when the C++ cannot be linked
* elf/Makefile [ifeq (yes,$(build-shared)) (tests)] (tst-nodelete):
	Add iff $CXX is set.
	[ifeq (yes,$(build-shared)) (modules-names)] (tst-nodelete-rtldmod):
	Likewise.
	(tst-nodelete-zmodiff): Likewise.
	* nptl/Makefile [[ifeq (,$(CXX))] (tests-unsupported)]: Add tst-once5.
2015-07-14 11:19:47 -03:00
Martin Sebor
203c1a898d The patch committed to fix bug #18435 caused regressions on aarch64
and also powerpc64 and powerpc64le. See the discussion in the thread
below for details. This change reverts the problematic bits leaving
the added test in place and marking XFAIL in anticipation of fixing
the bug in the near future.
https://sourceware.org/ml/libc-alpha/2015-07/msg00141.html

	[BZ #18435]
	* nptl/pthreadP.h (pthread_cleanup_push, pthread_cleanup_pop):
	Revert commit ed225df3ad.
	* nptl/Makefile (test-xfail-tst-once5): Define.
2015-07-09 19:27:06 -04:00
Martin Sebor
ed225df3ad The C++ 2011 std::call_once function is specified to allow
the initialization routine to exit by throwing an exception.
Such an execution, termed exceptional, requires call_once to
propagate the exception to its caller.  A program may contain
any number of exceptional executions but only one returning
execution (which, if it exists, must be the last execution
with the same once flag).

On POSIX systems such as Linux, std::call_once is implemented
in terms of pthread_once.  However, as discussed in libstdc++
bug 66146 - "call_once not C++11-compliant on ppc64le," GLIBC's
pthread_once hangs when the initialization function exits by
throwing an exception on at least arm and ppc64 (though
apparently not on x86_64).  This effectively prevents call_once
from conforming to the C++ requirements since there doesn't
appear to be a thread-safe way to work around this problem in
libstdc++.

This patch changes pthread_once to handle gracefully init
functions that exit by throwing exceptions. It was successfully
tested on ppc64, ppc64le, and x86_64.

        [BZ #18435]
        * nptl/Makefile: Add tst-once5.cc.
        * nptl/pthreadP.h (pthread_cleanup_push, pthread_cleanup_pop):
        Remove macro redefinitions.
        * nptl/tst-once5.cc: New test.
2015-07-01 14:05:27 -06:00
Gleb Fotengauer-Malinovskiy
78ad175b30 nptl: restore .interp section in libpthread.so
In commit 02657da2cf, .interp section
was removed from libpthread.so.  This led to an error:

  $ /lib64/libpthread.so.0
  Native POSIX Threads Library by Ulrich Drepper et al
  Copyright (C) 2015 Free Software Foundation, Inc.
  This is free software; see the source for copying conditions.
  There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
  PARTICULAR PURPOSE.
  Forced unwind support included.
  Segmentation fault

  (gdb) bt
  #0  0x00000000000055a6 in _exit@plt ()

Unfortunately, there is no way to add a regression test for the bug
because .interp specifies the path to dynamic linker of the target
system.

[BZ #18479]
* nptl/pt-interp.c: New file.
* nptl/Makefile (libpthread-routines, libpthread-shared-only-routines):
Add pt-interp.
[$(build-shared) = yes] ($(objpfx)pt-interp.os): Depend on
$(common-objpfx)runtime-linker.h.
2015-06-10 10:18:12 +00:00
Torvald Riegel
b634486d57 Fix missing wake-ups in pthread_rwlock_rdlock.
This adds wake-ups that would be missing if assuming that for a
non-writer-preferring rwlock, if one thread has acquired a rdlock and
does not release it, another thread will eventually acquire a rdlock too
despite concurrent write lock acquisition attempts.  BZ 14958 is about
supporting this assumption.  Strictly speaking, this isn't a valid
test case, but nonetheless worth supporting (see comment 7 of BZ 14958).
2015-06-04 15:34:30 +02:00
Torvald Riegel
3c9c61febe Fix lost wake-up when pthread_rwlock_timedrwlock times out.
If we set up a rwlock to prefer writers (and disallow recursive rdlock
acquisitions), then readers will block for writers that are blocked to
acquire the lock (otherwise, readers could constantly enter and exit,
and the writer would never get the lock).  However, the existing
implementation did not wake such readers when the writer timed out.
This patch adds the missing wake-up.
There's no similar case for writers being blocked on readers.
2015-06-04 15:31:59 +02:00
Roland McGrath
68c97aef62 Split timed-wait functions out of nptl/lowlevellock.c. 2015-05-26 14:49:13 -07:00
Adhemerval Zanella
60dce8b904 Remove socket.S implementation
This patch removes the socket.S implementation for all ports and replace
it by a C implementation using socketcall.  For ports that implement
the syscall directly, there is no change.

The patch idea is to simplify the socket function implementation that
uses the socketcall to be based on C implemetation instead of a pseudo
assembly implementation with arch specific parts.  The patch then remove
the assembly implementatation for the ports which uses socketcall
(i386, microblaze, mips, powerpc, sparc, m68k, s390 and sh).

I have cross-build GLIBC for afore-mentioned ports and tested on both
i386 and ppc32 without regressions.
2015-05-22 17:38:06 -03:00
Roland McGrath
88ed594f5d BZ#18434: Fix sem_post EOVERFLOW check for [!__HAVE_64B_ATOMICS]. 2015-05-19 15:04:41 -07:00
Roland McGrath
44a6213c8e Let tests result in UNSUPPORTED; use that for unbuildable C++ cases 2015-03-10 15:13:14 -07:00
Roland McGrath
e4693aa7c1 Avoid C++ tests when the C++ cannot be linked. 2015-03-04 13:52:45 -08:00
Andreas Schwab
2868e0703d Filter out PTHREAD_MUTEX_NO_ELISION_NP bit in pthread_mutexattr_gettype (BZ #15790)
pthread_mutexattr_settype adds PTHREAD_MUTEX_NO_ELISION_NP to kind,
which is an internal flag that pthread_mutexattr_gettype shouldn't
expose, since pthread_mutexattr_settype wouldn't accept it.
2015-02-12 09:26:00 +01:00
Roland McGrath
9e7265f4e5 NPTL: Build tests using clone directly only for Linux. 2015-02-06 12:30:23 -08:00
Carlos O'Donell
042e1521c7 Fix semaphore destruction (bug 12674).
This commit fixes semaphore destruction by either using 64b atomic
operations (where available), or by using two separate fields when only
32b atomic operations are available.  In the latter case, we keep a
conservative estimate of whether there are any waiting threads in one
bit of the field that counts the number of available tokens, thus
allowing sem_post to atomically both add a token and determine whether
it needs to call futex_wake.

See:
https://sourceware.org/ml/libc-alpha/2014-12/msg00155.html
2015-01-21 00:46:16 -05:00
Richard Henderson
b92058573b Add -Wno-trampolines as needed 2015-01-08 08:32:44 -08:00
Joseph Myers
b168057aaa Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
Roland McGrath
f0481d971e Revert "Use pragmas rather than makefiles for necessary options for unwind code."
This reverts commit c324fcfe75.
2014-12-16 15:46:00 -08:00
Roland McGrath
c324fcfe75 Use pragmas rather than makefiles for necessary options for unwind code. 2014-12-16 14:31:24 -08:00
Roland McGrath
e4f639e4a1 NPTL: Refactor named semaphore code to use shm-directory.h 2014-12-12 15:01:30 -08:00
H.J. Lu
d8dd00805b Resize DTV if the current DTV isn't big enough
This patch changes _dl_allocate_tls_init to resize DTV if the current DTV
isn't big enough.  Tested on X86-64, x32 and ia32.

	[BZ #13862]
	* elf/dl-tls.c: Include <atomic.h>.
	(oom): Remove #ifdef SHARED/#endif.
	(_dl_static_dtv, _dl_initial_dtv): Moved before ...
	(_dl_resize_dtv): This.  Extracted from _dl_update_slotinfo.
	(_dl_allocate_tls_init): Resize DTV if the current DTV isn't
	big enough.
	(_dl_update_slotinfo): Call _dl_resize_dtv to resize DTV.
	* nptl/Makefile (tests): Add tst-stack4.
	(modules-names): Add tst-stack4mod.
	($(objpfx)tst-stack4): New.
	(tst-stack4mod.sos): Likewise.
	($(objpfx)tst-stack4.out): Likewise.
	($(tst-stack4mod.sos)): Likewise.
	(clean): Likewise.
	* nptl/tst-stack4.c: New file.
	* nptl/tst-stack4mod.c: Likewise.
2014-11-28 07:57:40 -08:00
Roland McGrath
cbd463e2cf Test that pthread_create diagnoses invalid scheduling parameters. 2014-11-19 17:28:31 -08:00
Siddhesh Poyarekar
dd763fdb1e Remove NOT_IN_libc definition for pthread_atfork
pthread_atfork is already built in an extra-libs context, which gives
it NOT_IN_libc in its CPPFLAGS.  Adding the same definition to CFLAGS
is pointless.

Verified that the code is unchanged on x86_64.
2014-08-21 10:30:55 +05:30
Florian Weimer
771eb1415f nptl: Fix abort in case of set*id failure [BZ #17135]
If a call to the set*id functions fails in a multi-threaded program,
the abort introduced in commit 13f7fe35ae
was triggered.

We address by checking that all calls to set*id on all threads give
the same result, and only abort if we see success followed by failure
(or vice versa).
2014-07-11 12:30:53 +02:00
Roland McGrath
08192659bb Get rid of nptl/sysdeps/ entirely! 2014-07-07 09:28:38 -07:00
Joseph Myers
8540f6d2a7 Don't require test wrappers to preserve environment variables, use more consistent environment.
One wart in the original support for test wrappers for cross testing,
as noted in
<https://sourceware.org/ml/libc-alpha/2012-10/msg00722.html>, is the
requirement for test wrappers to pass a poorly-defined set of
environment variables from the build system to the system running the
glibc under test.  Although some variables are passed explicitly via
$(test-wrapper-env), including LD_* variables that simply can't be
passed implicitly because of the side effects they'd have on the build
system's dynamic linker, others are passed implicitly, including
variables such as GCONV_PATH and LOCPATH that could potentially affect
the build system's libc (so effectively relying on any such effects
not breaking the wrappers).  In addition, the code in
cross-test-ssh.sh for preserving environment variables is fragile (it
depends on how bash formats a list of exported variables, and could
well break for multi-line variable definitions where the contents
contain things looking like other variable definitions).

This patch moves to explicitly passing environment variables via
$(test-wrapper-env).  Makefile variables that previously used
$(test-wrapper) are split up into -before-env and -after-env parts
that can be passed separately to the various .sh files used in
testing, so those files can then insert environment settings between
the two parts.

The common default environment settings in make-test-out are made into
a separate makefile variable that can also be passed to scripts,
rather than many scripts duplicating those settings (for testing an
installed glibc, it is desirable to have the GCONV_PATH setting on
just one place, so just that one place needs to support it pointing to
an installed sysroot instead of the build tree).  The default settings
are included in the variables such as $(test-program-prefix), so that
if tests do not need any non-default settings they can continue to use
single variables rather than the split-up variables.

Although this patch cleans up LC_ALL=C settings (that being part of
the common defaults), various LANG=C and LANGUAGE=C settings remain.
Those are generally unnecessary and I propose a subsequent cleanup to
remove them.  LC_ALL takes precedence over LANG, and while LANGUAGE
takes precedence over LC_ALL, it only does so for settings other than
LC_ALL=C.  So LC_ALL=C on its own is sufficient to ensure the C
locale, and anything that gets LC_ALL=C does not need the other
settings.

While preparing this patch I noticed some tests with .sh files that
appeared to do nothing beyond what the generic makefile support for
tests can do (localedata/tst-wctype.sh - the makefiles support -ENV
variables and .input files - and localedata/tst-mbswcs.sh - just runs
five tests that could be run individually from the makefile).  So I
propose another subsequent cleanup to move those to using the generic
support instead of special .sh files.

Tested x86_64 (native) and powerpc32 (cross).

	* Makeconfig (run-program-env): New variable.
	(run-program-prefix-before-env): Likewise.
	(run-program-prefix-after-env): Likewise.
	(run-program-prefix): Define in terms of new variables.
	(built-program-cmd-before-env): New variable.
	(built-program-cmd-after-env): Likewise.
	(built-program-cmd): Define in terms of new variables.
	(test-program-prefix-before-env): New variable.
	(test-program-prefix-after-env): Likewise.
	(test-program-prefix): Define in terms of new variables.
	(test-program-cmd-before-env): New variable.
	(test-program-cmd-after-env): Likewise.
	(test-program-cmd): Define in terms of new variables.
	* Rules (make-test-out): Use $(run-program-env).
	* scripts/cross-test-ssh.sh (env_blacklist): Remove variable.
	(help): Do not mention environment variables.  Mention
	--timeoutfactor option.
	(timeoutfactor): New variable.
	(blacklist_exports): Remove function.
	(exports): Remove variable.
	(command): Do not include ${exports}.
	* manual/install.texi (Configuring and compiling): Do not mention
	test wrappers preserving environment variables.  Mention that last
	assignment to a variable must take precedence.
	* INSTALL: Regenerated.
	* benchtests/Makefile (run-bench): Use $(run-program-env).
	* catgets/Makefile ($(objpfx)test1.cat): Use
	$(built-program-cmd-before-env), $(run-program-env) and
	$(built-program-cmd-after-env).
	($(objpfx)test2.cat): Do not specify environment variables
	explicitly.
	($(objpfx)de/libc.cat): Use $(built-program-cmd-before-env),
	$(run-program-env) and $(built-program-cmd-after-env).
	($(objpfx)test-gencat.out): Use $(test-program-cmd-before-env),
	$(run-program-env) and $(test-program-cmd-after-env).
	($(objpfx)sample.SJIS.cat): Do not specify environment variables
	explicitly.
	* catgets/test-gencat.sh: Use test_program_cmd_before_env,
	run_program_env and test_program_cmd_after_env arguments.
	* elf/Makefile ($(objpfx)tst-pathopt.out): Use $(run-program-env).
	* elf/tst-pathopt.sh: Use run_program_env argument.
	* iconvdata/Makefile ($(objpfx)iconv-test.out): Use
	$(test-wrapper-env) and $(run-program-env).
	* iconvdata/run-iconv-test.sh: Use test_wrapper_env and
	run_program_env arguments.
	* iconvdata/tst-table.sh: Do not set GCONV_PATH explicitly.
	* intl/Makefile ($(objpfx)tst-gettext.out): Use
	$(test-program-prefix-before-env), $(run-program-env) and
	$(test-program-prefix-after-env).
	($(objpfx)tst-gettext2.out): Likewise.
	* intl/tst-gettext.sh: Use test_program_prefix_before_env,
	run_program_env and test_program_prefix_after_env arguments.
	* intl/tst-gettext2.sh: Likewise.
	* intl/tst-gettext4.sh: Do not set environment variables
	explicitly.
	* intl/tst-gettext6.sh: Likewise.
	* intl/tst-translit.sh: Likewise.
	* malloc/Makefile ($(objpfx)tst-mtrace.out): Use
	$(test-program-prefix-before-env), $(run-program-env) and
	$(test-program-prefix-after-env).
	* malloc/tst-mtrace.sh: Use test_program_prefix_before_env,
	run_program_env and test_program_prefix_after_env arguments.
	* math/Makefile (run-regen-ulps): Use $(run-program-env).
	* nptl/Makefile ($(objpfx)tst-tls6.out): Use $(run-program-env).
	* nptl/tst-tls6.sh: Use run_program_env argument.  Set LANG=C
	explicitly with each use of ${test_wrapper_env}.
	* posix/Makefile ($(objpfx)wordexp-tst.out): Use
	$(test-program-prefix-before-env), $(run-program-env) and
	$(test-program-prefix-after-env).
	* posix/tst-getconf.sh: Do not set environment variables
	explicitly.
	* posix/wordexp-tst.sh: Use test_program_prefix_before_env,
	run_program_env and test_program_prefix_after_env arguments.
	* stdio-common/tst-printf.sh: Do not set environment variables
	explicitly.
	* stdlib/Makefile ($(objpfx)tst-fmtmsg.out): Use
	$(test-program-prefix-before-env), $(run-program-env) and
	$(test-program-prefix-after-env).
	* stdlib/tst-fmtmsg.sh: Use test_program_prefix_before_env,
	run_program_env and test_program_prefix_after_env arguments.
	Split $test calls into $test_pre and $test.
	* timezone/Makefile (build-testdata): Use
	$(built-program-cmd-before-env), $(run-program-env) and
	$(built-program-cmd-after-env).

localedata/ChangeLog:
	* Makefile ($(addprefix $(objpfx),$(CTYPE_FILES))): Use
	$(built-program-cmd-before-env), $(run-program-env) and
	$(built-program-cmd-after-env).
	($(objpfx)sort-test.out): Use $(test-program-prefix-before-env),
	$(run-program-env) and $(test-program-prefix-after-env).
	($(objpfx)tst-fmon.out): Use $(run-program-prefix-before-env),
	$(run-program-env) and $(run-program-prefix-after-env).
	($(objpfx)tst-locale.out): Use $(built-program-cmd-before-env),
	$(run-program-env) and $(built-program-cmd-after-env).
	($(objpfx)tst-trans.out): Use $(run-program-prefix-before-env),
	$(run-program-env), $(run-program-prefix-after-env),
	$(test-program-prefix-before-env) and
	$(test-program-prefix-after-env).
	($(objpfx)tst-ctype.out): Use $(test-program-cmd-before-env),
	$(run-program-env) and $(test-program-cmd-after-env).
	($(objpfx)tst-wctype.out): Likewise.
	($(objpfx)tst-langinfo.out): Likewise.
	($(objpfx)tst-langinfo-static.out): Likewise.
	* gen-locale.sh: Use localedef_before_env, run_program_env and
	localedef_after_env arguments.
	* sort-test.sh: Use test_program_prefix_before_env,
	run_program_env and test_program_prefix_after_env arguments.
	* tst-ctype.sh: Use tst_ctype_before_env, run_program_env and
	tst_ctype_after_env arguments.
	* tst-fmon.sh: Use run_program_prefix_before_env, run_program_env
	and run_program_prefix_after_env arguments.
	* tst-langinfo.sh: Use tst_langinfo_before_env, run_program_env
	and tst_langinfo_after_env arguments.
	* tst-locale.sh: Use localedef_before_env, run_program_env and
	localedef_after_env arguments.
	* tst-mbswcs.sh: Do not set environment variables explicitly.
	* tst-numeric.sh: Likewise.
	* tst-rpmatch.sh: Likewise.
	* tst-trans.sh: Use run_program_prefix_before_env,
	run_program_env, run_program_prefix_after_env,
	test_program_prefix_before_env and test_program_prefix_after_env
	arguments.
	* tst-wctype.sh: Use tst_wctype_before_env, run_program_env and
	tst_wctype_after_env arguments.
2014-06-06 22:19:27 +00:00
Guo Yixuan
196939fb0e New test for pthread_spin_lock (bug 16882)
* nptl/tst-spin4.c: New test.
	* nptl/Makefile (tests): Add tst-spin4.
2014-06-03 16:10:48 -07:00
Joseph Myers
79520f4bd6 Use existing makefile variables for dependencies on glibc libraries.
glibc's Makeconfig defines some variables such as $(libm) and $(libdl)
for linking with libraries built by glibc, and nptl/Makeconfig
(included by the toplevel Makeconfig) defines others such as
$(shared-thread-library).

In some places glibc's Makefiles use those variables when linking
against the relevant libraries, but in other places they hardcode the
location of the libraries in the build tree.  This patch cleans up
various places to use the variables that already exist (in the case of
libm, replacing several duplicate definitions of a $(link-libm)
variable in subdirectory Makefiles).  (It's not necessarily exactly
equivalent to what the existing code does - in particular,
$(shared-thread-library) includes libpthread_nonshared, but is
replacing places that just referred to libpthread.so.  But I think
that change is desirable on the general principle of linking things as
close as possible to the way in which they would be linked with an
installed library, unless there is a clear reason not to do so.)

To support running tests with an installed copy of glibc without
needing the full build tree from when that copy was built, I think it
will be useful to use such variables more generally and systematically
- every time the rules for building a test refer to some file from the
build tree that's also installed by glibc, use a makefile variable so
that the installed-testing case can point those variables to installed
copies of the files.  This patch just deals with straightforward cases
where such variables already exist.

It's quite possible some uses of $(shared-thread-library) should
actually be a new $(thread-library) variable that's set appropriately
in the --disable-shared case, if those uses would in fact work without
shared libraries.  I didn't change the status quo that those cases
hardcode use of a shared library whether or not it's actually needed
(but other uses such as $(libm) and $(libdl) would now get the static
library if the shared library isn't built, when some previously
hardcoded use of the shared library - if they actually need shared
libraries, the test itself needs an enable-shared conditional anyway).

Tested x86_64.

	* benchtests/Makefile
	($(addprefix $(objpfx)bench-,$(bench-math))): Depend on $(libm),
	not $(common-objpfx)math/libm.so.
	($(addprefix $(objpfx)bench-,$(bench-pthread))): Depend on
	$(shared-thread-library), not $(common-objpfx)nptl/libpthread.so.
	* elf/Makefile ($(objpfx)noload): Depend on $(libdl), not
	$(common-objpfx)dlfcn/libdl.so.
	($(objpfx)tst-audit8): Depend on $(libm), not
	$(common-objpfx)math/libm.so.
	* malloc/Makefile ($(objpfx)libmemusage.so): Depend on $(libdl),
	not $(common-objpfx)dlfcn/libdl.so.
	* math/Makefile
	($(addprefix $(objpfx),$(filter-out $(tests-static),$(tests)))):
	Depend on $(libm), not $(objpfx)libm.so.  Do not condition on
	[$(build-shared) = yes].
	($(objpfx)test-fenv-tls): Depend on $(shared-thread-library), not
	$(common-objpfx)nptl/libpthread.so.
	* misc/Makefile ($(objpfx)tst-tsearch): Depend on $(libm), not
	$(common-objpfx)math/libm.so$(libm.so-version) or
	$(common-objpfx)math/libm.a depending on [$(build-shared) = yes].
	* nptl/Makefile ($(objpfx)tst-unload): Depend on $(libdl), not
	$(common-objpfx)dlfcn/libdl.so.
	* setjmp/Makefile (link-libm): Remove variable.
	($(objpfx)tst-setjmp-fp): Depend on $(libm), not $(link-libm).
	* stdio-common/Makefile (link-libm): Remove variable.
	($(objpfx)tst-printf-round): Depend on $(libm), not $(link-libm).
	* stdlib/Makefile (link-libm): Remove variable.
	($(objpfx)bug-getcontext): Depend on $(libm), not $(link-libm).
	($(objpfx)tst-strtod-round): Likewise.
	($(objpfx)tst-tininess): Likewise.
	($(objpfx)tst-strtod-underflow): Likewise.
	($(objpfx)tst-strtod6): Likewise.
	($(objpfx)tst-tls-atexit): Depend on $(shared-thread-library) and
	$(libdl), not $(common-objpfx)nptl/libpthread.so and
	$(common-objpfx)dlfcn/libdl.so.
2014-05-16 21:38:08 +00:00
Florian Weimer
13f7fe35ae Check for syscall error in the SETXID implementation in NPTL (bug 13347).
At this point, we can only abort the process because we have already
switched credentials on other threads.  Returning an error would still
leave the process in an inconsistent state.

The new xtest needs root privileges to run.
2014-04-01 10:29:56 +02:00
Joseph Myers
0b20a9e89f Make tests consistently use *.out output files.
This patch systematically renames miscellaneous tests so their outputs
use a *.out name (unless the test is just running some glibc program
with its conventional output file name, rather than a special program
at all, as in catgets tests generating *.cat).  In the case of the
iconv test test-iconvconfig, output is redirected where it wasn't
before.

In various places the "generated" variable is updated to reflect the
revised test names; in iconvdata/Makefile a typo (mmtrace-tst-loading)
is also fixed.  resolv/Makefile sets both "generate" (which appears
unused) and "generated".  Bitrot in the settings of these variables
could no doubt be fixed so that "make clean" after build and testing
leaves results the same as after configure (and indeed the
tests-special / xtests-special variables could be used to simplify
things, by removing those files automatically rather than listing them
manually in these variables), and "make distclean" leaves an empty
build directory, but right now it appears various files don't get
deleted.  I think they are liable to continue to bitrot in the absence
of routine testing that these targets actually work, given that
building in the source directory isn't supported and that was the main
use of such makefile targets.

Tested x86_64.

	* elf/Makefile (tests-special): Rename tests to end with .out.
	($(objpfx)noload-mem): Likewise.
	($(objpfx)tst-leaks1-mem): Likewise.
	($(objpfx)tst-leaks1-static-mem.out): Likewise.
	* iconv/Makefile (xtests-special): Change test-iconvconfig to
	$(objpfx)test-iconvconfig.out.
	(test-iconvconfig): Change to $(objpfx)test-iconvconfig.out.  Use
	set -e inside subshell and redirect output to file.
	* iconvdata/Makefile (generated): Rename tests to end with .out.
	Correct type.
	(tests-special): Rename tests to end with .out.
	($(objpfx)mtrace-tst-loading): Likewise.
	* intl/Makefile (generated): Likewise.
	(tests-special): Likewise.
	($(objpfx)mtrace-tst-gettext): Likewise.
	* misc/Makefile (generated): Likewise.
	(tests-special): Likewise.
	($(objpfx)tst-error1-mem): Likewise.
	* nptl/Makefile (tests-special): Likewise.
	($(objpfx)tst-stack3-mem): Likewise.
	(generated): Likewise.
	* posix/Makefile (generated): Likewise.
	(tests-special): Likewise.
	(xtests-special): Likewise.
	($(objpfx)tst-fnmatch-mem): Likewise.
	($(objpfx)bug-regex2-mem): Likewise.
	($(objpfx)bug-regex14-mem): Likewise.
	($(objpfx)bug-regex21-mem): Likewise.
	($(objpfx)bug-regex31-mem): Likewise.
	($(objpfx)tst-vfork3-mem): Likewise.
	($(objpfx)tst-rxspencer-no-utf8-mem): Likewise.
	($(objpfx)tst-pcre-mem): Likewise.
	($(objpfx)tst-boost-mem): Likewise.
	($(objpfx)bug-ga2-mem): Likewise.
	($(objpfx)bug-glob2-mem): Likewise.
	* resolv/Makefile (generate): Likewise.
	(tests-special): Likewise.
	(xtests-special): Likewise.
	(generated): Likewise.
	($(objpfx)mtrace-tst-leaks): Likewise.
	($(objpfx)mtrace-tst-leaks2): Likewise.

localedata:
	* Makefile (generated): Rename tests to end with .out.
	(tests-special): Likewise.
	($(objpfx)mtrace-tst-leaks): Likewise.
2014-03-07 03:29:23 +00:00
Joseph Myers
f214606a0e Enumerate tests with special rules in tests-special variable.
This patch is a revised and updated version of
<https://sourceware.org/ml/libc-alpha/2014-01/msg00196.html>.

In order to generate overall summaries of the results of all tests in
the glibc testsuite, we need to identify and concatenate the files
with the results of individual tests.

Tomas Dohnalek's patch used $(common-objpfx)*/*.test-result for this.
However, the normal glibc approach is explicit enumeration of the
expected set of files with a given property, rather than all files
matching some pattern like that.  Furthermore, we would like to be
able to mark tests as UNRESOLVED if the file with their results is for
some reason missing, and in future we would like to be able to mark
tests as UNSUPPORTED if they are disabled for a particular
configuration (rather than simply having them missing from the list of
tests as at present).  Such handling of tests that were not run or did
not record results requires an explicit enumeration of tests.

For the tests following the default makefile rules, $(tests) (and
$(xtests)) provides such an enumeration.  Others, however, are added
directly as dependencies of the "tests" and "xtests" makefile
targets.  This patch changes the makefiles to put them in variables
tests-special and xtests-special, with appropriate dependencies on the
tests listed there then being added centrally.

Those variables are used in Rules and so need to be set before Rules
is included in a subdirectory makefile, which is often earlier in the
makefile than the dependencies were present before.  We previously
discussed the question of where to include Rules; see the question at
<https://sourceware.org/ml/libc-alpha/2012-11/msg00798.html>, and a
discussion in
<https://sourceware.org/ml/libc-alpha/2013-01/msg00337.html> of why
Rules is included early rather than late in subdirectory makefiles.

It was necessary to avoid an indirection through the check-abi target
and get the check-abi-* targets for individual libraries into the
tests-special variable.  The intl/ test $(objpfx)tst-gettext.out,
previously built only because of dependencies from other tests, was
also added to tests-special for the same reason.

The entries in tests-special are the full makefile targets, complete
with $(objpfx) and .out.  If a future change causes tests to be named
consistently with a .out suffix, this can be changed to include just
the path relative to $(objpfx), without .out.

Tested x86_64, including that the same set of files is generated in
the build directory by a build and testsuite run both before and after
the patch (except for changes to the
elf/tst-null-argv.debug.out.<number> file name), and a build with
run-built-tests=no to verify there aren't any more obvious instances
of the issue Marcus Shawcroft reported with a previous version in
<https://sourceware.org/ml/libc-alpha/2014-01/msg00462.html>.

	* Makefile (tests): Change dependencies to ....
	(tests-special): ... additions to this variable.
	(tests): Depend on $(tests-special).
	* Makerules (check-abi-list): New variable.
	(check-abi): Depend on $(check-abi-list).
	[$(subdir) = elf] (tests-special): Add
	$(objpfx)check-abi-libc.out.
	[$(build-shared) = yes && subdir] (tests-special): Add
	$(check-abi-list).
	[$(build-shared) = yes && subdir] (tests): Do not depend on
	check-abi.
	* Rules (tests): Depend on $(tests-special).
	(xtests): Depend on $(xtests-special).
	* catgets/Makefile (tests): Change dependencies to ....
	(tests-special): ... additions to this variable.
	* conform/Makefile (tests): Change dependencies to ....
	(tests-special): ... additions to this variable.
	* elf/Makefile (tests): Change dependencies to ....
	(tests-special): ... additions to this variable.
	* grp/Makefile (tests): Change dependencies to ....
	(tests-special): ... additions to this variable.
	* iconv/Makefile (xtests): Change dependencies to ....
	(xtests-special): ... additions to this variable.
	* iconvdata/Makefile (tests): Change dependencies to ....
	(tests-special): ... additions to this variable.
	* intl/Makefile (tests): Change dependencies to ....
	(tests-special): ... additions to this variable.  Also add
	$(objpfx)tst-gettext.out.
	* io/Makefile (tests): Change dependencies to ....
	(tests-special): ... additions to this variable.
	* libio/Makefile (tests): Change dependencies to ....
	(tests-special): ... additions to this variable.
	* malloc/Makefile (tests): Change dependencies to ....
	(tests-special): ... additions to this variable.
	* misc/Makefile (tests): Change dependencies to ....
	(tests-special): ... additions to this variable.
	* nptl/Makefile (tests): Change dependencies to ....
	(tests-special): ... additions to this variable.
	* nptl_db/Makefile (tests): Change dependencies to ....
	(tests-special): ... additions to this variable.
	* posix/Makefile (tests): Change dependencies to ....
	(tests-special): ... additions to this variable.
	(xtests): Change dependencies to ....
	(xtests-special): ... additions to this variable.
	* resolv/Makefile (tests): Change dependencies to ....
	(tests-special): ... additions to this variable.
	(xtests): Change dependencies to ....
	(xtests-special): ... additions to this variable.
	* stdio-common/Makefile (tests): Change dependencies to ....
	(tests-special): ... additions to this variable.
	(do-tst-unbputc): Remove target.
	(do-tst-printf): Likewise.
	* stdlib/Makefile (tests): Change dependencies to ....
	(tests-special): ... additions to this variable.
	* string/Makefile (tests): Change dependencies to ....
	(tests-special): ... additions to this variable.
	* sysdeps/x86/Makefile (tests): Change dependencies to ....
	(tests-special): ... additions to this variable.

localedata:
	* Makefile (tests): Change dependencies to ....
	(tests-special): ... additions to this variable.
2014-03-06 22:35:33 +00:00
Roland McGrath
f08e9a2629 Fix fallout from Joseph's untested Makeconfig change. 2014-02-28 13:00:27 -08:00
Joseph Myers
a5f891ac8d Consistently include Makeconfig after defining subdir.
In <https://sourceware.org/ml/libc-alpha/2014-01/msg00196.html> I
noted it was necessary to add includes of Makeconfig early in various
subdirectory makefiles for the tests-special variable settings added
by that patch to be conditional on configuration information.  No-one
commented on the general question there of whether Makeconfig should
always be included immediately after the definition of subdir.

This patch implements that early inclusion of Makeconfig in each
directory (which is a lot easier than consistent placement of includes
of Rules).  Includes are added if needed, or moved up if already
present.  Subdirectory "all:" targets are removed, since Makeconfig
provides one.

There is potential for further cleanups I haven't done.  Rules and
Makerules have code such as

ifneq   "$(findstring env,$(origin headers))" ""
headers :=
endif

to override to empty any value of various variables that came from the
environment.  I think there is a case for Makeconfig setting all the
subdirectory variables (other than subdir) to empty to ensure no
outside value is going to take effect if a subdirectory fails to
define a variable.  (A list of such variables, possibly out of date
and incomplete, is in manual/maint.texi.)  Rules and Makerules would
give errors if Makeconfig hadn't already been included, instead of
including it themselves.  The special code to override values coming
from the environment would then be obsolete and could be removed.

Tested x86_64, including that installed binaries are identical before
and after the patch.

	* argp/Makefile: Include Makeconfig immediately after defining
	subdir.
	* assert/Makefile: Likewise.
	* benchtests/Makefile: Likewise.
	* catgets/Makefile: Likewise.
	* conform/Makefile: Likewise.
	* crypt/Makefile: Likewise.
	* csu/Makefile: Likewise.
	(all): Remove target.
	* ctype/Makefile: Include Makeconfig immediately after defining
	subdir.
	* debug/Makefile: Likewise.
	* dirent/Makefile: Likewise.
	* dlfcn/Makefile: Likewise.
	* gmon/Makefile: Likewise.
	* gnulib/Makefile: Likewise.
	* grp/Makefile: Likewise.
	* gshadow/Makefile: Likewise.
	* hesiod/Makefile: Likewise.
	* hurd/Makefile: Likewise.
	(all): Remove target.
	* iconvdata/Makefile: Include Makeconfig immediately after
	defining subdir.
	* inet/Makefile: Likewise.
	* intl/Makefile: Likewise.
	* io/Makefile: Likewise.
	* libio/Makefile: Likewise.
	(all): Remove target.
	* locale/Makefile: Include Makeconfig immediately after defining
	subdir.
	* login/Makefile: Likewise.
	* mach/Makefile: Likewise.
	(all): Remove target.
	* malloc/Makefile: Include Makeconfig immediately after defining
	subdir.
	(all): Remove target.
	* manual/Makefile: Include Makeconfig immediately after defining
	subdir.
	* math/Makefile: Likewise.
	* misc/Makefile: Likewise.
	* nis/Makefile: Likewise.
	* nss/Makefile: Likewise.
	* po/Makefile: Likewise.
	(all): Remove target.
	* posix/Makefile: Include Makeconfig immediately after defining
	subdir.
	* pwd/Makefile: Likewise.
	* resolv/Makefile: Likewise.
	* resource/Makefile: Likewise.
	* rt/Makefile: Likewise.
	* setjmp/Makefile: Likewise.
	* shadow/Makefile: Likewise.
	* signal/Makefile: Likewise.
	* socket/Makefile: Likewise.
	* soft-fp/Makefile: Likewise.
	* stdio-common/Makefile: Likewise.
	* stdlib/Makefile: Likewise.
	* streams/Makefile: Likewise.
	* string/Makefile: Likewise.
	* sunrpc/Makefile: Likewise.
	(all): Remove target.
	* sysvipc/Makefile: Include Makeconfig immediately after defining
	subdir.
	* termios/Makefile: Likewise.
	* time/Makefile: Likewise.
	* timezone/Makefile: Likewise.
	(all): Remove target.
	* wcsmbs/Makefile: Include Makeconfig immediately after defining
	subdir.
	* wctype/Makefile: Likewise.

libidn/ChangeLog:
	* Makefile: Include Makeconfig immediately after defining subdir.

localedata/ChangeLog:
	* Makefile: Include Makeconfig immediately after defining subdir.
	(all): Remove target.

nptl/ChangeLog:
	* Makefile: Include Makeconfig immediately after defining subdir.

nptl_db/ChangeLog:
	* Makefile: Include Makeconfig immediately after defining subdir.
2014-02-26 23:12:03 +00:00
Joseph Myers
f0881698bf Generate .test-result files for tests with special rules.
This patch, an updated version of
<https://sourceware.org/ml/libc-alpha/2014-01/msg00194.html> now
proposed for inclusion in glibc, extends the generation of PASS and
FAIL status in .test-result files for individual tests to cover tests
with their own custom makefile rules.  This is just adding
$(evaluate-test) calls to all such rules, since tests with multiple
commands were previously split into separate tests.

Note that the tests the makefiles expect to fail (posix/annexc and
conformtest) currently get FAIL listed in the .test-result file,
rather than XFAIL; a subsequent patch will introduce a better XFAIL
mechanism.

Tested x86_64.

	* Makefile ($(objpfx)c++-types-check.out): Use $(evaluate-test).
	($(objpfx)check-local-headers.out): Likewise.
	($(objpfx)begin-end-check.out): Likewise.
	* Makerules (check-abi-%.out): Likewise.
	* catgets/Makefile ($(objpfx)test1.cat): Likewise.
	($(objpfx)test2.cat): Likewise.
	($(objpfx)de/libc.cat): Likewise.
	($(objpfx)test-gencat.out): Likewise.
	* conform/Makefile ($(objpfx)run-conformtest.out): Likewise.
	* elf/Makefile ($(objpfx)order-cmp.out): Likewise.
	($(objpfx)noload-mem): Likewise.
	($(objpfx)tst-pathopt.out): Likewise.
	($(objpfx)tst-rtld-load-self.out): Likewise.
	($(objpfx)tst-array1-cmp.out): Likewise.
	($(objpfx)tst-array1-static-cmp.out): Likewise.
	($(objpfx)tst-array2-cmp.out): Likewise.
	($(objpfx)tst-array3-cmp.out): Likewise.
	($(objpfx)tst-array4-cmp.out): Likewise.
	($(objpfx)tst-array5-cmp.out): Likewise.
	($(objpfx)tst-array5-static-cmp.out): Likewise.
	($(objpfx)check-textrel.out): Likewise.
	($(objpfx)check-execstack.out): Likewise.
	($(objpfx)check-localplt.out): Likewise.
	($(objpfx)order2-cmp.out): Likewise.
	($(objpfx)tst-leaks1-mem): Likewise.
	($(objpfx)tst-leaks1-static-mem): Likewise.
	($(objpfx)tst-initorder-cmp.out): Likewise.
	($(objpfx)tst-initorder2-cmp.out): Likewise.
	($(objpfx)tst-unused-dep.out): Likewise.
	($(objpfx)tst-unused-dep-cmp.out): Likewise.
	* grp/Makefile ($(objpfx)tst_fgetgrent.out): Likewise.
	* iconv/Makefile (test-iconvconfig): Likewise.
	* iconvdata/Makefile ($(objpfx)mtrace-tst-loading): Likewise.
	($(objpfx)iconv-test.out): Likewise.
	($(objpfx)tst-tables.out): Likewise.
	* intl/Makefile ($(objpfx)mtrace-tst-gettext): Likewise.
	($(objpfx)tst-gettext.out): Likewise.
	($(objpfx)tst-translit.out): Likewise.
	($(objpfx)tst-gettext2.out): Likewise.
	($(objpfx)tst-gettext4.out): Likewise.
	($(objpfx)tst-gettext6.out): Likewise.
	* io/Makefile ($(objpfx)ftwtest.out): Likewise.
	* libio/Makefile ($(objpfx)test-freopen.out): Likewise.
	($(objpfx)tst-fopenloc-cmp.out): Likewise.
	($(objpfx)tst-fopenloc-mem.out): Likewise.
	* malloc/Makefile ($(objpfx)tst-mtrace.out): Likewise.
	* misc/Makefile ($(objpfx)tst-error1-mem): Likewise.
	* posix/Makefile ($(objpfx)globtest.out): Likewise.
	($(objpfx)wordexp-tst.out): Likewise.
	($(objpfx)annexc.out): Likewise.
	($(objpfx)tst-fnmatch-mem): Likewise.
	($(objpfx)bug-regex2-mem): Likewise.
	($(objpfx)bug-regex14-mem): Likewise.
	($(objpfx)bug-regex21-mem): Likewise.
	($(objpfx)bug-regex31-mem): Likewise.
	($(objpfx)tst-vfork3-mem): Likewise.
	($(objpfx)tst-rxspencer-no-utf8-mem): Likewise.
	($(objpfx)tst-pcre-mem): Likewise.
	($(objpfx)tst-boost-mem): Likewise.
	($(objpfx)tst-getconf.out): Likewise.
	($(objpfx)bug-ga2-mem): Likewise.
	($(objpfx)bug-glob2-mem): Likewise.
	* resolv/Makefile ($(objpfx)mtrace-tst-leaks): Likewise.
	($(objpfx)mtrace-tst-leaks2): Likewise.
	* stdio-common/Makefile ($(objpfx)tst-unbputc.out): Likewise.
	($(objpfx)tst-printf.out): Likewise.
	($(objpfx)tst-setvbuf1.out): Likewise.
	($(objpfx)tst-setvbuf1-cmp.out): Likewise.
	* stdlib/Makefile ($(objpfx)isomac.out): Likewise.
	($(objpfx)tst-fmtmsg.out): Likewise.
	* string/Makefile ($(objpfx)tst-svc-cmp.out): Likewise.
	* sysdeps/x86/Makefile ($(objpfx)tst-xmmymm.out): Likewise.

localedata:
	* Makefile ($(objpfx)sort-test.out): Use $(evaluate-test).
	($(objpfx)tst-fmon.out): Likewise.
	($(objpfx)tst-numeric.out): Likewise.
	($(objpfx)tst-locale.out): Likewise.
	($(objpfx)tst-rpmatch.out): Likewise.
	($(objpfx)tst-trans.out): Likewise.
	($(objpfx)tst-mbswcs.out): Likewise.
	($(objpfx)tst-ctype.out): Likewise.
	($(objpfx)tst-wctype.out): Likewise.
	($(objpfx)tst-langinfo.out): Likewise.
	($(objpfx)mtrace-tst-leaks): Likewise.

nptl:
	* Makefile ($(objpfx)tst-stack3-mem): Use $(evaluate-test).
	($(objpfx)tst-tls6.out): Likewise.
	($(objpfx)tst-cleanup0.out): Likewise.
	($(objpfx)tst-cleanup0-cmp.out): Likewise.
	($(objpfx)tst-cancel-wrappers.out): Likewise.
	($(objpfx)tst-oddstacklimit.out): Likewise.

nptl_db:
	* Makefile ($(objpfx)db-symbols.out): Use
	$(evaluate-test).
2014-02-21 21:48:08 +00:00
Joseph Myers
6e89caf118 Split up rules for tests that compare output with baselines.
This patch splits makefile rules that generate a file then run cmp to
check the contents of that file into separate rules to generate and
compare the file.  This simplifies making those tests generate PASS /
FAIL results, by removing the need to insert && between commands in
the test so that a $(evaluate-test) call is reached.  It also avoids
the oddity of the .out file being an intermediate file rather than the
final result generated, as noted for some of these tests in
<https://sourceware.org/ml/libc-alpha/2012-10/msg00894.html>.

In many cases, the rule to run the program was no longer needed
because the default rules for running test programs on the host to
generate a .out file sufficed.  (I'm not asserting the commands run
after this patch are *exactly* the same as before, simply that the
rules did nothing special that appeared deliberate or relevant to
anything about what the tests were testing.  In cases where the rules
redirected stderr as well as stdout, I left the existing rule's
redirection in place to avoid changing what gets compared with the
expected results.)

It's clear there is a lot in common between the various -cmp.out rules
and it might be possible in future to refactor them into more generic
support for the case of comparing test output against a baseline.
(Some baselines are *.exp, some *.expect, some directly embedded in
the makefiles, and nptl/tst-cleanupx0.expect appears unused.)

Tested x86_64.

	* elf/Makefile ($(objpfx)order.out): Remove rule.
	[$(run-built-tests) = yes] (tests): Depend on
	$(objpfx)order-cmp.out.
	($(objpfx)order-cmp.out): New rule.
	[$(run-built-tests) = yes] (tests): Depend on
	$(objpfx)tst-array1-cmp.out, $(objpfx)tst-array1-static-cmp.out,
	$(objpfx)tst-array2-cmp.out, $(objpfx)tst-array3-cmp.out,
	$(objpfx)tst-array4-cmp.out, $(objpfx)tst-array5-cmp.out and
	$(objpfx)tst-array5-static-cmp.out.
	($(objpfx)tst-array1.out): Remove rule.
	($(objpfx)tst-array1-cmp.out): New rule.
	($(objpfx)tst-array1-static.out): Remove rule.
	($(objpfx)tst-array1-static-cmp.out): New rule.
	($(objpfx)tst-array2.out): Remove rule.
	($(objpfx)tst-array2-cmp.out): New rule.
	($(objpfx)tst-array3.out): Remove rule.
	($(objpfx)tst-array3-cmp.out): New rule.
	($(objpfx)tst-array4.out): Remove rule.
	($(objpfx)tst-array4-cmp.out): New rule.
	($(objpfx)tst-array5.out): Remove rule.
	($(objpfx)tst-array5-cmp.out): New rule.
	($(objpfx)tst-array5-static.out): Remove rule.
	($(objpfx)tst-array5-static-cmp.out): New rule.
	[$(run-built-tests) = yes] (tests): Depend on
	$(objpfx)order2-cmp.out.
	($(objpfx)order2.out): Remove rule.
	($(objpfx)order2-cmp.out): New rule.
	($(objpfx)tst-initorder.out): Remove rule.
	[$(run-built-tests) = yes] (tests): Depend on
	$(objpfx)tst-initorder-cmp.out.
	($(objpfx)tst-initorder-cmp.out): New rule.
	($(objpfx)tst-initorder2.out): Remove rule.
	[$(run-built-tests) = yes] (tests): Depend on
	$(objpfx)tst-initorder2-cmp.out.
	($(objpfx)tst-initorder2-cmp.out): New rule.
	[$(run-built-tests) = yes] (tests): Depend on
	$(objpfx)tst-unused-dep-cmp.out.
	($(objpfx)tst-unused-dep-cmp.out): Do not run cmp.
	($(objpfx)tst-unused-dep-cmp.out): New rule.
	* stdio-common/Makefile [$(run-built-tests) = yes] (tests): Depend
	on $(objpfx)tst-setvbuf1-cmp.out.
	($(objpfx)tst-setvbuf1.out): Do not run cmp.
	($(objpfx)tst-setvbuf1-cmp.out): New rule.
	* string/Makefile [$(run-built-tests) = yes] (tests): Depend
	$(objpfx)tst-svc-cmp.out instead of $(objpfx)tst-svc.out.
	($(objpfx)tst-svc.out): Remove rule.
	($(objpfx)tst-svc-cmp.out): New rule.

nptl:
	* Makefile ($(objpfx)tst-cleanup0.out): Do not run cmp.
	[$(run-built-tests) = yes] (tests): Depend on
	$(objpfx)tst-cleanup0-cmp.out.
	($(objpfx)tst-cleanup0-cmp.out): New rule.
2014-02-14 13:42:44 +00:00
Allan McRae
73d61e4f6c Revert "Async-signal safe TLS."
This reverts commit 7f507ee17a.

Conflicts:
	ChangeLog
	nptl/tst-tls7.c
	nptl/tst-tls7mod.c
2014-02-06 08:46:20 +10:00
Andrew Hunter
7f507ee17a Async-signal safe TLS.
ChangeLog:

2014-01-03  Andrew Hunter  <ahh@google.com>

	* elf/dl-open.c (): New comment.
	* elf/dl-reloc.c (_dl_try_allocate_static_tls): Use
	atomic_compare_and_exchange_bool_acq
	(_dl_allocate_static_tls): Block signals.
	* elf/dl-tls.c (allocate_and_init): Return void.
	(_dl_update_slotinfo): Block signals, use atomic update.

nptl/ChangeLog:

2014-01-03  Andrew Hunter  <ahh@google.com>

	* nptl/Makefile (tst-tls7): New test.
	* nptl/tst-tls7.c: New file.
	* nptl/tst-tls7mod.c: New file.
	* nptl/allocatestack.c (init_one_static_tls): Use atomic barrier.
2014-01-03 11:22:26 -08:00
Allan McRae
d4697bc93d Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
Paul Pluzhnikov
67ea2c9a69 Fix intermittent failure in tst-getpid2.
2013-11-25  Paul Pluzhnikov  <ppluzhnikov@google.com>

	[BZ #11214]
	* Makefile (tst-getpid2-ENV): New variable.
2013-11-25 11:38:01 -08:00
Paul Pluzhnikov
c8b82b81de Fix failure in tst-cleanup2 and tst-cleanupx2 with gcc-4.9
gcc (GCC) 4.9.0 20131114 (experimental)

2013-11-20  Paul Pluzhnikov  <ppluzhnikov@google.com

	* Makefile (tst-cleanup2, tst-cleanupx2): Add -fno-builtin
2013-11-20 10:25:57 -08:00
Siddhesh Poyarekar
61dd6208fb New API to set default thread attributes
This patch introduces two new convenience functions to set the default
thread attributes used for creating threads.  This allows a programmer
to set the default thread attributes just once in a process and then
run pthread_create without additional attributes.
2013-06-15 12:24:15 +05:30
Siddhesh Poyarekar
5865a56bf4 Avoid access beyond memory bounds in pthread_attr_getaffinity_np
Resolves BZ #15618.

pthread_attr_getaffinity_np may write beyond bounds of the input
cpuset buffer if the size of the input buffer is smaller than the
buffer present in the input pthread attributes.  Fix is to copy to the
extent of the minimum of the source and the destination.
2013-06-14 01:20:06 +05:30
Joseph Myers
fab7ce3f5b Link extra-libs consistently with libc and ld.so. 2013-05-31 16:16:33 +00:00
Carlos O'Donell
4e9b599577 Revert GLIBC_PTHREAD_DEFAULT_STACKSIZE changes.
This reverts the change that allows the POSIX Thread default stack size
to be changed by the environment variable
GLIBC_PTHREAD_DEFAULT_STACKSIZE. It has been requested that more
discussion happen before this change goes into 2.18.
2013-03-01 16:18:08 -05:00
Siddhesh Poyarekar
e23872c8db Set default stack size from program environment
New environment variable GLIBC_PTHREAD_DEFAULT_STACKSIZE to do this.
2013-03-01 14:15:39 +05:30
H.J. Lu
740b3dbee8 Add --enable-hardcoded-path-in-tests configure option 2013-01-11 07:14:18 -08:00
Joseph Myers
568035b787 Update copyright notices with scripts/update-copyrights. 2013-01-02 19:05:09 +00:00
Allan McRae
e30907c3a4 Remove unneeded linking in nptl testsuite 2012-12-03 13:56:07 +10:00
Marcus Shawcroft
c485e4d2cc Adding missing -fexception CFLAGS 2012-11-14 12:35:10 +00:00
Aurelien Jarno
a9879fee34 Fix nptl/tst-cancel7 for non-bash shells. 2012-10-30 16:32:26 +00:00
Joseph Myers
6a345e4261 Use bash to run nptl/tst-tls6.sh. 2012-10-25 21:59:14 +00:00
Joseph Myers
cc1290d07e Support cross-testing. 2012-10-24 21:59:01 +00:00
Roland McGrath
6e6249d0b4 BZ#14743: Move clock_* symbols from librt to libc. 2012-10-24 14:50:46 -07:00
Joseph Myers
0bf57f872c Don't set resource limits in tst-oddstacklimit-ENV. 2012-10-24 17:13:24 +00:00
Joseph Myers
03ac099f6b Define and use $(run-built-tests). 2012-10-24 00:08:46 +00:00
Jim Blandy
166bca2480 Add and use $(host-built-program-cmd). 2012-10-23 22:49:59 +00:00
Jim Blandy
aba759841b Use $(NM) not nm in tst-cancel-wrappers. 2012-10-21 22:38:34 +00:00
Siddhesh Poyarekar
0e3b5d6a68 Take lock in pthread_cond_wait cleanup handler only when needed
[BZ #14652]
When a thread waiting in pthread_cond_wait with a PI mutex is
cancelled after it has returned successfully from the futex syscall
but just before async cancellation is disabled, it enters its
cancellation handler with the mutex held and simply calling a
mutex_lock again will result in a deadlock.  Hence, it is necessary to
see if the thread owns the lock and try to lock it only if it doesn't.
2012-10-10 12:52:56 +05:30
H.J. Lu
1d1b34df90 Add test cases for BZ #14557 2012-10-05 10:23:58 -07:00
Siddhesh Poyarekar
c30e8edf7c Unlock mutex before going back to waiting for PI mutexes
[BZ #14417]
A futex call with FUTEX_WAIT_REQUEUE_PI returns with the mutex locked
on success.  If such a successful thread is pipped to the cond_lock by
another spuriously woken waiter, it could be sent back to wait on the
futex with the mutex lock held, thus causing a deadlock.  So it is
necessary that the thread relinquishes the mutex before going back to
sleep.
2012-10-05 18:52:36 +05:30
Siddhesh Poyarekar
55a051c985 Fix exception table for i386 pthread_cond_wait
[BZ #14477]
Add an additional entry in the exception table to jump to
__condvar_w_cleanup2 instead of __condvar_w_cleanup for PI mutexes
when %ebx contains the address of the futex instead of the condition
variable.
2012-10-01 23:21:39 +05:30
Dmitry V. Levin
57c69bef13 Set "fail on error" mode directly in testsuite shell scripts 2012-09-25 02:48:31 +00:00
H.J. Lu
e9ceaf254c Rename LDFLAGS-XXX to LDLIBS-XXX for -lstdc++ 2012-09-07 14:11:47 -07:00
H.J. Lu
f5fce0629a Add tst-cancel21-static.c 2012-09-06 11:50:21 -07:00
Joseph Myers
033d54a2d4 Fix sem_post race (bug 14532). 2012-08-31 19:49:31 +00:00
Roland McGrath
c75ccd4c3a Clean up definition of _LIBC_REENTRANT and _IO_MTSAFE_IO. 2012-08-17 09:35:15 -07:00
Siddhesh Poyarekar
18b5e737de Account for the extra stack size when rlimit is small enough
When rlimit is small enough to be used as the stacksize to be returned
in pthread_getattr_np, cases where a stack is made executable due to a
DSO load get stack size that is larger than what the kernel
allows. This is because in such a case the stack size does not account
for the pages that have auxv and program arguments.

Additionally, the stacksize for the process derived from this should
be truncated to align to page size to avoid going beyond rlimit.
2012-06-20 15:08:22 +05:30
Siddhesh Poyarekar
439bf404b8 Allow a single-threaded program to cancel itself
There is nothing in the POSIX specification to disallow a
single-threaded program from cancelling itself, so we forcibly enable
multiple_threads to allow the next available cancellation point in the
thread to run.

Also added additional tests to cover various cancellation scenarios.
2012-05-15 09:41:57 +05:30
Allan McRae
d4c2917fc5 Fix test-suite failues with -Wl,--as-needed
Signed-off-by: Allan McRae <allan@archlinux.org>
2012-05-02 20:32:50 -04:00
Andreas Schwab
6d5c57fabd Don't run tests when cross-compiling 2012-04-28 22:16:37 +02:00
Ulrich Drepper
a4300c7a4d Remove distribute variable from Makefiles 2012-03-07 05:17:13 -05:00
Joseph Myers
0e7dfaef51 Remove old initfini mechanism. 2012-02-21 00:46:01 +00:00
Paul Eggert
59ba27a63a Replace FSF snail mail address with URLs. 2012-02-09 23:18:22 +00:00
Andreas Schwab
2832840339 Add missing dependency for pt-crti.o 2012-02-08 16:16:42 +01:00
Joseph Myers
3add8e1353 Support crti.S and crtn.S provided directly by architectures. 2012-02-08 01:45:26 +00:00
Ulrich Drepper
2119dcfacc Static linking is always needed 2012-01-08 09:52:29 -05:00
Ulrich Drepper
0269750ca6 Remove non-ELF support 2012-01-07 20:30:26 -05:00
David S. Miller
e315850c08 Fix typo in tst-cleanup0.out rule. 2011-08-20 21:19:28 -07:00
Andreas Schwab
1f20b93a6c Fix missing dependencies and ensure correct CPPFLAGS. 2011-01-16 21:32:07 -05:00
Andreas Schwab
2983d85ee5 Work around kernel rejecting valid absolute timestamps 2010-07-01 19:07:14 -07:00
Ulrich Drepper
72b6e8c85b Fix build with newer linker. 2010-07-01 19:03:29 -07:00
Ulrich Drepper
86a4c67fb9 Implement interfaces to set and get names of threads.
At least the Linux kernel provides field where the kernel originally
stores the command which is executed by the thread.  The value can
subsequently be overwritten.  The added functions allow to do that for
threads, providing and abstraction around the syscalls or /proc file
system accesses needed.
2010-04-09 01:09:24 -07:00
Ulrich Drepper
80b3a4ea1c New NPTL POSIX semaphore test. 2009-11-24 16:37:29 -08:00
Ulrich Drepper
3d77b2687f Add more sem_timedwait tests. 2009-07-18 22:07:25 -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
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
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
0e54a7250f [BZ #7009] 2008-11-12 13:41:14 +00:00
Ulrich Drepper
10bb97c793 (tests): Add tst-rwlock2a. 2008-05-31 08:56:14 +00:00
Roland McGrath
363a641b1c * Makeconfig (sysd-rules-targets): New variable.
* sysdeps/unix/make-syscalls.sh: Use it in the rules emitted.
	* sysdeps/unix/Makefile (omit-deps): Append variants for each target.
2008-02-01 00:01:25 +00:00
Ulrich Drepper
f6ed654cab * sysdeps/x86_64/memset.S: Add sfence after movnti. 2007-11-08 01:07:04 +00:00
Ulrich Drepper
2a01ce56b7 [BZ #4938]
2007-08-21  Ulrich Drepper  <drepper@redhat.com>
	[BZ #4938]
	* allocatestack.c (__reclaim_stacks): Clear the TSD in the
	reclaimed stack if necessary.
	* Makefile (tests): Add tst-tsd6.
	* tst-tsd6.c: New file.
2007-08-21 23:55:36 +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
113ad5fc91 [BZ #4512]
* pthread_mutex_lock.c: Preserve FUTEX_WAITERS bit when dead owner
	is detected.
	* pthread_mutex_timedlock.c: Likewise.
	* pthread_mutex_trylock.c: Likewise.
	Patch in part by Atsushi Nemoto <anemo@mba.ocn.ne.jp>.

	* Makefile (tests): Add tst-robust9 and tst-robustpi9.
	* tst-robust9.c: New file.
	* tst-robustpi9.c: New file.
2007-05-18 00:55:10 +00:00
Ulrich Drepper
11bf311edc [BZ #2510, BZ #2830, BZ #3137, BZ #3313, BZ #3426, BZ #3465, BZ #3480, BZ #3483, BZ #3493, BZ #3514, BZ #3515, BZ #3664, BZ #3673, BZ #3674]
2007-01-11  Jakub Jelinek  <jakub@redhat.com>
	* sysdeps/i386/soft-fp/sfp-machine.h: Remove.
	* sysdeps/x86_64/soft-fp/sfp-machine.h: Likewise.
2007-01-10  Ulrich Drepper  <drepper@redhat.com>
	* io/fts.c: Make sure fts_cur is always valid after return from
	fts_read.
	Patch by Miloslav Trmac <mitr@redhat.com>.
2006-10-27  Richard Sandiford  <richard@codesourcery.com>
	* elf/elf.h (R_MIPS_GLOB_DAT): Define.
	(R_MIPS_NUM): Bump by 1.
2007-01-03  Jakub Jelinek  <jakub@redhat.com>
	* posix/execvp.c: Include alloca.h.
	(allocate_scripts_argv): Renamed to...
	(scripts_argv): ... this.  Don't allocate buffer here nor count
	arguments.
	(execvp): Use alloca if possible.
	* posix/Makefile: Add rules to build and run tst-vfork3 test.
	* posix/tst-vfork3.c: New test.
	* stdlib/Makefile (tst-strtod3-ENV): Define.
2007-01-02  Ulrich Drepper  <drepper@redhat.com>
	* posix/getconf.c: Update copyright year.
	* nss/getent.c: Likewise.
	* iconv/iconvconfig.c: Likewise.
	* iconv/iconv_prog.c: Likewise.
	* elf/ldconfig.c: Likewise.
	* catgets/gencat.c: Likewise.
	* csu/version.c: Likewise.
	* elf/ldd.bash.in: Likewise.
	* elf/sprof.c (print_version): Likewise.
	* locale/programs/locale.c: Likewise.
	* locale/programs/localedef.c: Likewise.
	* nscd/nscd.c (print_version): Likewise.
	* debug/xtrace.sh: Likewise.
	* malloc/memusage.sh: Likewise.
	* malloc/mtrace.pl: Likewise.
	* debug/catchsegv.sh: Likewise.
2006-12-24  Ulrich Drepper  <drepper@redhat.com>
	* malloc/malloc.c (sYSMALLOc): Remove some unnecessary alignment
	attempts.
2006-12-23  Ulrich Drepper  <drepper@redhat.com>
	* posix/wordexp.c: Remove some unnecessary tests.
2006-12-20  SUGIOKA Toshinobu  <sugioka@itonet.co.jp>

	* sysdeps/unix/sysv/linux/sh/bits/shm.h: New file.

	* nss/getXXbyYY_r.c: Include atomic.h.
	(INTERNAL (REENTRANT_NAME)): Write startp after start_fct,
	add atomic_write_barrier () in between.

2006-11-28  Jakub Jelinek  <jakub@redhat.com>
	* elf/dl-support.c: Include dl-procinfo.h.
	* sysdeps/powerpc/dl-procinfo.h (PPC_PLATFORM_POWER4,
	PPC_PLATFORM_PPC970, PPC_PLATFORM_POWER5, PPC_PLATFORM_POWER5_PLUS,
	PPC_PLATFORM_POWER6, PPC_PLATFORM_CELL_BE, PPC_PLATFORM_POWER6X):
	Define.
	(_dl_string_platform): Use PPC_PLATFORM_* macros instead of
	hardcoded constants.
	* sysdeps/powerpc/dl-procinfo.c (_dl_powerpc_platform): Use
	PPC_PLATFORM_* macros for array designators.
2006-11-11  Steven Munroe  <sjmunroe@us.ibm.com>
	* sysdeps/powerpc/dl-procinfo.c (_dl_powerpc_cap_flags): Add 3 new cap
	names to the beginning.
	(_dl_powerpc_platforms): Add "power6x".
	* sysdeps/powerpc/dl-procinfo.h (_DL_HWCAP_FIRST): Decrease.
	(HWCAP_IMPORTANT): Add PPC_FEATURE_HAS_DFP.
	(_DL_PLATFORMS_COUNT): Increase.
	(_dl_string_platform): Handle power6x case.
	* sysdeps/powerpc/sysdep.h (PPC_FEATURE_PA6T, PPC_FEATURE_HAS_DFP,
	PPC_FEATURE_POWER6_EXT): Define.
	(PPC_FEATURE_POWER5, PPC_FEATURE_POWER5_PLUS): Correct Comment.
	[-2^31 .. 2^31) range.
	* sysdeps/unix/sysv/linux/bits/statvfs.h: Define ST_RELATIME.
	* sysdeps/unix/sysv/linux/internal_statvfs.c (__statvfs_getflags):
	Handle relatime mount option.

2006-12-13  Jakub Jelinek  <jakub@redhat.com>
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext.S: Include
	kernel-features.h.

2006-12-11  Ulrich Drepper  <drepper@redhat.com>

	* stdlib/strtod_l.c (____STRTOF_INTERNAL): Parse thousand
	separators also if no non-zero digits found.
	* stdlib/Makefile (tests): Add tst-strtod3.
	[BZ #3664]
	* stdlib/strtod_l.c (____STRTOF_INTERNAL): Fix test to recognize
	empty parsed strings.
	* stdlib/Makefile (tests): Add tst-strtod2.
	* stdlib/tst-strtod2.c: New file.

	[BZ #3673]
	* stdlib/strtod_l.c (____STRTOF_INTERNAL): Fix exp_limit
	computation.
	* stdlib/Makefile (tests): Add tst-atof2.
	* stdlib/tst-atof2.c: New file.

	[BZ #3674]
	* stdlib/strtod_l.c (____STRTOF_INTERNAL): Adjust exponent value
	correctly if removing trailing zero of hex-float.
	* stdlib/Makefile (tests): Add tst-atof1.
	* stdlib/tst-atof1.c: New file.

	* misc/mntent_r.c (__hasmntopt): Check p[optlen] even when p == rest.
	Start searching for next comma at p rather than rest.
	* misc/Makefile (tests): Add tst-mntent2.
	* misc/tst-mntent2.c: New test.

2006-12-08  Ulrich Drepper  <drepper@redhat.com>
	* malloc/memusage.c: Handle realloc with new size of zero and
	non-NULL pointer correctly.
	(me): Really write first record twice.
	(struct entry): Make format bi-arch safe.
	(dest): Write out more realloc statistics.
	* malloc/memusagestat.c (struct entry): Make format bi-arch safe.
2006-12-05  Jakub Jelinek  <jakub@redhat.com>
	* nis/nis_subr.c (nis_getnames): Revert last change.
2006-12-03  Kaz Kojima  <kkojima@rr.iij4u.or.jp>
	* sysdeps/unix/sysv/linux/sh/sys/io.h: Removed.
2006-11-30  H.J. Lu  <hongjiu.lu@intel.com>
	* sysdeps/i386/i686/memcmp.S: Use jump table as the base of
	jump table entries.

2006-11-30  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* sysdeps/unix/sysv/linux/i386/clone.S: Provide CFI for the outermost
	`clone' function to ensure proper unwinding stop of gdb.
	* sysdeps/unix/sysv/linux/x86_64/clone.S: Likewise.

2006-12-01  Ulrich Drepper  <drepper@redhat.com>

	* nscd/nscd.init: Remove obsolete and commented-out -S option
	handling.

2006-11-23  Jakub Jelinek  <jakub@redhat.com>

	[BZ #3514]
	* manual/string.texi (strncmp): Fix pastos from wcscmp description.

	[BZ #3515]
	* manual/string.texi (strtok): Remove duplicate paragraph.

2006-12-01  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* sysdeps/unix/sysv/linux/x86_64/sigaction.c: Fix compatibility with
	libgcc not supporting `rflags' unwinding (register # >= 17).

2006-11-30  Jakub Jelinek  <jakub@redhat.com>

	* sunrpc/svc_run.c (svc_run): Set my_pollfd to new_pollfd if realloc
	succeeded.

2006-11-29  Daniel Jacobowitz  <dan@codesourcery.com>
	    Jakub Jelinek  <jakub@redhat.com>
	    Jan Kratochvil  <jan.kratochvil@redhat.com>

	* sysdeps/unix/sysv/linux/x86_64/sigaction.c (restore_rt): Add correct
	unwind information.
	* sysdeps/unix/sysv/linux/x86_64/Makefile: Provide symbols for
	'restore_rt' even in the 'signal' directory.
	* sysdeps/unix/sysv/linux/x86_64/ucontext_i.sym: Extend the regs list.
	malloc crashed.  Don't allocate memory unnecessarily in each
	loop.
2006-10-21  Jakub Jelinek  <jakub@redhat.com>
	* resolv/mapv4v6addr.h (map_v4v6_address): Fix last change.
2006-11-20  Ulrich Drepper  <drepper@redhat.com>
	* resolv/mapv4v6addr.h (map_v4v6_address): Optimize a bit.
2006-11-18  Bruno Haible  <bruno@clisp.org>
	* sysdeps/unix/sysv/linux/i386/getgroups.c (__getgroups): Invoke
	__sysconf only after having tried to call getgroups32.
2006-11-19  Ulrich Drepper  <drepper@redhat.com>
	* nss/nss_files/files-hosts.c (LINE_PARSER): Support IPv6-style
	addresses for IPv4 queries if they can be mapped.
2006-11-16  Jakub Jelinek  <jakub@redhat.com>
	* sysdeps/x86_64/fpu/s_copysignf.S (__copysignf): Switch to .text.
	* sysdeps/x86_64/fpu/s_copysign.S (__copysign): Likewise.
	(signmask): Add .size directive.
	(othermask): Add .type directive.
2006-11-14  Ulrich Drepper  <drepper@redhat.com>
	* po/nl.po: Update from translation team.
	* timezone/zdump.c: Redo fix for BZ #3137.
2006-11-14  Jakub Jelinek  <jakub@redhat.com>
	* nss/nss_files/files-alias.c (get_next_alias): Set line back
	to first_unused after parsing :include: file.
	* timezone/africa: Update from tzdata2006o.
	* timezone/antarctica: Likewise.
	* timezone/asia: Likewise.
	* timezone/australasia: Likewise.
	* timezone/backward: Likewise.
	* timezone/europe: Likewise.
	* timezone/iso3166.tab: Likewise.
	* timezone/northamerica: Likewise.
	* timezone/southamerica: Likewise.
	* timezone/zone.tab: Likewise.

	* time/tzfile.c (__tzfile_read): Extend to handle new file format
	on machines with 64-bit time_t.

	* timezone/checktab.awk: Update from tzcode2006o.
	* timezone/ialloc.c: Likewise.
	* timezone/private.h: Likewise.
	* timezone/scheck.c: Likewise.
	* timezone/tzfile.h: Likewise.
	* timezone/tzselect.ksh: Likewise.
	* timezone/zdump.c: Likewise.
	* timezone/zic.c: Likewise.

	[BZ #3483]
	* elf/ldconfig.c (main): Call setlocale and textdomain.
	Patch mostly by Benno Schulenberg <bensberg@justemail.net>.

	[BZ #3480]
	* manual/argp.texi: Fix typos.
	* manual/charset.texi: Likewise.
	* manual/errno.texi: Likewise.
	* manual/filesys.texi: Likewise.
	* manual/lang.texi: Likewise.
	* manual/maint.texi: Likewise.
	* manual/memory.texi: Likewise.
	* manual/message.texi: Likewise.
	* manual/resource.texi: Likewise.
	* manual/search.texi: Likewise.
	* manual/signal.texi: Likewise.
	* manual/startup.texi: Likewise.
	* manual/stdio.texi: Likewise.
	* manual/sysinfo.texi: Likewise.
	* manual/syslog.texi: Likewise.
	* manual/time.texi: Likewise.
	Patch by Ralf Wildenhues <Ralf.Wildenhues@gmx.de>.

	[BZ #3465]
	* sunrpc/clnt_raw.c: Minimal message improvements.
	* sunrpc/pm_getmaps.c: Likewise.
	* nis/nss_nisplus/nisplus-publickey.c: Likewise.
	* nis/nis_print_group_entry.c: Likewise.
	* locale/programs/repertoire.c: Likewise.
	* locale/programs/charmap.c: Likewise.
	* malloc/memusage.sh: Likewise.
	* elf/dl-deps.c: Likewise.
	* locale/programs/ld-collate.c: Likewise.
	* libio/vswprintf.c: Likewise.
	* malloc/memusagestat.c: Likewise.
	* sunrpc/auth_unix.c: Likewise.
	* sunrpc/rpc_main.c: Likewise.
	* nscd/cache.c: Likewise.
	* locale/programs/repertoire.c: Unify output messages.
	* locale/programs/charmap.c: Likewise.
	* locale/programs/ld-ctype.c: Likewise.
	* locale/programs/ld-monetary.c: Likewise.
	* locale/programs/ld-numeric.c: Likewise.
	* locale/programs/ld-time.c: Likewise.
	* elf/ldconfig.c: Likewise.
	* nscd/selinux.c: Likewise.
	* elf/cache.c: Likewise.
	Patch mostly by Benno Schulenberg <bensberg@justemail.net>.

2006-11-10  Jakub Jelinek  <jakub@redhat.com>

	* string/strxfrm_l.c (STRXFRM): Fix trailing \1 optimization
	if N is one bigger than return value.
	* string/tst-strxfrm2.c (do_test): Also test strxfrm with l1 + 1
	and l1 last arguments, if buf is defined, verify the return value
	equals to strlen (buf) and verify no byte beyond passed length
	is modified.

2006-11-10  Ulrich Drepper  <drepper@redhat.com>

	* po/sv.po: Update from translation team.

	* sysdeps/gnu/siglist.c (__old_sys_siglist, __old_sys_sigabbrev):
	Use __new_sys_siglist instead of _sys_siglist_internal as
	second macro argument.
	(_old_sys_siglist): Use declare_symbol_alias macro instead of
	strong_alias.
2006-11-09  Ulrich Drepper  <drepper@redhat.com>

	[BZ #3493]
	* posix/unistd.h (sysconf): Remove const attribute.

	* sysdeps/posix/getaddrinfo.c (getaddrinfo): Fix test for
	temporary or deprecated addresses.
	Patch by Sridhar Samudrala <sri@us.ibm.com>.

	* string/Makefile (tests): Add tst-strxfrm2.
	* string/tst-strxfrm2.c: New file.

2006-10-09  Jakub Jelinek  <jakub@redhat.com>

	* elf/dl-debug.c (_dl_debug_initialize): Check r->r_map for 0
	rather than r->r_brk.
	* string/strxfrm_l.c (STRXFRM): Do the trailing \1 removal
	optimization even if needed > n.

2006-11-07  Jakub Jelinek  <jakub@redhat.com>

	* include/libc-symbols.h (declare_symbol): Rename to...
	(declare_symbol_alias): ... this.  Add ORIGINAL argument, imply
	strong_alias (ORIGINAL, SYMBOL) in asm to make sure it preceedes
	.size directive.
	* sysdeps/gnu/errlist-compat.awk: Adjust for declare_symbol_alias
	changes.
	* sysdeps/gnu/siglist.c: Likewise.

2006-11-03  Steven Munroe  <sjmunroe@us.ibm.com>

	* sysdeps/powerpc/fpu/bits/mathinline.h
	[__LIBC_INTERNAL_MATH_INLINES]: Moved to ...
	* sysdeps/powerpc/fpu/math_private.h: ...here.  New file.

2006-11-05  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/unix/sysv/linux/i386/sysconf.c (intel_check_word):
	Update handling of cache descriptor 0x49 for new models.
	* sysdeps/unix/sysv/linux/x86_64/sysconf.c (intel_check_word):
	Likewise.

2006-11-02  Ulrich Drepper  <drepper@redhat.com>

	* configure.in: Work around ld --help change and avoid -z relro
	test completely if the architecture doesn't care about security.

2006-11-01  Ulrich Drepper  <drepper@redhat.com>

	* po/sv.po: Update from translation team.

2006-10-31  Ulrich Drepper  <drepper@redhat.com>

	* stdlib/atexit.c (atexit): Don't mark as hidden when used to
	generate compatibility version.

2006-10-29  Ulrich Drepper  <drepper@redhat.com>

	* configure.in: Relax -z relro requirement a bit.

	* po/sv.po: Update from translation team.

2006-10-29  Jakub Jelinek  <jakub@redhat.com>

	* elf/dl-sym.c (do_sym): Use RTLD_SINGLE_THREAD_P.
	* elf/dl-runtime.c (_dl_fixup, _dl_profile_fixup): Likewise.
	* elf/dl-close.c (_dl_close_worker): Likewise.
	* elf/dl-open.c (_dl_open_worker): Likewise.
	* sysdeps/generic/sysdep-cancel.h (RTLD_SINGLE_THREAD_P): Define.

	* configure.in: Require assembler support for visibility, compiler
	support for visibility and aliases, linker support for various -z
	options.
	* Makeconfig: Remove conditional code which now is unnecessary.
	* config.h.in: Likewise.
	* config.make.in: Likewise.
	* dlfcn/Makefile: Likewise.
	* elf/Makefile: Likewise.
	* elf/dl-load.c: Likewise.
	* elf/rtld.c: Likewise.
	* include/libc-symbols.h: Likewise.
	* include/stdio.h: Likewise.
	* io/Makefile: Likewise.
	* io/fstat.c: Likewise.
	* io/fstat64.c: Likewise.
	* io/fstatat.c: Likewise.
	* io/fstatat64.c: Likewise.
	* io/lstat.c: Likewise.
	* io/lstat64.c: Likewise.
	* io/mknod.c: Likewise.
	* io/mknodat.c: Likewise.
	* io/stat.c: Likewise.
	* io/stat64.c: Likewise.
	* libio/stdio.c: Likewise.
	* nscd/Makefile: Likewise.
	* stdlib/Makefile: Likewise.
	* stdlib/atexit.c: Likewise.
	* sysdeps/generic/ldsodefs.h: Likewise.
	* sysdeps/i386/dl-machine.h: Likewise.
	* sysdeps/i386/sysdep.h: Likewise.
	* sysdeps/i386/i686/memcmp.S: Likewise.
	* sysdeps/powerpc/powerpc32/sysdep.h: Likewise.
	* sysdeps/unix/sysv/linux/i386/sigaction.c: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/sigaction.c: Likewise.

	* Makerules: USE_TLS support is now default.
	* tls.make.c: Likewise.
	* csu/Versions: Likewise.
	* csu/libc-start.c: Likewise.
	* csu/libc-tls.c: Likewise.
	* csu/version.c: Likewise.
	* dlfcn/dlinfo.c: Likewise.
	* elf/dl-addr.c: Likewise.
	* elf/dl-cache.c: Likewise.
	* elf/dl-close.c: Likewise.
	* elf/dl-iteratephdr.c: Likewise.
	* elf/dl-load.c: Likewise.
	* elf/dl-lookup.c: Likewise.
	* elf/dl-object.c: Likewise.
	* elf/dl-open.c: Likewise.
	* elf/dl-reloc.c: Likewise.
	* elf/dl-support.c: Likewise.
	* elf/dl-sym.c: Likewise.
	* elf/dl-sysdep.c: Likewise.
	* elf/dl-tls.c: Likewise.
	* elf/ldconfig.c: Likewise.
	* elf/rtld.c: Likewise.
	* elf/tst-tls-dlinfo.c: Likewise.
	* elf/tst-tls1.c: Likewise.
	* elf/tst-tls10.h: Likewise.
	* elf/tst-tls14.c: Likewise.
	* elf/tst-tls2.c: Likewise.
	* elf/tst-tls3.c: Likewise.
	* elf/tst-tls4.c: Likewise.
	* elf/tst-tls5.c: Likewise.
	* elf/tst-tls6.c: Likewise.
	* elf/tst-tls7.c: Likewise.
	* elf/tst-tls8.c: Likewise.
	* elf/tst-tls9.c: Likewise.
	* elf/tst-tlsmod1.c: Likewise.
	* elf/tst-tlsmod13.c: Likewise.
	* elf/tst-tlsmod13a.c: Likewise.
	* elf/tst-tlsmod14a.c: Likewise.
	* elf/tst-tlsmod2.c: Likewise.
	* elf/tst-tlsmod3.c: Likewise.
	* elf/tst-tlsmod4.c: Likewise.
	* elf/tst-tlsmod5.c: Likewise.
	* elf/tst-tlsmod6.c: Likewise.
	* include/errno.h: Likewise.
	* include/link.h: Likewise.
	* include/tls.h: Likewise.
	* locale/global-locale.c: Likewise.
	* locale/localeinfo.h: Likewise.
	* malloc/arena.c: Likewise.
	* malloc/hooks.c: Likewise.
	* malloc/malloc.c: Likewise.
	* resolv/Versions: Likewise.
	* sysdeps/alpha/dl-machine.h: Likewise.
	* sysdeps/alpha/libc-tls.c: Likewise.
	* sysdeps/generic/ldsodefs.h: Likewise.
	* sysdeps/generic/tls.h: Likewise.
	* sysdeps/i386/dl-machine.h: Likewise.
	* sysdeps/ia64/dl-machine.h: Likewise.
	* sysdeps/ia64/libc-tls.c: Likewise.
	* sysdeps/mach/hurd/fork.c: Likewise.
	* sysdeps/mach/hurd/i386/tls.h: Likewise.
	* sysdeps/powerpc/powerpc32/dl-machine.c: Likwise.
	* sysdeps/powerpc/powerpc32/dl-machine.h: Likewise.
	* sysdeps/powerpc/powerpc64/dl-machine.h: Likewise.
	* sysdeps/s390/libc-tls.c: Likewise.
	* sysdeps/s390/s390-32/dl-machine.h: Likewise.
	* sysdeps/s390/s390-64/dl-machine.h: Likewise.
	* sysdeps/sh/dl-machine.h: Likewise.
	* sysdeps/sparc/sparc32/dl-machine.h: Likewise.
	* sysdeps/sparc/sparc64/dl-machine.h: Likewise.
	* sysdeps/x86_64/dl-machine.h: Likewise.

	[BZ #3426]
	* stdlib/stdlib.h: Adjust comment for canonicalize_file_name to
	reality.

2006-10-27  Jakub Jelinek  <jakub@redhat.com>

	* elf/dl-lookup.c (_dl_debug_bindings): Remove unused symbol_scope
	argument.
	(_dl_lookup_symbol_x): Adjust caller.

	* sysdeps/generic/ldsodefs.h (struct link_namespaces): Remove
	_ns_global_scope.
	* elf/rtld.c (dl_main): Don't initialize _ns_global_scope.

	* elf/dl-libc.c: Revert l_scope name changes.
	* elf/dl-load.c: Likewise.
	* elf/dl-object.c: Likewise.
	* elf/rtld.c: Likewise.
	* elf/dl-close.c (_dl_close): Likewise.
	* elf/dl-open.c (dl_open_worker): Likewise.  If not SINGLE_THREAD_P,
	always use __rtld_mrlock_{change,done}.  Always free old scope list
	here if not l_scope_mem.
	* elf/dl-runtime.c (_dl_fixup, _dl_profile_fixup): Revert l_scope name
	change.  Never free scope list here.  Just __rtld_mrlock_lock before
	the lookup and __rtld_mrlock_unlock it after the lookup.
	* elf/dl-sym.c: Likewise.
	* include/link.h (struct r_scoperec): Remove.
	(struct link_map): Replace l_scoperec with l_scope, l_scoperec_mem
	with l_scope_mem and l_scoperec_lock with l_scope_lock.

2006-10-25  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/gnu/netinet/tcp.h: Define TCP_CONGESTION.

2006-10-18  Ulrich Drepper  <drepper@redhat.com>

	* configure.in: Disable building profile libraries by default.

2006-10-18  Ulrich Drepper  <drepper@redhat.com>

	* elf/dl-lookup.c (_dl_lookup_symbol_x): Add warning to
	_dl_lookup_symbol_x code.

2006-10-17  Jakub Jelinek  <jakub@redhat.com>

	* elf/dl-runtime.c: Include sysdep-cancel.h.
	(_dl_fixup, _dl_profile_fixup): Use __rtld_mrlock_* and
	scoperec->nusers only if !SINGLE_THREAD_P.  Use atomic_*
	instead of catomic_* macros.
	* elf/dl-sym.c: Include sysdep-cancel.h.
	(do_sym): Use __rtld_mrlock_* and scoperec->nusers only
	if !SINGLE_THREAD_P.  Use atomic_* instead of catomic_* macros.
	* elf/dl-close.c: Include sysdep-cancel.h.
	(_dl_close): Use __rtld_mrlock_* and scoperec->nusers only
	if !SINGLE_THREAD_P.  Use atomic_* instead of catomic_* macros.
	* elf/dl-open.c: Include sysdep-cancel.h.
	(dl_open_worker): Use __rtld_mrlock_* and scoperec->nusers only
	if !SINGLE_THREAD_P.  Use atomic_* instead of catomic_* macros.

2006-10-17  Jakub Jelinek  <jakub@redhat.com>

	[BZ #3313]
	* malloc/malloc.c (malloc_consolidate): Set maxfb to address of last
	fastbin rather than end of fastbin array.

2006-10-18  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/i386/i486/bits/atomic.h (catomic_decrement): Use correct
	body macro.
	* sysdeps/x86_64/bits/atomic.h
	(__arch_c_compare_and_exchange_val_64_acq): Add missing casts.
	(catomic_decrement): Use correct body macro.

2006-10-17  Jakub Jelinek  <jakub@redhat.com>

	* include/atomic.h: Add a unique prefix to all local variables
	in macros.
	* csu/tst-atomic.c (do_test): Test also catomic_* macros.

2006-10-14  Ulrich Drepper  <drepper@redhat.com>

	* resolv/arpa/nameser.h: Document that ns_t_a6 is deprecated.

	[BZ #3313]
	* malloc/malloc.c (malloc_consolidate): Don't use get_fast_max to
	determine highest fast bin to consolidate, always look into all of
	them.
	(do_check_malloc_state): Only require for empty bins for large
	sizes in main arena.

	* libio/stdio.h: Add more __wur attributes.

2006-11-12  Andreas Jaeger  <aj@suse.de>

	[BZ #2510]
	* manual/search.texi (Hash Search Function): Clarify.
	(Array Search Function): Clarify.

2006-11-12  Joseph Myers  <joseph@codesourcery.com>

	[BZ #2830]
	* math/atest-exp.c (main): Cast hex value to mp_limb_t before
	shifting.
	* math/atest-exp2.c (read_mpn_hex): Likewise.
	* math/atest-sincos.c (main): Likewise.

	* sysdeps/unix/sysv/linux/syscalls.list: Add epoll_pwait.
	* sysdeps/unix/sysv/linux/sys/epoll.h: Declare epoll_pwait.
	* sysdeps/unix/sysv/linux/Versions (libc): Add epoll_pwait for
	version GLIBC_2.6.
	* Versions.def: Add GLIBC_2.6 for libc.

	* sysdeps/i386/i486/bits/atomic.h: Add catomic_* support.

2006-10-11  Jakub Jelinek  <jakub@redhat.com>

	* malloc/malloc.c (_int_malloc): Remove unused any_larger variable.

	* nis/nis_defaults.c (__nis_default_access): Don't call getenv twice.

	* nis/nis_subr.c (nis_getnames): Use __secure_getenv instead of getenv.
	* sysdeps/generic/unsecvars.h: Add NIS_PATH.

2006-10-11  Ulrich Drepper  <drepper@redhat.com>

	* include/atomic.c: Define catomic_* operations.
	* sysdeps/x86_64/bits/atomic.h: Likewise.  Fix a few minor problems.
	* stdlib/cxa_finalize.c: Use catomic_* operations instead of atomic_*.
	* malloc/memusage.c: Likewise.
	* gmon/mcount.c: Likewise.
	* elf/dl-close.c: Likewise.
	* elf/dl-open.c: Likewise.
	* elf/dl-profile.c: Likewise.
	* elf/dl-sym.c: Likewise.
	* elf/dl-runtime.c: Likewise.
	* elf/dl-fptr.c: Likewise.
	* resolv/res_libc.c: Likewise.

2006-10-10  Roland McGrath  <roland@frob.com>
	* sysdeps/mach/hurd/utimes.c: Use a union to avoid an improper cast.
	* sysdeps/mach/hurd/futimes.c: Likewise.
	* sysdeps/mach/hurd/lutimes.c: Likewise.

2006-10-09  Ulrich Drepper  <drepper@redhat.com>
	    Jakub Jelinek  <jakub@redhat.com>

	Implement reference counting of scope records.
	* elf/dl-close.c (_dl_close): Remove all scopes from removed objects
	from the list in objects which remain.  Always allocate new scope
	record.
	* elf/dl-open.c (dl_open_worker): When growing array for scopes,
	don't resize, allocate a new one.
	* elf/dl-runtime.c: Update reference counters before using a scope
	array.
	* elf/dl-sym.c: Likewise.
	* elf/dl-libc.c: Adjust for l_scope name change.
	* elf/dl-load.c: Likewise.
	* elf/dl-object.c: Likewise.
	* elf/rtld.c: Likewise.
	* include/link.h: Include <rtld-lowlevel.h>.  Define struct
	r_scoperec.  Replace r_scope with pointer to r_scoperec structure.
	Add l_scoperec_lock.
	* sysdeps/generic/ldsodefs.h: Include <rtld-lowlevel.h>.
	* sysdeps/generic/rtld-lowlevel.h: New file.

	* include/atomic.h: Rename atomic_and to atomic_and_val and
	atomic_or to atomic_or_val.  Define new macros atomic_and and
	atomic_or which do not return values.
	* sysdeps/x86_64/bits/atomic.h: Define atomic_and and atomic_or.
	Various cleanups.
	* sysdeps/i386/i486/bits/atomic.h: Likewise.

	* po/sv.po: Update from translation team.

2006-10-07  Ulrich Drepper  <drepper@redhat.com>

	* Versions.def: Add GLIBC_2.6 to libpthread.

	* include/shlib-compat.h (SHLIB_COMPAT): Expand parameters before use.
	(versioned_symbol): Likewise.
	(compat_symbol): Likewise.

	* po/tr.po: Update from translation team.
	* nis/Banner: Removed.  It's been integral part forever and the
	author info is incomplete anyway.
	* libio/Banner: Likewise.

2006-10-06  Ulrich Drepper  <drepper@redhat.com>

	* version.h (VERSION): Bump to 2.5.90 for new development tree.
2007-01-11 21:51:07 +00:00
Jakub Jelinek
32c075e1f0 . 2007-07-31 13:33:18 +00:00
Ulrich Drepper
346e6ad401 [BZ #3123]
2006-09-08  Ulrich Drepper  <drepper@redhat.com>
	[BZ #3123]
	* sysdeps/pthread/pthread_cond_wait.c (__condvar_cleanup): Don't
	increment WAKEUP_SEQ if this would increase the value beyond TOTAL_SEQ.
	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.c: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.c: Likewise.
	* Makefile (tests): Add tst-cond22.
	* tst-cond22.c: New file.
2006-09-08 10:41:17 +00:00
Ulrich Drepper
b051fc4438 [BZ #3124]
2006-09-05  Ulrich Drepper  <drepper@redhat.com>
	[BZ #3124]
	* descr.h (struct pthread): Add parent_cancelhandling.
	* sysdeps/pthread/createthread.c (create_thread): Pass parent
	cancelhandling value to child.
	* pthread_create.c (start_thread): If parent thread was canceled
	reset the SIGCANCEL mask.
	* Makefile (tests): Add tst-cancel25.
	* tst-cancel25.c: New file.
2006-09-05 17:18:23 +00:00
Ulrich Drepper
376e973ad6 [BZ #3018]
2006-07-30  Joseph S. Myers  <joseph@codesourcery.com>
	[BZ #3018]
	* Makerules (depfiles): Handle extra-test-objs the same as
	extra-objs.
	(common-mostlyclean): Likewise.
	* dlfcn/Makefile (extra-objs): Add modules to extra-test-objs
	instead.
	* elf/Makefile (extra-objs): Likewise.
	* stdlib/Makefile (extra-objs): Likewise.
2006-08-21 21:06:35 +00:00
Ulrich Drepper
89c85f87ea * sysdeps/unix/sysv/linux/clock_settime.c (INTERNAL_VSYSCALL): Use
HAVE_CLOCK_GETRES_VSYSCALL as guard macro rather than
	HAVE_CLOCK_GETTIME_VSYSCALL.
	(maybe_syscall_settime_cpu): Use plain INTERNAL_VSYSCALL here.
2006-08-15 13:41:04 +00:00
Ulrich Drepper
22bb134c31 [BZ #2843]
2006-08-12  Ulrich Drepper  <drepper@redhat.com>
	[BZ #2843]
	* pthread_join.c (pthread_join): Account for self being canceled
	when checking for deadlocks.
	* tst-join5.c: Cleanups.  Allow to be used in tst-join6.
	(tf1): Don't print anything after pthread_join returns, this would be
	another cancellation point.
	(tf2): Likewise.
	* tst-join6.c: New file.
	* Makefile (tests): Add tst-join6.
2006-08-13 01:56:09 +00:00
Ulrich Drepper
a1260d92a7 * stdlib/test-canon.c (do_test): Close fd before unlinking file so
that directory is empty even on non-POSIX filesystems.
2006-08-01 06:40:11 +00:00
Roland McGrath
b894c2ea7e * sysdeps/unix/sysv/linux/ia64/sigsuspend.c: File removed.
* sysdeps/unix/sysv/linux/x86_64/sigsuspend.c: File removed.
	* sysdeps/unix/sysv/linux/s390/s390-64/sigsuspend.c: File removed.
	* sysdeps/unix/sysv/linux/sparc/sparc64/sigsuspend.c: File removed.

	* sysdeps/unix/sysv/linux/not-cancel.h (pause_not_cancel): New macro.
	(nanosleep_not_cancel): New macro.
	(sigsuspend_not_cancel): new macro.
	* sysdeps/unix/sysv/linux/sigsuspend.c [__ASSUME_REALTIME_SIGNALS]
	(do_sigsuspend): Define as inline.
	(__sigsuspend): Always use do_sigsuspend.
	[! NO_CANCELLATION] (__sigsuspend_nocancel): New function.
	* include/signal.h: Declare __sigsuspend_nocancel.
	* sysdeps/posix/pause.c
	[! NO_CANCELLATION] (__pause_nocancel): New function.

	* include/unistd.h (__pause_nocancel): Add attribute_hidden.
	* include/time.h (__nanosleep_nocancel): Likewise.
2006-07-31 05:58:51 +00:00
Ulrich Drepper
df47504c78 2006-07-28 Ulrich Drepper <drepper@redhat.com>
Jakub Jelinek  <jakub@redhat.com>

	* descr.h: Change ENQUEUE_MUTEX and DEQUEUE_MUTEX for bit 0
	notification of PI mutex.  Add ENQUEUE_MUTEX_PI.
	* pthreadP.h: Define PTHREAD_MUTEX_PI_* macros for PI mutex types.
	* pthread_mutex_setprioceilining.c: Adjust for mutex type name change.
	* pthread_mutex_init.c: Add support for priority inheritance mutex.
	* pthread_mutex_lock.c: Likewise.
	* pthread_mutex_timedlock.c: Likewise.
	* pthread_mutex_trylock.c: Likewise.
	* pthread_mutex_unlock.c: Likewise.
	* sysdeps/pthread/pthread_cond_broadcast.c: For PI mutexes wake
	all mutexes.
	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.c: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.c: Likewise.
	* sysdeps/unix/sysv/linux/pthread-pi-defines.sym: New file.
	* sysdeps/unix/sysv/linux/Makefile (gen-as-const-header): Add
	pthread-pi-defines.sym.
	* sysdeps/unix/sysv/linux/i386/lowlevellock.h: Define FUTEX_LOCK_PI,
	FUTEX_UNLOCK_PI, and FUTEX_TRYLOCK_PI.
	* sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
	* sysdeps/unix/sysv/linux/bits/posix_opt.h: Define
	_POSIX_THREAD_PRIO_INHERIT to 200112L.
	* tst-mutex1.c: Adjust to allow use in PI mutex test.
	* tst-mutex2.c: Likewise.
	* tst-mutex3.c: Likewise.
	* tst-mutex4.c: Likewise.
	* tst-mutex5.c: Likewise.
	* tst-mutex6.c: Likewise.
	* tst-mutex7.c: Likewise.
	* tst-mutex7a.c: Likewise.
	* tst-mutex8.c: Likewise.
	* tst-mutex9.c: Likewise.
	* tst-robust1.c: Likewise.
	* tst-robust7.c: Likewise.
	* tst-robust8.c: Likewise.
	* tst-mutexpi1.c: New file.
	* tst-mutexpi2.c: New file.
	* tst-mutexpi3.c: New file.
	* tst-mutexpi4.c: New file.
	* tst-mutexpi5.c: New file.
	* tst-mutexpi6.c: New file.
	* tst-mutexpi7.c: New file.
	* tst-mutexpi7a.c: New file.
	* tst-mutexpi8.c: New file.
	* tst-mutexpi9.c: New file.
	* tst-robust1.c: New file.
	* tst-robust2.c: New file.
	* tst-robust3.c: New file.
	* tst-robust4.c: New file.
	* tst-robust5.c: New file.
	* tst-robust6.c: New file.
	* tst-robust7.c: New file.
	* tst-robust8.c: New file.
	* Makefile (tests): Add the new tests.

	* pthread_create.c (start_thread): Add some casts to avoid warnings.
	* pthread_mutex_destroy.c: Remove unneeded label.
2006-07-29 04:42:09 +00:00
Ulrich Drepper
0f6699ea05 * sysdeps/unix/sysv/linux/kernel-features.h: Add
__ASSUME_SET_ROBUST_LIST.
2006-03-28 04:25:17 +00:00
Roland McGrath
a5f2bd861c * elf/rtld-Rules (subdir-args): New variable.
(rtld-subdir-make): Use it.
2006-02-28 09:57:07 +00:00
Roland McGrath
e0a3ed4ff9 * Makefile (subdir-target-args): New variable.
($(all-subdirs-targets)): Use it in place of -C option.
	* Rules: Use $(..) instead of ../ if it's already defined.
	* Makeconfig (subdir-srcdirs): New variable.
	* csu/Makefile (all-Banner-files): Use it.

	* configure.in (--enable-add-ons): Set to "yes" by default.
	Handle absolute add-on directory names when looking for configure
	fragments.  Also look for sysdeps/*/preconfigure fragments in add-ons.
	Require add-on configure to set $libc_add_on_canonical, use
	that in $add_ons_sfx.  Substitute add_on_subdirs with computed list
	of subdir names each add-on configure set in libc_add_on_subdirs.
	* configure: Regenerated.
	* Makefile (%/preconfigure: %/preconfigure.in): New pattern rule.
	* config.make.in (add-on-subdirs): New substituted variable.
	* Makeconfig (all-subdirs): Include $(add-on-subdirs).
	Remove $(add-ons), $(sysdep-subdirs).
	Don't filter out $(sysdep-inhibit-subdirs).
	($(common-objpfx)sysd-dirs): Target removed.  Don't include it.
	($(common-objpfx)sysd-sorted): Rewritten to feed Depend and Subdirs
	files together to gen-sorted.awk, and $(subdirs) via -v.
	(subdirs): Remove magic reordering for mach and hurd.
	* scripts/gen-sorted.awk: Use subdirs from command line.
	Process Subdirs and Depend files directly.
	Let Subdirs files use "first dir" and "inhibit dir".
	Always move elf to the end of the list.
	* hurd/Depend: New file.
	* sysdeps/mach/Subdirs: Use "first mach".

	* Makefile (dist-separate): Remove linuxthreads.
	(dist-separate-linuxthreads): Variable removed.
	(glibc-%.tar rule): Use $(sysdeps-add-ons).

	* Makerules ($(common-objpfx)Versions.v.i): Use $(subdirs),
	not $(all-subdirs).
	(sysdep-makefiles): Use $(sysdirs).
	(sysdirs): Remove export.
	($(+sysdir_pfx)sysd-rules): Handle absolute directory names in
	$(config-sysdirs).
	(+sysdir_pfx): Variable removed.
	(sysd-rules): Use $(common-objpfx) in place of it.
	(sysdirs): Variable moved to ...
	* Makeconfig (sysdirs): ... here.
	Handle absolute directory names in $(config-sysdirs).
	(full_config_sysdirs): Variable removed.
	* csu/Makefile: Use $(sysdirs) in vpath directive.
	* math/Makefile (ulps-file): Use $(sysdirs).
	* sysdeps/gnu/Makefile (errlist-c): Likewise.
	($(objpfx)errlist-compat.c): Likewise.
	* Makeconfig (all-Subdirs-files): Likewise.
	($(common-objpfx)config.status): Likewise.

	* configure.in (sysnames): Handle absolute add-on directory names.
	(sysdeps_add_ons): New variable, AC_SUBST it.
	Compute which add-ons contributed sysdeps directories.
	* configure: Regenerated.
	* config.make.in (sysdeps-add-ons): New substituted variable.
	* Makerules (+sysdep_dirs, +sysdep-includes): Variables moved ...
	* Makeconfig: ... to here.
	(+sysdep_dirs): Append $(sysdeps-add-ons) here.
	(+includes): Remove $(objpfx) include, already in $(+sysdep_dirs).
	Remove $(includes).
	(sysdep-makeconfigs): Use $(+sysdep_dirs).
	($(common-objpfx)shlib-versions.v.i): Likewise.

	* Makeconfig: Remove hair to set Makeconfig-add-on.

	* sysdeps/unix/Makefile (sysdirs): Remove export.
	(asm_CPP): Variable removed.
	($(common-objpfx)sysd-syscalls): Pass them directly for the script.

	* sysdeps/posix/Makefile: New file.
	* Makerules (L_tmpnam, TMP_MAX, L_ctermid, L_cuserid): Set non-posix
	values here with ?=.

	* stdlib/gen-mpn-copy: File removed.
	* stdlib/Makefile (distribute): Remove it.
	* configure.in: Don't grok --with-gmp.
	* configure: Regenerated.

	* configure.in (libc_cv_idn): Don't check it; libidn/configure does it.
	* configure: Regenerated.

	* bare: Directory removed, saved in ports repository.
2006-02-28 07:11:04 +00:00
Ulrich Drepper
683040c3b2 * sysdeps/unix/sysv/linux/not-cancel.h (__openat_not_cancel,
__openat64_not_cancel): Remove prototypes.
	(__openat_nocancel, __openat64_nocancel): New prototypes or defines.
	(openat_not_cancel, openat_not_cancel_3, openat64_not_cancel,
	openat64_not_cancel_3): Use them.
2006-02-15 17:20:33 +00:00
Roland McGrath
5d42c8c338 * tst-initializers1-c89.c: New file.
* tst-initializers1-c99.c: New file.
	* tst-initializers1-gnu89.c: New file.
	* tst-initializers1-gnu99.c: New file.
	* Makefile (tests): Add them.
	(CFLAGS-tst-initializers1-c89.c): New variable.
	(CFLAGS-tst-initializers1-c99.c): New variable.
	(CFLAGS-tst-initializers1-gnu89.c): New variable.
	(CFLAGS-tst-initializers1-gnu99.c): New variable.
2006-01-09 23:05:00 +00:00
Roland McGrath
a8ab5e4355 2006-01-03 Joseph S. Myers <joseph@codesourcery.com>
* Makefile ($(objpfx)$(multidir)): Use mkdir -p.
2006-01-05 08:16:20 +00:00
Ulrich Drepper
ce50c583a9 (tests): Add tst-signal7. 2005-12-28 20:48:24 +00:00
Ulrich Drepper
1bcfb5a5eb * Versions.def: Add GLIBC_2.4 for libpthread. 2005-12-27 01:04:06 +00:00
Ulrich Drepper
7735afa212 * Makeconfig: Define CXXFLAGS. Split out warnings from +gccwarn which
are not understood by the C++ compiler.
	* Makerules: Add rules to build C++ code for test cases.
	* include/stdlib.h: Protect for inclusion in C++ code.
	* include/time.h: Likewise.

	* test-skeleton.c (timeout_handler): Rewrite ts initialization for
	C++ compatibility.
2005-12-23 01:55:26 +00:00
Roland McGrath
aed48a2a23 2005-10-16 Daniel Jacobowitz <dan@codesourcery.com>
Roland McGrath  <roland@redhat.com>

	* Makerules [module-names] (extra-modules-build): New variable.
	($(extra-modules-build:%=$(objpfx)%.so)): New static pattern rule.
	Depend on libc.so and libc_nonshared.a.
	* dlfcn/Makefile ($(test-modules)): Remove static pattern rule.
	* elf/Makefile (modules-names-nobuild): New variable, add filtmod1.
	($(test-modules)): Remove static pattern rule.
2005-10-16 09:25:59 +00:00
Ulrich Drepper
f9126cc23e [BZ #982]
* locales/ml_IN: Fix title.
2005-10-14 18:51:58 +00:00
Ulrich Drepper
3fd1bc6778 * sysdeps/pthread/pthread.h (PTHREAD_MUTEX_INITIALIZER,
PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP,
	PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP,
	PTHREAD_MUTEX_ADAPTIVE_NP, PTHREAD_RWLOCK_INITIALIZER,
	PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP,
	PTHREAD_COND_INITIALIZER): Supply zeros for all fields
	in the structure.
	* Makefile (tests): Add tst-initializers1.
	(CFLAGS-tst-initializers1.c): Set.
	* tst-initializers1.c: New test.

2005-07-11  Jakub Jelinek  <jakub@redhat.com>
2005-07-11 16:41:29 +00:00
Ulrich Drepper
35f1e82763 * Versions.def (ld): Add GLIBC_2.4.
* configure.in: Add --enable-stackguard-randomization option.
	(ENABLE_STACKGUARD_RANDOMIZE): New define.
	* config.h.in (ENABLE_STACKGUARD_RANDOMIZE): Add.
	* sysdeps/unix/sysv/linux/dl-osinfo.h: Include stdint.h.
	(_dl_setup_stack_chk_guard): New inline function.
	* sysdeps/generic/dl-osinfo.h: Include stdint.h.
	(_dl_setup_stack_chk_guard): New inline function.
	* elf/rtld.c (__stack_chk_guard): New variable.
	(dl_main): Remove all traces of TLS_INIT_TP_EXPENSIVE.
	Set __stack_chk_guard to _dl_setup_stack_chk_guard (),
	use THREAD_SET_STACK_GUARD if defined.
	* elf/Versions (ld): Export __stack_chk_guard@@GLIBC_2.4.
	* sysdeps/generic/libc-start.c (__stack_chk_guard): New variable.
	(__libc_start_main): Set __stack_chk_guard to
	_dl_setup_stack_chk_guard (), use THREAD_SET_STACK_GUARD if defined.
	* sysdeps/generic/libc-tls.c (__libc_setup_tls): Remove all
	traces of TLS_INIT_TP_EXPENSIVE.
	* debug/Versions (libc): Export __stack_chk_fail@@GLIBC_2.4.
	* debug/Makefile (routines): Add stack_chk_fail.
	(static-only-routines): Add stack_chk_fail_local.
	* debug/stack_chk_fail_local.c: New file.
	* debug/stack_chk_fail.c: New file.
	* elf/Makefile: Add rules to build and run tst-stackguard1{,-static}
	tests.
	* elf/tst-stackguard1.c: New file.
	* elf/tst-stackguard1-static.c: New file.
	* elf/stackguard-macros.h: New file.
2005-06-26 18:14:26 +00:00
Roland McGrath
5e2d8ac83c [BZ #877]
* posix/unistd.h: Remove __nonnull from acct decl.
2005-04-27 09:56:16 +00:00
Ulrich Drepper
a334319f65 (CFLAGS-tst-align.c): Add -mpreferred-stack-boundary=4. 2004-12-22 20:10:10 +00:00
Jakub Jelinek
0ecb606cb6 2.5-18.1 2007-07-12 18:26:36 +00:00
Ulrich Drepper
7d58530341 Test for stack alignment. 2004-12-22 20:09:42 +00:00
Ulrich Drepper
484cc8018b Update.
2004-12-07  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/unix/sysv/linux/ia64/clone2.S (__clone2): Add support for
	NPTL where the PID is stored at userlevel and needs to be reset when
	CLONE_THREAD is not used.  Restore gp before calling _exit.
2004-12-07 20:34:18 +00:00
Ulrich Drepper
1ff241b87c Update.
2004-12-04  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/unix/sysv/linux/i386/clone.S: Add support for NPTL where
	the PID is stored at userlevel and needs to be reset when CLONE_THREAD
	is not used.
	* sysdeps/unix/sysv/linux/86_64/clone.S: Likewise.

	* sysdeps/unix/sysv/linux/arm/clone.S: Update uses of RETINSTR.
	* sysdeps/unix/sysv/linux/arm/mmap.S: Likewise.
	* sysdeps/unix/sysv/linux/arm/mmap64.S: Likewise.
	* sysdeps/unix/sysv/linux/arm/socket.S: Likewise.
	* sysdeps/unix/sysv/linux/arm/sysdep.h: Likewise.
	* sysdeps/unix/sysv/linux/arm/vfork.S: Likewise.
2004-12-05 07:50:01 +00:00
Roland McGrath
3f488b9cdd * extra-lib.mk (object-suffixes-$(lib)): Add .oS when
$(lib)-static-only-routines is nonempty.
	(extra-objs, o-iterator.mk rule): Filter out .oS from generators.
	Add a special rule for .oS objects -> _nonshared.a library.
2004-12-02 22:55:30 +00:00
Ulrich Drepper
f1f2cafcd4 Update.
2004-11-24  Ulrich Drepper  <drepper@redhat.com>

	* Makefile (libpthread-routines): Add pthread_setschedprio.
	* Versions [libpthread, GLIBC_2.3.4]: Add pthread_setschedprio.
	* sysdeps/pthread/pthread.h: Declare pthread_setschedprio.
	* pthread_setschedprio.c: New file.
2004-11-24 22:59:03 +00:00
Ulrich Drepper
b639d0c939 Update.
2004-11-20  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/unix/sysv/linux/bits/socket.h (SCM_RIGHTS): Avoid
	comma at the end of enum if __USE_BSD is not defined.

	(calc_inveclosure, calc_eclosure): Skip OP_DELETED_SUBEXP nodes.
2004-11-20 07:16:31 +00:00
Ulrich Drepper
ccd8de9aa6 Update.
2004-11-10  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/unix/sysv/linux/setreuid.c: Remove sys/syscall.h,
	sys/types.h, linux/posix_types.h, sysdep.h and pthread-functions.h
	includes.  Include setxid.h.  Use INLINE_SETXID_SYSCALL macro
	instead of INLINE_SYSCALL, kill the HAVE_PTR__NPTL_SETXID guarded
	snippets.
	* sysdeps/unix/sysv/linux/setegid.c: Likewise.
	* sysdeps/unix/sysv/linux/setuid.c: Likewise.
	* sysdeps/unix/sysv/linux/seteuid.c: Likewise.
	* sysdeps/unix/sysv/linux/setgid.c: Likewise.
	* sysdeps/unix/sysv/linux/setresuid.c: Likewise.
	* sysdeps/unix/sysv/linux/setresgid.c: Likewise.
	* sysdeps/unix/sysv/linux/setregid.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/setegid.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/setreuid.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/setuid.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/seteuid.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/setgid.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/setresuid.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/setresgid.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/setregid.c: Likewise.
	* sysdeps/unix/sysv/linux/alpha/setreuid.c: Likewise.
	Formatting.  Change signed int into int.
	* sysdeps/unix/sysv/linux/alpha/setresuid.c: Likewise.
	* sysdeps/unix/sysv/linux/alpha/setresgid.c: Likewise.
	* sysdeps/unix/sysv/linux/alpha/setregid.c: Likewise.
	* sysdeps/unix/sysv/linux/syscalls.list (setresuid, setresgid):
	Remove.
	* sysdeps/unix/setxid.h: New file.

	* Rules (binaries-static): Add xtests-static.
	* Makeconfig (run-program-prefix): Filter also xtests-static.
2004-11-12 01:27:04 +00:00
Ulrich Drepper
ed2ced8ae3 Update.
2004-11-10  Jakub Jelinek  <jakub@redhat.com>

	* Makefile (tests): Add tst-exit3.
	* tst-exit3.c: New test.
2004-11-10 07:54:40 +00:00
Ulrich Drepper
59adcf7aa0 (tests): Add tst-exit2. 2004-11-09 23:11:12 +00:00
Ulrich Drepper
65f0beb9c5 Update.
* configure.in: If selinux has not explictly been requested, don't
	comment on it missing.
2004-09-20 22:14:33 +00:00
Ulrich Drepper
2edb61e3f9 Update.
* sysdeps/unix/sysv/linux/setegid.c [HAVE_PTR__NPTL_SETXID]: Call
	callback to set IDs in all other threads as well.
	* sysdeps/unix/sysv/linux/seteuid.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/setegid.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/seteuid.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/setgid.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/setuid.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/setreuid.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/setreuid.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/setresuid.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/setresuid.c: Likewise.
	* sysdeps/unix/sysv/linux/setuid.c: New file.
	* sysdeps/unix/sysv/linux/setgid.c: New file.
	* sysdeps/unix/sysv/linux/setreuid.c: New file.
	* sysdeps/unix/sysv/linux/setregid.c: New file.
	* sysdeps/unix/sysv/linux/setresuid.c: New file.
	* sysdeps/unix/sysv/linux/setresgid.c: New file.
	* sysdeps/unix/sysv/linux/i386/sysdep.h: Define INTERNAL_SYSCALL_NCS.
	* sysdeps/unix/sysv/linux/ia64/sysdep.h: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep.h: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep.h: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/sysdep.h: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/setegid.c: Use x86 version.
	* sysdeps/unix/sysv/linux/sparc/sparc32/seteuid.c: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/setresgid.c: New file.
	* sysdeps/unix/sysv/linux/sparc/sparc32/setresuid.c: New file.
	* sysdeps/unix/sysv/linux/sparc/sparc32/syscalls.list: Remove setresgid
	and setresuid.
	* nscd/aicache.c: Use pthread_seteuid_np instead of seteuid.
	* nscd/grpcache.c: Likewise.
	* nscd/hstcache.c: Likewise.
	* nscd/pwdcache.c: Likewise.
2004-09-20 00:16:11 +00:00
Ulrich Drepper
73f7c32c47 [BZ #357]
Update.
2004-09-02  Steven Munroe  <sjmunroe@us.ibm.com>

	[BZ #357]
	* stdlib/tst-setcontext.c (test_stack): Added test for stack clobber.
	(main): Call test_stack.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/getcontext.S
	(__getcontext): Push stack frame then save parms in local frame.
	Improve instruction scheduling.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext.S
	(__swapcontext): Likewise.
2004-09-02 18:59:24 +00:00
Roland McGrath
58c2859f14 2004-07-21 Roland McGrath <roland@redhat.com>
* Makefile ($(objpfx)multidir.mk): Use $(make-target-directory).
2004-07-21 23:14:37 +00:00
Ulrich Drepper
8e5aaad9da Update.
2004-07-07  Ulrich Drepper  <drepper@redhat.com>

	* elf/dl-fini.c (_dl_fini): Move the unlock of the ld.so lock
	before the loop running the destructors.
2004-07-07 07:41:02 +00:00
Roland McGrath
4f16d3b530 2004-06-29 Roland McGrath <roland@redhat.com>
* Banner: NPTL no longer has its own version number.
	* Makefile (nptl-version): Variable removed.
	* sysdeps/pthread/Makefile (CFLAGS-confstr.c): Set LIBPTHREAD_VERSION
	using $(version), the glibc version number.
2004-06-29 23:03:20 +00:00
Ulrich Drepper
46f4c5787a Update.
2004-06-27  Ulrich Drepper  <drepper@redhat.com>

	* Makefile: Add rules to build tst-rwlock14.
	* tst-rwlock14.c: New file.

2004-06-24  Boris Hu  <boris.hu@intel.com>

	* sysdeps/pthread/pthread_rwlock_timedrdlock.c: Add timeout validation
	check.
	* sysdeps/pthread/pthread_rwlock_timedwrlock.c: Likewise.
2004-06-27 19:32:01 +00:00
Ulrich Drepper
7c3164bc66 Update.
2004-06-17  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/pthread/pthread_cond_timedwait.c
	(__pthread_cond_timedwait): Also check for negativ nanoseconds.
	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
	(__pthread_cond_timedwait): Check for invalid nanosecond in
	timeout value.
	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
	* tst-cond19.c: New file.
	* Makefile: Add rules to build and run tst-cond19.
2004-06-18 04:29:42 +00:00
Ulrich Drepper
75fcceded2 Update.
2004-06-03  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/i386/i486/bits/atomic.h: Optimize a bit.
2004-06-03 16:04:11 +00:00
Ulrich Drepper
893a351195 [BZ #163]
Update.
2004-05-18  Petter Reinholdtsen  <pere@hungry.com>

	* locales/sl_SI [LC_TIME]: Correct d_fmt date format from
	'22.06.2003' to '22. 06. 2003'.  Change requested from Aleks
	Reinhardt, and approved by the locale author Borka
	Jerman-Blazic. [BZ #163]
2004-05-18 20:18:14 +00:00
Ulrich Drepper
feca5e0be0 Update.
2004-03-30  H.J. Lu  <hongjiu.lu@intel.com>

	* Makeconfig (link-libc-static): Use $(static-gnulib) instead
	of $(gnulib).
	(libgcc_eh): New variable.
	(gnulib): Use it variable.
	(static-gnulib): New variable.
	* Makerules (LDLIBS-c.so): Use $(static-gnulib) instead of $(gnulib).
	* config.make.in (have-as-needed): New variable.
	* configure.in: Check if linker supports --as-needed.
2004-04-03 08:53:24 +00:00
Ulrich Drepper
3fa21fd813 Update.
2004-03-30  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/generic/libc-start.c (LIBC_START_MAIN)
	[HAVE_CLEANUP_JMP_BUF]: Call __nptl_deallocate_tsd.
2004-03-31 01:47:34 +00:00
Ulrich Drepper
2c0b891afe Update.
* sysdeps/unix/sysv/linux/smp.h: New file.
	* sysdeps/unix/sysv/linux/sh/smp.h: New file.
	* init.c: Define __is_smp.
	(__pthread_initialize_minimal_internal): Call is_smp_system to
	initialize __is_smp.
	* pthreadP.h: Declare __is_smp.
	Define MAX_ADAPTIVE_COUNT is necessary.
	* pthread_mutex_init.c: Add comment regarding __spins field.
	* pthread_mutex_lock.c: Implement adaptive mutex type.
	* pthread_mutex_timedlock.c: Likewise.
	* sysdeps/unix/sysv/linux/pthread_mutex_cond_lock.c: Likewise.
	* sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h (pthread_mutex_t):
	Add __spins field.
	* sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Likewise.
	* sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
	* sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Likewise.
	* sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
	* sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
	* sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h: Define
	lll_mutex_cond_trylock.
	* sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
	* sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Likewise.
	* sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
	* sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: Likewise.
	* sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Likewise.
	Define BUSY_WAIT_NOP.
	* sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.

	* tst-mutex5.c: Add support for testing adaptive mutexes.
	* tst-mutex7.c: Likewise.
	* tst-mutex5a.c: New file.
	* tst-mutex7a.c: New file.
	* Makefile (tests): Add tst-mutex5a and tst-mutex7a.
2004-03-24 06:36:06 +00:00
Ulrich Drepper
8b9d605485 Update.
2004-02-09  Jakub Jelinek  <jakub@redhat.com>

	* posix/Makefile (tests): Add tst-vfork2.
	* posix/tst-vfork1.c (do_test): Fix comment.
	* posix/tst-vfork2.c: New test.
2004-03-10 05:25:48 +00:00
Ulrich Drepper
4c771a3b26 Update.
2004-02-27  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/unix/sysv/linux/sysconf.c: Include stdlib.h.
2004-02-28 10:18:58 +00:00
Ulrich Drepper
25b8e63c0a Update.
* Makefile (tests-nolibpthread): Add tst-unload.  Don't link with
	libpthread for the files in this list.
	(CFLAGS-tst-unload): Removed.
	* tst-unload.c (do_test): Don't use complete path for
	LIBPHREAD_SO.
2004-02-25 18:43:42 +00:00
Ulrich Drepper
701d185cba Update.
2004-02-25  Ulrich Drepper  <drepper@redhat.com>

	* Makefile: Define sonames for tst-tls5mod, tst-_res1mod1, and
	tst-_res1mod2.
2004-02-25 08:26:24 +00:00
Ulrich Drepper
37c054c7c4 Update.
* sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S
	(pthread_barrier_wait): After wakeup, release lock only when the
	last thread stopped using the barrier object.
	* sysdeps/unix/sysv/linux/x86_64/pthread_barrier_wait.S
	(pthread_barrier_wait): Likewise.
	* sysdeps/pthread/pthread_barrier_wait.c (pthread_barrier_wait):
	Likewise.
	* Makefile (tests): Add tst-barrier4.
	* tst-barrier4.c: New file.
2004-02-19 04:10:16 +00:00
Ulrich Drepper
4a08113c4e Update.
2004-02-18  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_unlock.S
	(__pthread_rwlock_unlock): Access WRITER as 32-bit value.
	* Makefile (tests): Add tst-rwlock13.
	* tst-rwlock13.c: New test.
2004-02-18 20:02:17 +00:00
Ulrich Drepper
e2982bf018 Update.
2004-01-29  Steven Munroe  <sjmunroe@us.ibm.com>

	* Makefile (libpthread-routines): Add pt-cleanup.
	* pt-longjmp.c: Removed.
	* pt-cleanup.c: Copied __pthread_cleanup_upto to here. New file.
	* sysdeps/generic/pt-longjmp.c: Copied longjmp to here. New file.
	* sysdeps/unix/sysv/linux/powerpc/Versions: New file.
	Version longjmp, siglongjmp for GLIBC_2.3.4.
	* sysdeps/unix/sysv/linux/powerpc/pt-longjmp.c: New File.
2004-02-14 05:22:43 +00:00
Ulrich Drepper
249a3d0c4f Update.
2004-01-08  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/unix/sysv/linux/x86_64/clone.S (__clone): Add cfi_endproc
	right before syscall and cfi_startproc before PSEUDO_END.
	Clear %rbp in thread_start.
2004-01-08 18:23:53 +00:00
Ulrich Drepper
cb5b9388da Update.
2003-12-23  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/unix/sysv/linux/raise.c (raise): Protect pid = selftid
	setting with __ASSUME_TGKILL || defined __NR_tgkill.
	If pid is 0, set it to selftid.
	* sysdeps/unix/sysv/linux/getpid.c (really_getpid): Make inline.
	Don't set self->pid but self->tid.  If self->pid == 0 and self->tid
	!= 0, return self->tid without doing a syscall.
	* descr.h (struct pthread): Move pid field after tid.

	* Makefile (tests): Add tst-raise1.
	* tst-raise1.c: New file.
2003-12-27 07:38:25 +00:00
Roland McGrath
432aaf5b3c * tst-oddstacklimit.c: New file.
* Makefile (tests): Add it.
	(tst-oddstacklimit-ENV): New variable.

	* init.c (__pthread_initialize_minimal_internal): Round stack rlimit
	value up to page size for __default_stacksize.
2003-12-23 23:07:41 +00:00
Ulrich Drepper
33ebea1784 Update.
2003-12-21  Ulrich Drepper  <drepper@redhat.com>

	* Makefile (tests): Add tst-eintr5.
	* tst-eintr5.c: New file.

	* eintr.c (eintr_source): Prevent sending signal to self.

	* tst-eintr2.c (tf1): Improve error message.
2003-12-21 20:05:47 +00:00
Ulrich Drepper
4efdd8d355 Update.
2003-12-19  Ulrich Drepper  <drepper@redhat.com>

	* eintr.c (setup_eintr): Add new parameter.  Pass to thread function.
	(eintr_source): If ARG != NULL, use pthread_kill.
	* tst-eintr1.c: Adjust for this change.
	* tst-eintr2.c: Likewise.
	* Makefile (tests): Add tst-eintr3 and tst-eintr4.
	* tst-eintr3.c: New file.
	* tst-eintr4.c: New file.

2003-12-19  Jakub Jelinek  <jakub@redhat.com>

	* libc-cancellation.c (__libc_enable_asynccancel): Don't cancel
	if CANCELSTATE_BITMASK is set.
	* sysdeps/pthread/librt-cancellation.c (__librt_enable_asynccancel):
	Likewise.

	* Makefile (tests): Add tst-cancel22 and tst-cancel23.
	(tests-reverse): Add tst-cancel23.
	* tst-cancel22.c: New test.
	* tst-cancel23.c: New test.
2003-12-20 06:34:59 +00:00
Ulrich Drepper
675620f74c Update.
2003-12-18  Ulrich Drepper  <drepper@redhat.com>

	* tst-eintr1.c: Better error messages.

	* Makefile (tests): Add tst-eintr2.
	* tst-eintr2.c: New file.

2003-12-18  Jakub Jelinek  <jakub@redhat.com>

	* Makefile (tests): Add tst-cancel21 and tst-cancelx21.
	(CFLAGS-tst-cancelx21.c): Set.
	* tst-cancel21.c: New test.
	* tst-cancelx21.c: New test.

	* unwind.c (FRAME_LEFT): Add adj argument.  Subtract it from each
	comparison operand.
	(unwind_stop): Use _JMPBUF_CFA_UNWINDS_ADJ macro instead of
	_JMPBUF_CFA_UNWINDS.  Adjust FRAME_LEFT invocations.
	* pt-longjmp.c: Include jmpbuf-unwind.h.
	(__pthread_cleanup_upto): Use _JMPBUF_UNWINDS_ADJ macro instead of
	_JMPBUF_UNWINDS.  Adjust compared pointers.
	* init.c (__pthread_initialize_minimal_internal): Initialize
	pd->stackblock_size.
	* sysdeps/pthread/jmpbuf-unwind.h: Removed.
	* sysdeps/alpha/jmpbuf-unwind.h: New file.
	* sysdeps/i386/jmpbuf-unwind.h: New file.
	* sysdeps/powerpc/jmpbuf-unwind.h: New file.
	* sysdeps/s390/jmpbuf-unwind.h: New file.
	* sysdeps/sh/jmpbuf-unwind.h: New file.
	* sysdeps/sparc/sparc32/jmpbuf-unwind.h: New file.
	* sysdeps/x86_64/jmpbuf-unwind.h: New file.
	* sysdeps/ia64/jmpbuf-unwind.h: Include stdint.h.
	(_JMPBUF_CFA_UNWINDS): Remove.
	(_JMPBUF_CFA_UNWINDS_ADJ, _JMPBUF_UNWINDS_ADJ): Define.

2003-12-12  Jakub Jelinek  <jakub@redhat.com>

	* Makefile (tests): Add tst-cancel20 and tst-cancelx20.
	(CFLAGS-tst-cancelx20.c): Set.
	* tst-cancel20.c: New test.
	* tst-cancelx20.c: New test.
2003-12-19 01:37:13 +00:00
Roland McGrath
01ff02d0d0 2003-12-17 Roland McGrath <roland@redhat.com>
* Makefile (tst-cancelx7-ARGS): New variable.
	Reportd by Greg Schafer <gschafer@zip.com.au>.
2003-12-18 02:17:43 +00:00
Ulrich Drepper
e796f92f68 Update.
2003-12-17  Jakub Jelinek  <jakub@redhat.com>

	* malloc/mtrace.c (tr_old_memalign_hook): New variable.
	(tr_memalignhook): New function.
	(mtrace): Register tr_memalignhook.
	(muntrace): Deregister tr_memalignhook.
	* malloc/malloc.c (__posix_memalign): If __memalign_hook != NULL,
	call it directly instead of memalign_internal.

2003-12-17  Ulrich Drepper  <drepper@redhat.com>

	* misc/mntent_r.c: Change encoding to match recently change decoder.
	Patch by Alexander Achenbach <xela@slit.de>.

2003-12-16  Steven Munroe  <sjmunroe@us.ibm.com>

	* sysdeps/unix/sysv/linux/powerpc/sys/ucontext.h: Correct definition of
	vrregset_t.

2003-12-16  Steven Munroe  <sjmunroe@us.ibm.com>

	* sysdeps/unix/sysv/linux/powerpc/sys/procfs.h [!__PPC64_ELF_H]: Extent
	conditional to include typedef elf_vrreg_t.

2002-12-17  Paolo Bonzini  <bonzini@gnu.org>

	* posix/regexec.c (re_search_internal): Limit search to the
	beginning of the buffer if the initial states are empty for
	contexts that do not include CONTEXT_BEGBUF or, if
	!preg->newline_anchor, that do not include any one of
	CONTEXT_BEGBUF and CONTEXT_NEWLINE.
2003-12-17 23:52:56 +00:00
Ulrich Drepper
c776b3d717 Update.
2003-12-02  David Mosberger  <davidm@hpl.hp.com>

	* sysdeps/ia64/elf/initfini.c: Add unwind info.

	* sysdeps/ia64/dl-machine.h (elf_machine_matches_host): Mark with
	attribute "unused".
	(elf_machine_dynamic): Mark with attributes "unused" and "const".
	(elf_machine_runtime_setup): Likewise.

	* sysdeps/generic/dl-fptr.c (make_fptr_table): Mark with
	attribute "always_inline".
	* sysdeps/ia64/dl-machine.h (__ia64_init_bootstrap_fdesc_table):
	Likewise.

	* configure.in: Check whether compiler has libunwind support.
	* config.make.in (have-cc-with-libunwind): New variable.
	* config.h.in (HAVE_CC_WITH_LIBUNWIND): New macro.
	* Makeconfig (gnulib): If have-cc-withh-libunwind is "yes", also
	mention -lunwind.

003-11-12  David Mosberger  <davidm@hpl.hp.com>

	* sysdeps/unix/sysv/linux/ia64/sysdep.h: Define DO_CALL_VIA_BREAK.
	Redefine DO_CALL to use vdso if supported, otherwise DO_CALL_VIA_BREAK.
	Likewise for DO_INLINE_SYSCALL.  Make INTERNAL_SYSCALL use
	DO_INLINE_SYSCALL.

	* sysdeps/unix/sysv/linux/ia64/vfork.S: Use DO_CALL_VIA_BREAK()
	instead of DO_CALL().

	* sysdeps/unix/sysv/linux/ia64/clone2.S: Use break directly instead
	of DO_CALL().

	* sysdeps/unix/sysv/linux/ia64/brk.S (__curbrk): Restructure it
	to take advantage of DO_CALL() macro.
	* sysdeps/unix/sysv/linux/ia64/setcontext.S: Likewise.
	* sysdeps/unix/sysv/linux/ia64/getcontext.S: Likewise.

	* elf/rtld.c (dl_main): Restrict dl_sysinfo_dso check to first
	program header.  On ia64, the check failed previously because
	there are two program headers.

	* sysdeps/generic/s_nexttowardf.c: Likewise.
	* math/bug-nexttoward.c: New file.
2003-12-10 23:02:33 +00:00
Andreas Jaeger
4980310856 * config.make.in (fno-unit-at-a-time): Define.
* configure.in: Add test for -fno-unit-at-a-time.
	Fix text for -fpie.

	* csu/Makefile (CFLAGS-initfini.s): Add $(fno_unit_at_a_time).
	* locale/Makefile (CFLAGS-loadlocale.c): Likewise.

For linuxthreads:
	* Makefile (CFLAGS-pt-initfini.s): Add $(fno_unit_at_a_time).
	* sysdeps/unix/sysv/linux/x86_64/Makefile (CFLAGS-pt-initfini.s):
	Likewise.

For nptl:
	* Makefile (CFLAGS-pt-initfini.s): Add $(fno_unit_at_a_time).
	* sysdeps/unix/sysv/linux/x86_64/Makefile (CFLAGS-pt-initfini.s):
	Likewise.
2003-12-02 07:37:28 +00:00
Ulrich Drepper
1d9b73ab80 Update.
2003-11-21  Jakub Jelinek  <jakub@redhat.com>

	* Makefile (distribute): Add tst-cleanup4aux.c.

	* tst-cond12.c (prepare): Add prototype.  Move after test-skeleton.c
	include.

	* tst-cond12.c (do_test): If USE_COND_SIGNAL is defined, use
	pthread_cond_signal.
2003-11-21 18:53:38 +00:00
Ulrich Drepper
bf68b2366d Update.
2003-11-21  Jakub Jelinek  <jakub@redhat.com>

	* posix/tst-rxspencer.c (mb_tests): Don't run identical multi-byte
	tests multiple times unnecessarily.

2003-11-21  Jakub Jelinek  <jakub@redhat.com>

	* posix/bug-regex19.c (BRE, ERE): Define.
	(tests): Add many new tests, remove UTF-8 ones.
	(do_one_test, do_mb_tests): New functions.
	(main): Rewritten using do_one_test and do_mb_tests.
2003-11-21 09:25:26 +00:00
Ulrich Drepper
53f9084e3f Update.
2003-11-21  Ulrich Drepper  <drepper@redhat.com>

	* Makefile: Add rules to build and run tst-cond12.
	* tst-cond12.c: New file.
2003-11-21 09:20:45 +00:00
Ulrich Drepper
c685b2b0b4 Update.
2003-11-06  Ulrich Drepper  <drepper@redhat.com>

	* Makefile: Add magic to clean up correctly.
2003-11-06 09:48:05 +00:00
Ulrich Drepper
44e941492d Update.
2003-11-05  Jakub Jelinek  <jakub@redhat.com>

	* unwind.c (FRAME_LEFT): Define.
	(unwind_stop): Handle old style cleanups here.
	(__pthread_unwind): Handle old style cleanups only if
	!HAVE_FORCED_UNWIND.
	* Makefile (tests): Add tst-cleanup4 and tst-cleanupx4.
	(CFLAGS-tst-cleanupx4.c): Add -fexceptions.
	($(objpfx)tst-cleanup4): Depend on $(objpfx)tst-cleanup4aux.o.
	($(objpfx)tst-cleanupx4): Likewise.
	* tst-cleanup4.c: New test.
	* tst-cleanup4aux.c: New.
	* tst-cleanupx4.c: New test.
2003-11-06 04:29:42 +00:00
Ulrich Drepper
1b6f6a92e3 Update.
2003-10-02  Jeroen Dekkers  <jeroen@dekkers.cx>

	* sysdeps/mach/hurd/malloc-machine.h: Copy the tsd code from
        the old thread-m.h header too.
2003-10-02 18:56:20 +00:00
Ulrich Drepper
c9c60884af Update.
2003-09-24  Ulrich Drepper  <drepper@redhat.com>
	* configure.in: Check for -fpie and -pie compiler options.
	* config.make.in (have-fpie): Define.
	* sysdeps/unix/sysv/linux/alpha/sys/sysmacros.h: Removed.
	* sysdeps/unix/sysv/linux/sparc/sys/sysmacros.h: Removed.
2003-09-24 08:33:01 +00:00
Ulrich Drepper
54ee14b388 Update.
2003-09-23  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/unix/sysv/linux/powerpc/powerpc32/Versions [libc]
	(GLIBC_2.3.3): Add setcontext, getcontext, swapcontext, and
	makecontext.
	* sysdeps/unix/sysv/linux/powerpc/sys/ucontext.h: Correct change
	for include Altivec support for PPC32.  It was not compatible.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/ucontext_i.h: Adjust
	offsets for ucontext_t change.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/getcontext.S: Adjust
	for ucontext_t change.  Add compatibility code.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/makecontext.S: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext.S: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext.S: Likewise.
	Patch by Paul Mackerras <paulus@samba.org>.

2003-02-25  Randolph Chung  <tausq@debian.org>

	* sysdeps/hppa/Makefile: Include compat code in build.
	* sysdeps/hppa/libgcc-compat.c: New file.
	* sysdeps/hppa/Dist: Add libgcc-compat.c.
	* sysdeps/hppa/Versions [GLIBC_2.2]: Add __clz_tab.
2003-09-24 03:22:56 +00:00
Ulrich Drepper
3a226d3301 Update.
* sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/lowlevelmutex.S: Removed.
	* sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S: Adjust
	for new mutex implementation.
	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S: 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/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.
	* sysdeps/unix/sysv/linux/x86_64/pthread_barrier_wait.S: Likewise
	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S: Likewise.
	* 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.
	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S: Likewise.
	Don't use requeue.
	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S: Likewise.
2003-09-22 04:41:12 +00:00
Ulrich Drepper
06f6ca9019 Update.
2003-09-17  Philip Blundell  <philb@gnu.org>

	* sysdeps/unix/sysv/linux/arm/vfork.S: Branch to fork if
	libpthread is loaded.  Elide backwards compatibility code when not
	required.
2003-09-17 18:23:49 +00:00
Ulrich Drepper
a4db3439f1 Update.
2003-09-15  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/i386/Makefile (sysdep-CFLAGS): If not in math or csu
	subdir, add -mpreferred-stack-boundary=4, with few exceptions.

2003-09-17  Jakub Jelinek  <jakub@redhat.com>

	* Makeconfig (stack-align-test-flags): Set.
	* stdlib/Makefile (CFLAGS-tst-bsearch.c): Add
	$(stack-align-test-flags).
	* stdlib/tst-bsearch.c: Include tst-stack-align.h.
	(align_check): New var.
	(comp): Use TEST_STACK_ALIGN macro.
	(do_test): Fail if align_check != 1.
	* sysdeps/generic/tst-stack-align.h: New file.
	* sysdeps/i386/i686/Makefile (stack-align-test-flags): Add -msse.
	* sysdeps/i386/i686/tst-stack-align.h: New file.
2003-09-17 08:47:44 +00:00
Ulrich Drepper
e07bb02a4f Update.
2003-09-15  Jakub Jelinek  <jakub@redhat.com>

	* argp/argp.h (argp_parse, __argp_parse): Remove __THROW.
	* argp/Makefile (CFLAGS-argp-help.c, CFLAGS-argp-parse.c): Add
	$(uses-callbacks).
	* dirent/Makefile (CFLAGS-scandir.c, CFLAGS-scandir64.c): Likewise.
	* elf/Makefile (CFLAGS-dl-iterate-phdr.c,
	CFLAGS-dl-iterate-phdr-static.c): Add $(uses-callbacks).
	* elf/dl-iteratephdr.c (cancel_handler): New function.
	(__dl_iterate_phdr): Add __libc_cleanup_{push,pop}.
	* elf/link.h (dl_iterate_phdr): Remove __THROW.
	* io/Makefile (CFLAGS-fts.c): Merge into one assignment.
	Add $(uses-callbacks).
	(CFLAGS-ftw.c, CFLAGS-ftw64.c): Add $(uses-callbacks).
	* misc/Makefile (CFLAGS-tsearch.c, CFLAGS-lsearch.c): Change
	$(exceptions) to $(uses-callbacks).
	* Makeconfig (uses-callbacks): Set to $(exceptions).
	* posix/Makefile (CFLAGS-glob.c, CFLAGS-glob64.c): Add
	$(uses-callbacks).
	* stdlib/Makefile (CFLAGS-bsearch.c, CFLAGS-msort.c, CFLAGS-qsort.c):
	Likewise.
2003-09-16 05:54:09 +00:00
Ulrich Drepper
4a244f0dce Update.
2003-09-02  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/unix/sysv/linux/alpha/Makefile (sysdep_routines): Remove
	rt_sigsuspend, rt_sigprocmask, rt_sigtimedwait, rt_sigqueueinfo and
	rt_sigpending.
	* sysdeps/unix/sysv/linux/alpha/sigaction.c (__syscall_rt_sigaction):
	New prototype.
	* sysdeps/unix/sysv/linux/arm/syscalls.list (__syscall_*): Remove
	unused __syscall_ stubs.
	* sysdeps/unix/sysv/linux/arm/Makefile (sysdep_routines): Remove
	rt_*.
	* sysdeps/unix/sysv/linux/cris/Makefile: Removed.
	* sysdeps/unix/sysv/linux/mips/mips64/syscalls.list
	(__syscall_recvfrom, __syscall_sendto): Remove unused aliases.
	* sysdeps/unix/sysv/linux/mips/syscalls.list (__syscall_*): Remove
	unused __syscall_ stubs.
	* sysdeps/unix/sysv/linux/mips/Makefile (sysdep_routines): Remove rt_*.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/syscalls.list
	(__syscall_*): Remove unused __syscall_ stubs.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/syscalls.list
	(__syscall_*): Likewise.
	* sysdeps/unix/sysv/linux/powerpc/Makefile (sysdep_routines): Remove
	rt_*.
	* sysdeps/unix/sysv/linux/s390/s390-64/syscalls.list (__syscall_*):
	Remove unused __syscall_ stubs.
	* sysdeps/unix/sysv/linux/sh/Makefile (sysdep_routines): Remove rt_*.
	* sysdeps/unix/sysv/linux/rt_sigaction.c: Removed.
	* sysdeps/unix/sysv/linux/rt_sigpending.c: Removed.
	* sysdeps/unix/sysv/linux/rt_sigprocmask.c: Removed.
	* sysdeps/unix/sysv/linux/rt_sigqueueinfo.c: Removed.
	* sysdeps/unix/sysv/linux/rt_sigreturn.c: Removed.
	* sysdeps/unix/sysv/linux/rt_sigsuspend.c: Removed.
	* sysdeps/unix/sysv/linux/rt_sigtimedwait.c: Removed.
	* sysdeps/unix/sysv/linux/s_pread64.c: Removed.
	* sysdeps/unix/sysv/linux/s_pwrite64.c: Removed.
	* sysdeps/unix/sysv/linux/alpha/gethostname.c: Remove unused
	__syscall_* prototypes.
	* sysdeps/unix/sysv/linux/alpha/ipc_priv.h: Likewise.
	* sysdeps/unix/sysv/linux/alpha/msgctl.c: Likewise.
	* sysdeps/unix/sysv/linux/alpha/semctl.c: Likewise.
	* sysdeps/unix/sysv/linux/alpha/shmctl.c: Likewise.
	* sysdeps/unix/sysv/linux/arm/sigaction.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/chown.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/fchown.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/fcntl.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/fxstat.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/getegid.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/geteuid.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/setuid.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/getgid.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/getgroups.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/getmsg.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/xstat.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/getresgid.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/getresuid.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/getrlimit.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/getuid.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/lchown.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/lockf64.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/lxstat.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/putmsg.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/setfsgid.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/setfsuid.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/setgid.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/setgroups.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/setregid.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/setresgid.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/setresuid.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/setreuid.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/setrlimit.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/sigaction.c: Likewise.
	* sysdeps/unix/sysv/linux/ia64/fxstat.c: Likewise.
	* sysdeps/unix/sysv/linux/ia64/lxstat.c: Likewise.
	* sysdeps/unix/sysv/linux/ia64/sigaction.c: Likewise.
	* sysdeps/unix/sysv/linux/ia64/sigpending.c: Likewise.
	* sysdeps/unix/sysv/linux/ia64/sigprocmask.c: Likewise.
	* sysdeps/unix/sysv/linux/ia64/sigsuspend.c: Likewise.
	* sysdeps/unix/sysv/linux/ia64/xstat.c: Likewise.
	* sysdeps/unix/sysv/linux/m68k/chown.c: Likewise.
	* sysdeps/unix/sysv/linux/mips/ftruncate64.c: Likewise.
	* sysdeps/unix/sysv/linux/mips/pread.c: Likewise.
	* sysdeps/unix/sysv/linux/mips/pread64.c: Likewise.
	* sysdeps/unix/sysv/linux/mips/ptrace.c: Likewise.
	* sysdeps/unix/sysv/linux/mips/pwrite.c: Likewise.
	* sysdeps/unix/sysv/linux/mips/pwrite64.c: Likewise.
	* sysdeps/unix/sysv/linux/mips/sigaction.c: Likewise.
	* sysdeps/unix/sysv/linux/mips/truncate64.c: Likewise.
	* sysdeps/unix/sysv/linux/mips/ustat.c: Likewise.
	* sysdeps/unix/sysv/linux/mips/xmknod.c: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/chown.c: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/ioctl.c: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/chown.c: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/lchown.c: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-64/xstat.c: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-64/fxstat.c: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-64/lxstat.c: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-64/sigaction.c: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-64/sigpending.c: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-64/sigprocmask.c: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-64/sigsuspend.c: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/sigpending.c: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/sigprocmask.c: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/sigaction.c: Likewise.
	* sysdeps/unix/sysv/linux/pwrite.c: Likewise.
	* sysdeps/unix/sysv/linux/execve.c: Likewise.
	* sysdeps/unix/sysv/linux/aio_sigqueue.c: Likewise.
	* sysdeps/unix/sysv/linux/reboot.c: Likewise.
	* sysdeps/unix/sysv/linux/_exit.c: Likewise.
	* sysdeps/unix/sysv/linux/ftruncate64.c: Likewise.
	* sysdeps/unix/sysv/linux/pwrite64.c: Likewise.
	* sysdeps/unix/sysv/linux/fxstat64.c: Likewise.
	* sysdeps/unix/sysv/linux/gai_sigqueue.c: Likewise.
	* sysdeps/unix/sysv/linux/readahead.c: Likewise.
	* sysdeps/unix/sysv/linux/getcwd.c: Likewise.
	* sysdeps/unix/sysv/linux/sigwait.c: Likewise.
	* sysdeps/unix/sysv/linux/getdents.c: Likewise.
	* sysdeps/unix/sysv/linux/readv.c: Likewise.
	* sysdeps/unix/sysv/linux/getpriority.c: Likewise.
	* sysdeps/unix/sysv/linux/sigaction.c: Likewise.
	* sysdeps/unix/sysv/linux/ipc_priv.h: Likewise.
	* sysdeps/unix/sysv/linux/llseek.c: Likewise.
	* sysdeps/unix/sysv/linux/sysctl.c: Likewise.
	* sysdeps/unix/sysv/linux/lxstat64.c: Likewise.
	* sysdeps/unix/sysv/linux/mmap64.c: Likewise.
	* sysdeps/unix/sysv/linux/ustat.c: Likewise.
	* sysdeps/unix/sysv/linux/poll.c: Likewise.
	* sysdeps/unix/sysv/linux/pread64.c: Likewise.
	* sysdeps/unix/sysv/linux/writev.c: Likewise.
	* sysdeps/unix/sysv/linux/pread.c: Likewise.
	* sysdeps/unix/sysv/linux/ptrace.c: Likewise.
	* sysdeps/unix/sysv/linux/sigpending.c: Likewise.
	* sysdeps/unix/sysv/linux/sigprocmask.c: Likewise.
	* sysdeps/unix/sysv/linux/sigqueue.c: Likewise.
	* sysdeps/unix/sysv/linux/sigsuspend.c: Likewise.
	* sysdeps/unix/sysv/linux/sigtimedwait.c: Likewise.
	* sysdeps/unix/sysv/linux/sigwaitinfo.c: Likewise.
	* sysdeps/unix/sysv/linux/truncate64.c: Likewise.
	* sysdeps/unix/sysv/linux/xmknod.c: Likewise.
	* sysdeps/unix/sysv/linux/xstat64.c: Likewise.

2003-09-02  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/unix/sysv/linux/i386/sysdep.h (PSEUDO): Revert last change.
	* sysdeps/unix/sysv/linux/powerpc/syscalls.list: New file.
	* sysdeps/unix/sysv/linux/sparc/syscalls.list: New file.

	* stdio-common/Makefile (CFLAGS-vprintf.c): Add -fexceptions.

	* intl/loadmsgcat.c: For _LIBC, call not cancelable versions of
	open, close, and read.
2003-09-03 03:22:23 +00:00
Ulrich Drepper
c874a32e88 Update.
2003-09-01  Jakub Jelinek  <jakub@redhat.com>

	* Makefile (tests): Add tst-tls1.
	(module-names): Add tst-tls1mod{,a,b,c,d,e,f}.
	($(objpfx)tst-tls1mod{,a,b,c,d,e,f}.so-no-z-defs): Set to yes.
	($(objpfx)tst-tls1): New.
	($(objpfx)tst-tls2.out): Likewise.
	(tests): Depend on $(objpfx)tst-tls2.out.
	* tst-tls1.c: New test.
	* tst-tls1.h: New.
	* tst-tls1mod.c: New.
	* tst-tls1moda.c: New.
	* tst-tls1modb.c: New.
	* tst-tls1modc.c: New.
	* tst-tls1modd.c: New.
	* tst-tls1mode.c: New.
	* tst-tls1modf.c: New.
	* tst-tls2.sh: New test.
2003-09-02 00:33:28 +00:00
Ulrich Drepper
f1205aa71f Update.
* sysdeps/pthread/createthread.c (do_clone): If __ASSUME_CLONE_STOPPED
	is not defined, do explicit synchronization.
	(create_thread): Do not lock pd->lock here.  If __ASSUME_CLONE_STOPPED
	is not defined also unlock pd->lock for non-debugging case in case
	it is necessary.
	* pthread_create.c (start_thread): Always get and release pd->lock
	if __ASSUME_CLONE_STOPPED is not defined.
	(start_thread_debug): Removed.  Adjust users.
	* allocatestack.c (allocate_stack): Always initialize lock if
	__ASSUME_CLONE_STOPPED is not defined.
	* Makefile (tests): Add tst-sched1.
	* tst-sched1.c: New file.
2003-08-03 06:47:02 +00:00
Ulrich Drepper
adc12574e5 Update.
2003-07-30  Jakub Jelinek  <jakub@redhat.com>

	* elf/dl-reloc.c (_dl_allocate_static_tls): Don't return any value,
	call dl_signal_error directly.  If already relocated, call
	GL(dl_init_static_tls) directly, otherwise queue it for later.
	(CHECK_STATIC_TLS): Undo 2003-07-24 change.
	* elf/rtld.c (dl_main): Initialize GL(dl_init_static_tls).
	* elf/dl-open.c (dl_open_worker): Call GL_dl_init_static_tls
	for all static TLS initializations delayed in _dl_allocate_static_tls.
	* elf/dl-support.c (_dl_init_static_tls): New variable.
	* include/link.h (struct link_map): Add l_need_tls_init.
	* sysdeps/generic/ldsodefs.h (_rtld_global): Add _dl_init_static_tls.
	(_dl_nothread_init_static_tls): New prototype.
	(_dl_allocate_static_tls): Adjust prototype.

	* elf/tls-macros.h (VAR_INT_DEF): Add alignment directive.

	elf_machine_rela_relative): Adjust.
	(CHECK_STATIC_TLS): _dl_allocate_static_tls can fail now.
2003-07-31 07:42:20 +00:00
Roland McGrath
5181d776e8 * elf/Makefile (tests) [$(build-shared) = yes]:
Depend on $(test-modules).
	* dlfcn/Makefile: Likewise.
2003-07-29 08:36:30 +00:00
Ulrich Drepper
9d79e0377b Update.
* include/stdio.h (__libc_fatal): Add libc_hidden_proto.
	* include/dlfcn.h (__libc_dlopen_mode, __libc_dlsym, __libc_dlclose):
	Likewise.
	* elf/dl-libc.c (__libc_dlopen_mode, __libc_dlsym, __libc_dlclose):
	Add libc_hidden_def.
	* sysdeps/generic/libc_fatal.c (__libc_fatal): Likewise.
	* sysdeps/posix/libc_fatal.c (__libc_fatal): Likewise.
	* sysdeps/unix/sysv/linux/libc_fatal.c (__libc_fatal): Likewise.
	* elf/Versions (libc): Export __libc_dlopen_mode@@GLIBC_PRIVATE,
	__libc_dlsym@@GLIBC_PRIVATE and __libc_dlclose@@GLIBC_PRIVATE.
	* libio/Versions (libc): Export __libc_fatal@@GLIBC_PRIVATE.
	* sysdeps/generic/unwind-dw2.c: Readd #ifs removed during last
	change.
	* sysdeps/generic/unwind.inc: Removed.
2003-07-22 23:56:53 +00:00
Ulrich Drepper
0e9d624072 Update.
2003-07-22  Jakub Jelinek  <jakub@redhat.com>

	* include/resolv.h (__resp): Declare.  Define to __libc_resp
	if in libc.so.
	(_res): If USE___THREAD, define to (*__resp).
	* resolv/res_libc.c (_res): Normal .bss variable with compat_symbol
	even if USE___THREAD.
	(__resp): New __thread variable.
	(__libc_resp): New alias.
	* resolv/Versions (libc): Export _res@GLIBC_2.0 even if
	USE_TLS && HAVE___THREAD.  Export __resp@@GLIBC_PRIVATE.
	* sysdeps/generic/res-state.c (__res_state): Return __resp
	if USE___THREAD.
2003-07-22 23:10:17 +00:00
Ulrich Drepper
1a379ea0c7 Update.
2003-07-21  Ulrich Drepper  <drepper@redhat.com>

	* Makerules (build-module-helper): Add -z defs unless explicitly said
	not to do it.
	* dlfcn/Makefile: Define various *-no-z-defs variables for test DSOs
	which has undefined symbols.
	* elf/Makefile: Likewise.
2003-07-21 22:40:24 +00:00
Ulrich Drepper
80f536dbf2 Update.
2003-07-20  Ulrich Drepper  <drepper@redhat.com>

	* Makefile (libpthread-routines): Add pthread_attr_getaffinity and
	pthread_attr_setaffinity.
	* Versions [libpthread] (GLIBC_2.3.3): Likewise.
	* sysdeps/unix/sysv/linux/pthread_attr_getaffinity.c: New file.
	* sysdeps/unix/sysv/linux/pthread_attr_setaffinity.c: New file.
	* pthread_attr_destroy.c: Free cpuset element if allocated.
	* pthread_create.c: Pass iattr as additional parameter to
	create_thread.
	* sysdeps/pthread/createthread.c: If attribute is provided and
	a new thread is created with affinity set or scheduling parameters,
	start thread with CLONE_STOPPED.
	* sysdeps/pthread/pthread.h: Declare pthread_attr_getaffinity and
	pthread_attr_setaffinity.
	* sysdeps/unix/sysv/linux/internaltypes.h (struct pthread_attr): Add
	cpuset element.
2003-07-20 08:56:05 +00:00
Ulrich Drepper
6080ecdf3c Update.
* sysdeps/unix/sysv/linux/sigwait.c: Include string.h.
	* sysdeps/unix/sysv/linux/sigwaitinfo.c: Likewise.
	* sysdeps/unix/sysv/linux/sigtimedwait.c: Likewise.
	* sysdeps/unix/sysv/linux/sleep.c (__sleep): Cast value to unsigned
	int before assigning to max to avoid warnings.

2003-07-11  Jakub Jelinek  <jakub@redhat.com>
2003-07-11 22:50:16 +00:00
Ulrich Drepper
96c814d3d8 Update.
* sysdeps/unix/sysv/linux/unwindbuf.sym: New file.
	* sysdeps/unix/sysv/linux/Makefile: Add rule to build unwindbuf.h.
2003-07-01 03:33:06 +00:00
Ulrich Drepper
4165d44d70 Update.
* include/time.h: Define CLOCK_IDFIELD_SIZE.
	* sysdeps/posix/clock_getres.c: Recognize thread CPU clock IDs.
	* sysdeps/unix/clock_gettime.c: Likewise.
	* sysdeps/unix/clock_settime.c: Likewise.
	* sysdeps/unix/clock_nanosleep.c (CPUCLOCK_P): Adjust for new
	clock id for thread CPU clocks.
2003-06-25 00:00:50 +00:00
Ulrich Drepper
6162364368 Update.
2003-06-22  Ulrich Drepper  <drepper@redhat.com>

	* pthreadP.h (__pthread_mutex_init_internal): Mark hidden.
	(__pthread_mutex_lock_internal): Likewise.
	(__pthread_mutex_unlock_internal): Likewise.
	(__pthread_mutex_unlock_usercnt): Declare.
	* pthread_mutex_destroy.c: Always fail if used in any way.
	* pthread_mutex_init.c: Update comment.
	* pthread_mutex_lock.c: If NO_INCR is not defined adjust __nusers.
	* pthread_mutex_timedlock.c: Adjust __nusers.
	* pthread_mutex_trylock.c: Adjust __nusers.
	* pthread_mutex_unlock.c: Old code is in __pthread_mutex_unlock_usercnt
	and public interfaces are wrapper with pass additional parameter.
	__pthread_mutex_unlock_usercnt does not adjust __nusers if second
	parameter zero.
	* tst-mutex8.c: New file.
	* Makefile (tests): Add tst-mutex8.
	* sysdeps/pthread/pthread_cond_timedwait.c: Call
	__pthread_mutex_unlock_usercnt.
	* sysdeps/pthread/pthread_cond_wait.c: 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.
	* sysdeps/unix/sysv/linux/pthread_mutex_cond_lock.c: Define NO_INCR.
	* sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_mutex_t):
	Add __nusers.
	* sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
	* sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
	* sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.

	* pthread_mutex_lock.c: Don't store THREAD_ID in __owner, use TID.
	* pthread_mutex_timedlock.c: Likewise.
	* pthread_mutex_trylock.c: Adjust __nusers.
	* pthread_mutex_unlock.c: Compare with TID not THREAD_ID.
	* tst-mutex9.c: New file.
	* Makefile (tests): Add tst-mutex9.
	* sysdeps/i386/tls.h: Remove THREAD_ID definition.
	* sysdeps/ia64/tls.h: Likewise.
	* sysdeps/powerpc/tls.h: Likewise.
	* sysdeps/s390/tls.h: Likewise.
	* sysdeps/sh/tls.h: Likewise.
	* sysdeps/x86_64/tls.h: Likewise.
	* sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_mutex_t):
	Change type of __owner.
	* sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
	* sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
	* sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
2003-06-22 23:55:27 +00:00
Ulrich Drepper
1d53508d2c Update.
* sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (lll_mutex_lock):
	Add ax to clobber list.
	(lll_mutex_cond_lock): Likewise.
	(lll_mutex_unlock): Likewise.
	(lll_lock): Likewise.
	(lll_unlock): Likewise.
2003-06-18 00:00:50 +00:00
Ulrich Drepper
f23b30e23b Update.
2003-06-17  Jakub Jelinek  <jakub@redhat.com>

	* posix/regcomp.c (build_word_op): Use alnum instead of alpha class.
2003-06-17 22:40:05 +00:00
Ulrich Drepper
60d73a7ac4 Update.
* sysdeps/unix/clock_nanosleep.c (clock_nanosleep): nanosleep
	takes care of enabling cancellation.

	* sysdeps/pthread/aio_suspend.c (aio_suspend): Make aio_suspend
	cancelable.  It's not correct to disable cancellation.  Instead of
	a cleanup handler.
2003-06-17 22:11:22 +00:00
Ulrich Drepper
2667645020 Update.
2003-06-17  Ulrich Drepper  <drepper@redhat.com>

	* tst-cancel4.c: Add tests for the socket and signal functions, pause.
	Also test early cancellation before the thread reaches the cancellation
	point.

	* Makefile: Compile forward.c with exceptions.

	* sysdeps/unix/sysv/linux/sleep.c: New file.
2003-06-17 08:44:32 +00:00
Ulrich Drepper
0e0deb0360 Update.
* Makefile: Add CFLAGS definition to compile function wrappers
	duplicated from libc with exceptions.
	* tst-cancel4.c: Also check cancellation handlers.
2003-06-16 19:39:00 +00:00
Ulrich Drepper
4cfde89657 Update.
2003-06-16  Ulrich Drepper  <drepper@redhat.com>

	* elf/rtld.c (dl_main): Use l_map_start not l_addr in Phdr
	computation so that prelinking wroks.

	* inet/netinet/ip6.h (IP6OPT_PAD1, IP6OPT_PADN): Define.
2003-06-16 07:39:03 +00:00
Ulrich Drepper
7726edc273 Update.
2003-06-07  Ulrich Drepper  <drepper@redhat.com>

	* cleanup_routine.c: New file.
	* Versions (libpthread) [GLIBC_2.3.3]: Add __pthread_cleanup_routine.
	* sysdeps/pthread/pthread.h: Add support for fully exception-based
	cleanup handling.
	* Makefile (libpthread-routines): Add cleanup_routine.
	Add more CFLAGS variables to compile with exceptions.  Add comments
	why which file needs unwind tables.
	(tests) [have-forced-unwind==yes]: Add tst-cancelx* and tst-cleanupx*
	tests.
	* tst-cancelx1.c: New file.
	* tst-cancelx2.c: New file.
	* tst-cancelx3.c: New file.
	* tst-cancelx4.c: New file.
	* tst-cancelx5.c: New file.
	* tst-cancelx6.c: New file.
	* tst-cancelx7.c: New file.
	* tst-cancelx8.c: New file.
	* tst-cancelx9.c: New file.
	* tst-cancelx10.c: New file.
	* tst-cancelx11.c: New file.
	* tst-cancelx12.c: New file.
	* tst-cancelx13.c: New file.
	* tst-cancelx14.c: New file.
	* tst-cancelx15.c: New file.
	* tst-cleanupx0.c: New file.
	* tst-cleanupx0.expect: New file.
	* tst-cleanupx1.c: New file.
	* tst-cleanupx2.c: New file.
	* tst-cleanupx3.c: New file.

	* tst-cleanup0.c: Make standard compliant.
	* tst-cleanup1.c: Likewise.

	* sysdeps/unix/sysv/linux/sem_timedwait.c: Add cancellation support.
	* sysdeps/unix/sysv/linux/sem_wait.c: Likewise.
	* 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_timedwait.S: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Likewise.
	* sysdeps/i386/tcb-offsets.sym: Add RESULT, CANCELHANDLING, and
	CLEANUP_JMP_BUF.
	* sysdeps/x86_64/tcb-offsets.sym: Likewise.
	* tst-cancel12.c: New file.
	* tst-cancel13.c: New file.
	* tst-cancel14.c: New file.
	* tst-cancel15.c: New file.
	* Makefile (tests): Add tst-cancel12, tst-cancel13, tst-cancel14,
	and tst-cancel15.

	* tst-cancel1.c: Add some comments.

	* sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Compute relative
	timeout correctly.
2003-06-08 05:28:14 +00:00
Ulrich Drepper
8d74bceb3e (CFLAGS-pthread_cancel.c): Define. 2003-06-06 07:51:02 +00:00
Ulrich Drepper
4ad0bbf4fa Update.
2003-06-05  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_rwlock_t):
	Change type of __writer element to int.
	* sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
	* sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
	* sysdeps/i386/tcb-offsets.sym: Replace SELF entry with TID entry.
	* sysdeps/x86_64/tcb-offsets.sym: Likewise.
	* pthread_rwlock_trywrlock.c: Store TID not self pointer in __writer.
	Compare with TID to determine deadlocks.
	* sysdeps/pthread/pthread_rwlock_rdlock.c: Likewise.
	* sysdeps/pthread/pthread_rwlock_timedrdlock.c: Likewise.
	* sysdeps/pthread/pthread_rwlock_timedwrlock.: Likewise.
	* sysdeps/pthread/pthread_rwlock_wrlock.c: Likewise.
	* 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_wrlock.S: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S: Likewise.
	* 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_wrlock.S: Likewise.
	* Makefile (tests): Add tst-rwlock12.
	* tst-rwlock12.c: New file.
2003-06-05 19:31:57 +00:00
Ulrich Drepper
6f1acb30c1 Update.
* test-skeleton.c (main): Request getopt to not reorder the
	command line.
2003-06-01 18:07:34 +00:00
Ulrich Drepper
dcfc822431 Update.
* Makefile (tests): Add tst-sem8 and tst-sem9.
	* tst-sem8.c: New file.
	* tst-sem9.c: New file.
	* sem_open.c: Fix creation of in_use record if the file exists but
	no internal record.
2003-05-31 19:58:46 +00:00
Ulrich Drepper
586d174837 Update.
* Makefile (tests): Add tst-signal6.
	* tst-signal6.c: New file.
2003-05-30 06:03:38 +00:00
Ulrich Drepper
fddfebbd10 Update.
2003-05-17  Ulrich Drepper  <drepper@redhat.com>

	* sem_open.c: Fix one endless loop.  Implement correct semantics
	wrt opening the same semaphore more then once.
	* sem_close.c: Adjust for sem_open change.
	* semaphoreP.h: Include <semaphore.h>.  Define struct inuse_sem.
	Declare __sem_mappings, __sem_mappings_lock, __sem_search.
	* Makefile (tests): Add tst-sem7.
	* tst-sem7.c: New file.
2003-05-17 20:53:32 +00:00
Ulrich Drepper
855dba3ccb Update.
2003-05-14  Ulrich Drepper  <drepper@redhat.com>

	* Makefile ($(objpfx)$(multidir)): Add rule to create the directory.
2003-05-14 23:26:21 +00:00
Ulrich Drepper
81f3ac4c9a Update.
2003-05-14  Jakub Jelinek  <jakub@redhat.com>

	* elf/rtld.c (dl_main): For LD_TRACE_PRELINKING print search scope
	even if no DT_NEEDED is present.
2003-05-14 21:40:32 +00:00
Ulrich Drepper
949ec76407 Update.
* posix/sched.h: Change prototypes of sched_getaffinity and
	sched_setaffinity.  Define CPU_SET, CPU_CLR, CPU_ISSET, and CPU_ZERO.
	* sysdeps/generic/sched_getaffinity.c: Adjust definition.
	* sysdeps/generic/sched_setaffinity.c: Likewise.
	* sysdeps/generic/bits/sched.h: Define __CPU_SETSIZE, __NCPUBITS,
	__CPUELT, __CPUMASK, cpu_set_t, __cpu_mask, __CPU_ZERO, __CPU_SET,
	__CPU_CLR, and __CPU_ISSET.
	* sysdeps/unix/sysv/linux/bits/sched.h: Likewise.
	* sysdeps/unix/sysv/linux/sched_getaffinity.c: New file.
	* sysdeps/unix/sysv/linux/sched_setaffinity.c: New file.

	* include/atomic.h (atomic_exchange_acq): Renamed from atomic_exchange.
	(atomic_exchange_rel): New #define.
	* sysdeps/ia64/bits/atomic.h: Likewise.
	* sysdeps/i386/i486/bits/atomic.h (atomic_exchange_acq): Renamed from
	atomic_exchange.
	* sysdeps/m68k/m68020/bits/atomic.h: Likewise.
	* sysdeps/powerpc/bits/atomic.h: Likewise.
	* sysdeps/sparc/sparc32/sparcv9/bits/atomic.h: Likewise.
	* sysdeps/sparc/sparc64/bits/atomic.h: Likewise.
	* sysdeps/x86_64/bits/atomic.h: Likewise.
	* csu/tst-atomic.c: Use atomic_exchange_acq instead of atomic_exchange.
2003-05-10 05:36:37 +00:00
Roland McGrath
c6696b7957 * csu/Makefile ($(csu-dummies) target rule): Don't use a temp C file.
Depend on $(before-compile).
2003-05-04 23:27:34 +00:00
Roland McGrath
5fadaa045c 2003-04-26 Roland McGrath <roland@redhat.com>
* Makefile ($(test-modules)): Depend on $(common-objpfx)shlib.lds.
2003-04-28 10:34:34 +00:00
Ulrich Drepper
08c765fa6e Update.
2003-04-13  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Add
	unwind info.
	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.

	* Makefile: Make sure all cancellation points are compiled with
	exception and asynchronous unwind tables.
2003-04-13 08:04:46 +00:00
Ulrich Drepper
09d65ff393 Update.
2003-04-11  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/generic/libc-start.c: Cleanup MAIN_AUXVEC_ARG handling.
	Remove HAVE_CANCELBUF code.  Replace with code using the new
	initializers for unwind-based cleanup handling.
	* sysdeps/generic/unwind.h: Update from latest gcc version.
	* sysdeps/unix/sysv/linux/i386/sysdep.h: Define labels in a few
	places to allow unwind data generation.
	* sysdeps/i386/bits/setjmp.h: Allow file to be included multiple times.
	* sysdeps/x86_64/bits/setjmp.h: Likewise.
	* sysdeps/sh/bits/setjmp.h: Likewise.
	* sysdeps/powerpc/bits/setjmp.h: Likewise.
	* sysdeps/unix/sysv/linux/ia64/bits/setjmp.h: Likewise.
	* sysdeps/alpha/bits/setjmp.h: Likewise.
2003-04-12 00:58:26 +00:00
Roland McGrath
49916ec40a 2003-04-11 Roland McGrath <roland@redhat.com>
* Makefile ($(objpfx)multidir.mk): New target, generated makefile that
	sets variable `multidir'; include that.
	(generated): Add it.
	($(objpfx)$(multidir)/crti.o): New target.
	[$(multidir) != .] (generated-dirs, extra-objs, omit-deps): Add it.
2003-04-12 00:00:30 +00:00
Ulrich Drepper
b2041097f6 Update.
2003-04-09  Ulrich Drepper  <drepper@redhat.com>

	* Makefile (tests): Add tst-detach1.
	* tst-detach1.c: New file.
2003-04-09 14:40:34 +00:00
Ulrich Drepper
86246935da Update.
2003-04-03  Ulrich Drepper  <drepper@redhat.com>

	* init.c (sigcancel_handler): Don't set EXITING_BIT here.
	* libc-cancellation.c (__libc_enable_asynccancel): Likewise.
	* pthreadP.h (__do_cancel): Set EXITING_BIT here.
	* Makefile (tests): Add tst-cancel11.
	* tst-cancel11.c: New file.
2003-04-04 07:59:55 +00:00
Ulrich Drepper
14c65d07e7 (tests): Add tst-tsd4. 2003-04-02 04:00:15 +00:00
Ulrich Drepper
6b4686a534 Update.
2003-04-01  Ulrich Drepper  <drepper@redhat.com>

	* pthread_create.c (deallocate_tsd): Clear/free memory after the last
	round, not the first.  Use specific_used flag instead of local
	found_nonzero variable.  Use THREAD_[SG]ETMEM where possible.
	(__free_tcb): Don't call deallocate_tsd here.
	(start_thread): Call deallocate_tsd here.
	* pthread_setspecific.c: Set specific_used flag really only when
	needed.
	* Makefile (tests): Add tst-tsd3.c
	* tst-tsd3.c: New file.
2003-04-02 03:51:24 +00:00
Ulrich Drepper
211d90c524 Update.
* sysdeps/unix/sysv/linux/ia64/lowlevellock.h (__lll_mutex_lock):
	Use atomic_exchange_and_add instead of __lll_add.
	(__lll_mutex_timedlock): Likewise.
	Patch by Ian Wienand.

2003-03-24  Steven Munroe  <sjmunroe@us.ibm.com>

	* sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h
	(SINGLE_THREAD_P): Fix typo.
	* tst-cancel-wrappers.sh: Handle '.'ed symbols.

2003-03-31  Ulrich Drepper  <drepper@redhat.com>

	* Makefile (tests): Add tst-align.
	* tst-align.c: New file.
	* sysdeps/i386/Makefile: Define CFLAGS-tst-align.
	* sysdeps/x86_64/Makefile: Likewise.

	* tst-tsd2.c: Add casts to avoid warnings.
2003-04-01 01:24:00 +00:00
Ulrich Drepper
cc4f0dde88 (libpthread-routines): Add pthread_atfork. (libpthread-static-only-routines): Add pthread_atfork. 2003-03-29 08:30:34 +00:00
Ulrich Drepper
ac9e0aa1b0 Update.
* Makefile (tests): Add tst-cond11.
	* tst-cond11.c: New file.
2003-03-19 00:38:11 +00:00
Ulrich Drepper
86a9ee5e87 Update.
2003-03-18  Ulrich Drepper  <drepper@redhat.com>

	* pthread_condattr_getclock.c: New file.
	* pthread_condattr_setclock.c: New file.
	* sysdeps/pthread/pthread.h: Declare these new functions.
	* Versions [GLIBC_2.3.3] (libpthread): Add the new functions.
	* Makefile (libpthread-routines): Add the new functions.
	* sysdeps/unix/sysv/linux/internaltypes.h (struct pthread_condattr):
	Renamed field to value.  Document use of the bits.
	* pthread_condattr_getpshared.c: Adjust for struct pthread_condattr
	change.
	* pthread_condattr_setpshared.c: Likewise.
	* sysdeps/unix/sysv/linux/lowlevelcond.sym: Add cond_clock symbol.
	* sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_cond_t):
	Add __clock field.
	* sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
	* sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
	* sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Likewise.
	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S:
	Implement clock selection.
	* sysdeps/pthread/pthread_cond_timedwait.c: Likewise.
	* pthread-errnos.sym: Add ENOSYS.
	* sysdeps/unix/sysv/linux/bits/posix_opt.h: Define
	_POSIX_CLOCK_SELECTION.
	* sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.

	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Remove
	invalid .size directive.
2003-03-18 11:17:57 +00:00
Roland McGrath
415ef7d893 * allocatestack.c (__stack_user): Use hidden_data_def.
* pthread_create.c (__pthread_keys): Likewise.

	* init.c [__powerpc__] (__NR_set_tid_address): Define it.

	* tst-fork4.c: New file.
	* Makefile (tests): Add it.
2003-03-14 23:12:09 +00:00
Roland McGrath
0bb2ac85a6 * pthread-errnos.sym: New file.
* Makefile (gen-as-const-headers): New variable, list that file.
	* sysdeps/unix/sysv/linux/i386/i486/sem_wait.S: Include generated
	header <pthread-errnos.h> instead of defining errno values here.
	* sysdeps/unix/sysv/linux/i386/i486/sem_trywait.S: Likewise.
	* sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: Likewise.
	* sysdeps/unix/sysv/linux/i386/i486/sem_post.S: Likewise.
	* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
	* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
	Likewise.
	* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
	Likewise.
	* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Likewise.
	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
	* sysdeps/unix/sysv/linux/i386/i486/lowlevelmutex.S: Likewise.
	* sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/sem_trywait.S: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/sem_post.S: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/lowlevelmutex.S: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Likewise.
	* sysdeps/unix/sysv/linux/sh/sem_trywait.S: Likewise.
	* sysdeps/unix/sysv/linux/sh/sem_timedwait.S: Likewise.
	* sysdeps/unix/sysv/linux/sh/sem_post.S: Likewise.
	* sysdeps/unix/sysv/linux/sh/sem_wait.S: Likewise.
	* sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: Likewise.
	* sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S: Likewise.
	* sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S: Likewise.
	* sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise.
	* sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: Likewise.
	* sysdeps/unix/sysv/linux/sh/lowlevellock.S: Likewise.
	* sysdeps/unix/sysv/linux/sh/lowlevelmutex.S: Likewise.
	* sysdeps/i386/i486/pthread_spin_trylock.S: Likewise.
	* sysdeps/x86_64/pthread_spin_trylock.S: Likewise.
	* sysdeps/sh/pthread_spin_trylock.S: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S: Likewise.

	* sysdeps/unix/sysv/linux/fork.c: Add an assert to check that
	CLONE_CHILD_SETTID worked.
2003-03-12 10:30:26 +00:00
Roland McGrath
326132dbdb 2003-03-12 Roland McGrath <roland@redhat.com>
* pthread-errnos.sym: New file.
	* Makefile (gen-as-const-headers): New variable, list that file.
	* sysdeps/unix/sysv/linux/i386/i486/sem_wait.S: Include generated
	header <pthread-errnos.h> instead of defining errno values here.
	* sysdeps/unix/sysv/linux/i386/i486/sem_trywait.S: Likewise.
	* sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: Likewise.
	* sysdeps/unix/sysv/linux/i386/i486/sem_post.S: Likewise.
	* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
	* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
	Likewise.
	* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
	Likewise.
	* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Likewise.
	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
	* sysdeps/unix/sysv/linux/i386/i486/lowlevelmutex.S: Likewise.
	* sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/sem_trywait.S: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/sem_post.S: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/lowlevelmutex.S: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Likewise.
	* sysdeps/unix/sysv/linux/sh/sem_trywait.S: Likewise.
	* sysdeps/unix/sysv/linux/sh/sem_timedwait.S: Likewise.
	* sysdeps/unix/sysv/linux/sh/sem_post.S: Likewise.
	* sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: Likewise.
	* sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S: Likewise.
	* sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S: Likewise.
	* sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise.
	* sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: Likewise.
	* sysdeps/unix/sysv/linux/sh/lowlevellock.S: Likewise.
	* sysdeps/i386/i486/pthread_spin_trylock.S: Likewise.
	* sysdeps/x86_64/pthread_spin_trylock.S: Likewise.
	* sysdeps/sh/pthread_spin_trylock.S: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S: Likewise.
2003-03-12 10:28:07 +00:00
Ulrich Drepper
c37cae9e8a Update.
* po/da.po: Likewise.
2003-03-09 23:59:21 +00:00
Ulrich Drepper
d148ed257a Update.
2003-02-27  Ulrich Drepper  <drepper@redhat.com>

	* sunrpc/svc_udp.c (svcudp_recv): Remove all control messages
	except the PKTINFO.  Reset interface in PKTINFO.

	* elf/elf.h: Add new R_PPC64_* relocs for TLS.
	* elf/tls-macros.h [__powerpc64__] (TLS_LE, TLS_IE, TLS_LD, TLS_GD):
	Define.
	* sysdeps/powerpc/elf/libc-start.c (__libc_start_main):
2003-02-27 08:01:47 +00:00
Ulrich Drepper
695799feb3 Update.
* Makefile (tests): Add tst-dlsym1.
	* tst-dlsym1.c: New file.
2003-02-27 04:42:04 +00:00
Ulrich Drepper
ffeb4481f4 Update.
* Makefile: Add rules to build and run tst-tls3.
	* tst-tls3.c: New file.
	* tst-tls3mod.c: New file.
2003-02-24 10:03:02 +00:00
Ulrich Drepper
3724f268b1 Update.
2003-02-24  Ulrich Drepper  <drepper@redhat.com>

	* Makefile (tests): Add tst-rwlock8 and tst-rwlock9.
	* tst-rwlock8.c: New file.
	* tst-rwlock9.c: New file.
	* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Fix
	complete broken rwlock implementation.
	* 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.
2003-02-24 08:50:25 +00:00
Roland McGrath
f83b9d2107 2003-02-23 Roland McGrath <roland@redhat.com>
* Makefile (nptl-version): Change regexp so case sensitivity is ok.
2003-02-24 07:19:44 +00:00
Ulrich Drepper
ecf289594a Update.
* Makefile (tests): Add tst-context1.
	* tst-context1.c: New file.
2003-02-24 04:59:26 +00:00
Ulrich Drepper
5e47b76b50 Update.
* Makefile (tests): Add tst-tls1 and tst-tls2.
	* tst-tls1.c: New file.
	* tst-tls2.c: New file.
2003-02-24 03:50:46 +00:00
Ulrich Drepper
d5ca9483e8 Add dependency for $(objpfx)version.d. 2003-02-22 22:52:12 +00:00
Ulrich Drepper
757f9fcb6f Update.
* iconv/iconv_prog.c (main): Unify messages.
2003-02-22 20:02:35 +00:00
Ulrich Drepper
71028edd8f Update.
* Makefile (tests): Add tst-eintr1.
	(distribute): Add eintr.c.
	* tst-eintr1.c: New file.
	* eintr.c: New file.
2003-02-22 05:24:39 +00:00
Ulrich Drepper
1c848253fc Update.
2003-02-21  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/unix/sysv/linux/i386/getuid.c: Use INTERNAL_SYSCALL and do
	not chechk for errors (unless testing for 32bit variant).
	* sysdeps/unix/sysv/linux/i386/getgid.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/geteuid.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/getegid.c: Likewise.
2003-02-22 00:00:19 +00:00
Ulrich Drepper
ab2d98e38e Update.
2003-02-21  Ulrich Drepper  <drepper@redhat.com>

	* Makefile (tests): Remove tst-basic7.  Add tst-kill1, tst-kill2,
	tst-kill3, tst-kill4.
2003-02-21 20:29:49 +00:00
Roland McGrath
970d0b1d86 2003-02-21 Roland McGrath <roland@redhat.com>
* Makefile (install-lib-ldscripts): New variable.
2003-02-21 09:30:58 +00:00
Ulrich Drepper
df5803bf46 Update.
2003-02-20  Ulrich Drepper  <drepper@redhat.com>

	* pthread_create.c (deallocate_tsd): Clear the entire first block
	of TSD.
	* Makefile (tests): Add tst-key4.
	* tst-key4.c: New file.
2003-02-20 10:10:29 +00:00
Ulrich Drepper
2f7dc59492 Update.
2003-02-18  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/unix/sysv/linux/ttyname_r.c (__ttyname_r): Recognize
	invalid file descriptors and missing access permissions.
2003-02-18 21:04:15 +00:00
Ulrich Drepper
ecfda9bd44 Update.
* Makefile (tests): Add tst-signal5.
	* tst-signal5.c: New file.
2003-02-17 23:49:52 +00:00
Ulrich Drepper
5430d926c5 Update.
2003-02-17  Ulrich Drepper  <drepper@redhat.com>

	* Makefile (tests): Add tst-basic6.
	* tst-basic6.c: New file.

	* tst-basic1.c: Add test for process ID.

	* Makefile (tests): Add tst-cancel10.
	* tst-cancel10.c: New file.

	* Makefile (tests): Add tst-signal4.
	* tst-signal4.c: New file.

	* sysdeps/pthread/pthread_sigmask.c (pthread_sigmask): Use
	__sigismember instead of sigismember.  Add __builtin_expect.
2003-02-17 10:22:52 +00:00
Ulrich Drepper
1564916ab9 Update.
2003-02-16  Ulrich Drepper  <drepper@redhat.com>

	* libc-cancellation.c (__libc_enable_asynccancel): Rwrite to avoid
	going into an endless loop.
	* Makefile (tests): Add tst-cancel9.
	* tst-cancel9.c: New file.

	* pthread_cancel.c (pthread_cancel): Use the result of __pthread_kill.
2003-02-16 09:18:53 +00:00
Ulrich Drepper
c6247c9d7d Update.
* Makefile (tests): Add tst-clock1.
	* tst-clock1.c: New file.
2003-02-15 08:34:58 +00:00
Ulrich Drepper
b270b54840 Update.
2003-02-15  Ulrich Drepper  <drepper@redhat.com>

	* pthread_setconcurrency.c (pthread_setconcurrency): Fail for
	negative arguments.
	* Makefile (tests): Add tst-basic5.
	* tst-basic5.c: New file.

	after thread is done.  If then zero, call exit(0).
2003-02-15 08:21:36 +00:00
Ulrich Drepper
757de559da Update.
* math/libm-test.inc (nextafter_test): New test, but disabled due
	to gcc bug.
2003-02-15 07:55:59 +00:00
Ulrich Drepper
472022708e Update.
2003-02-14  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/generic/libc-start.c [HAVE_PTR_NTHREADS]: Decrement thread
	counter and only call __exit_thread if this is not the last thread.
2003-02-14 23:31:11 +00:00
Ulrich Drepper
e320ef46a7 Update.
* descr.h: Define CANCELING_BIT and CANCELING_BITMASK.  Introduce
	after CANCELTYPE_BIT, move the other bits up.  Update CANCEL_RESTMASK.
	* init.c (sigcancel_handler): Also set CANCELING_BITMASK bit in newval.
	* pthread_cancel.c (pthread_cancel): Likewise.  Also set CANCELING_BIT
	if asynchronous canceling is enabled.
	* pthread_join.c (pthread_join): When recognizing circular joins,
	take into account the other thread might be already canceled.
	* Makefile (tests): Add tst-join5.
	* tst-join5.c: New file.
2003-02-14 18:33:54 +00:00
Ulrich Drepper
700bf7af9f Update.
2003-02-14  Ulrich Drepper  <drepper@redhat.com>

	* Makefile (tests): Add tst-join4.
	* tst-join4.c: New file.

2003-02-13  Ulrich Drepper  <drepper@redhat.com>

	* tst-cond4.c (main): Add test of pthread_attr_getpshared.
2003-02-14 08:49:07 +00:00
Ulrich Drepper
a7720b5e18 Update.
* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Fix
	handling of cancellation and failung pthread_mutex_unlock call.
	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
	* Makefile (tests): Add tst-cond8 and tst-cond9.
	* tst-cond8.c: New file.
	* tst-cond9.c: New file.
2003-02-14 03:26:28 +00:00
Ulrich Drepper
e8cda341a4 Update.
2003-02-13  Ulrich Drepper  <drepper@redhat.com>

	* Makefile (tests): Add tst-cleanup3.
	* tst-cleanup3.c: New file.
2003-02-13 19:50:46 +00:00
Ulrich Drepper
89e78a954d Update.
* Makefile (tests): Add tst-attr1 and tst-attr2.
	* tst-attr1.c: New file.
	* tst-attr2.c: New file.
2003-02-13 07:53:26 +00:00
Ulrich Drepper
dfdd294a2a Update.
* Makefile: Add rules to build and run tst-atfork2 test.
	* tst-atfork2.c: New file.
	* tst-atfork2mod.c: New file.

	* sysdeps/unix/sysv/linux/unregister-atfork.c
	(__unregister_atfork): Free the memory allocated for the handlers
	after removing them from the lists.

	* sysdeps/unix/sysv/linux/register-atfork.c: Define memeory
	cleanup function.

	* tst-atfork1.c (do_test): Wait for the child we forked.
	Report error in child.

	* sysdeps/unix/sysv/linux/fork.c (__libc_fork): Fix comment.
2003-02-13 07:14:38 +00:00
Ulrich Drepper
d9dd121ebe Update.
* Makefile (tests): Add tst-cancel8.
	* tst-cancel8.c: New file.
2003-02-11 00:48:56 +00:00
Ulrich Drepper
defd18709c Update.
* Makefile (tests): Add tst-once3 and tst-once4.
	* tst-once4.c: New file.
2003-02-10 23:43:49 +00:00
Ulrich Drepper
2a8a8a8461 Update.
2003-02-10  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/unix/sysv/linux/i386/pthread_once.S (clear_once_control): Fix
	clearing of control variable.
	* Makefile (tests): Add tst-once3.
	* tst-once3.c: New file.
2003-02-10 23:11:15 +00:00
Ulrich Drepper
65c6899079 Update.
2003-02-07  Jakub Jelinek  <jakub@redhat.com>

	* tst-popen2.c: New test.
	* Makefile (tests): Add tst-popen2.
	* sysdeps/unix/sysv/linux/alpha/vfork.S (__vfork): Branch to __fork
	whenever libpthread.so is loaded.
	* sysdeps/unix/sysv/linux/i386/vfork.S (__vfork): Likewise.
	* sysdeps/unix/sysv/linux/ia64/vfork.S (__vfork): Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-64/vfork.S (__vfork): Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S (__vfork): Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S (__vfork): Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S (__vfork): Likewise.
	* sysdeps/unix/sysv/linux/x86_64/vfork.S (__vfork): Likewise.
2003-02-07 06:46:21 +00:00
Ulrich Drepper
e474ca7824 Update.
2003-01-29  Ulrich Drepper  <drepper@redhat.com>

	* Makefile (tests): Add tst-umask1.
	(tst-umask1-ARGS): Define.
	* tst-umask1.c: New file.
2003-01-30 01:38:09 +00:00
Ulrich Drepper
6cf26f4168 Update.
* Makefile (libpthread-routines): Remove lowlevelrwlock.  Add
	pthread_rwlock_rdlock, pthread_rwlock_timedrdlock,
	pthread_rwlock_wrlock, pthread_rwlock_timedwrlock, and
	pthread_rwlock_unlock.
	* sysdeps/unix/sysv/linux/i386/i486/lowlevelrwlock.S: Removed
	* sysdeps/unix/sysv/linux/i386/i586/lowlevelrwlock.S: Removed
	* sysdeps/unix/sysv/linux/i386/i686/lowlevelrwlock.S: Removed
	* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: New file.
	* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
	New file.
	* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: New file.
	* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
	New file.
	* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S: New file.
	* sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_rdlock.S: New file.
	* sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_timedrdlock.S:
	New file.
	* sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_wrlock.S: New file.
	* sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_timedwrlock.S:
	New file.
	* sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_unlock.S: New file.
	* sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_rdlock.S: New file.
	* sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_timedrdlock.S:
	New file.
	* sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_wrlock.S: New file.
	* sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_timedwrlock.S:
	New file.
	* sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_unlock.S: New file.
2003-01-29 00:39:03 +00:00
Ulrich Drepper
1d087a7e39 Update.
* Makefile (libpthread-routines): Remove lowlevelcond and
	lowlevelsem.  Add sem_wait, sem_trywait, sem_timedwait, sem_post,
	pthread_cond_wait, pthread_cond_timedwait, pthread_cond_signal,
	and pthread_cond_broadcast.
	* sysdeps/unix/sysv/linux/i486/lowlevelsem.S: Removed
	* sysdeps/unix/sysv/linux/i486/lowlevelcond.S: Removed
	* sysdeps/unix/sysv/linux/i586/lowlevelsem.S: Removed
	* sysdeps/unix/sysv/linux/i586/lowlevelcond.S: Removed
	* sysdeps/unix/sysv/linux/i686/lowlevelsem.S: Removed
	* sysdeps/unix/sysv/linux/i686/lowlevelcond.S: Removed
	* sysdeps/unix/sysv/linux/i486/sem_wait.S: New file.
	* sysdeps/unix/sysv/linux/i486/sem_trywait.S: New file.
	* sysdeps/unix/sysv/linux/i486/sem_timedwait.S: New file.
	* sysdeps/unix/sysv/linux/i486/sem_post.S: New file.
	* sysdeps/unix/sysv/linux/i486/pthread_cond_wait.S: New file.
	* sysdeps/unix/sysv/linux/i486/pthread_cond_timedwait.S: New file.
	* sysdeps/unix/sysv/linux/i486/pthread_cond_signal.S: New file.
	* sysdeps/unix/sysv/linux/i486/pthread_cond_broadcast.S: New file.
	* sysdeps/unix/sysv/linux/i586/sem_wait.S: New file.
	* sysdeps/unix/sysv/linux/i586/sem_trywait.S: New file.
	* sysdeps/unix/sysv/linux/i586/sem_timedwait.S: New file.
	* sysdeps/unix/sysv/linux/i586/sem_post.S: New file.
	* sysdeps/unix/sysv/linux/i586/pthread_cond_wait.S: New file.
	* sysdeps/unix/sysv/linux/i586/pthread_cond_timedwait.S: New file.
	* sysdeps/unix/sysv/linux/i586/pthread_cond_signal.S: New file.
	* sysdeps/unix/sysv/linux/i586/pthread_cond_broadcast.S: New file.
	* sysdeps/unix/sysv/linux/i686/sem_wait.S: New file.
	* sysdeps/unix/sysv/linux/i686/sem_trywait.S: New file.
	* sysdeps/unix/sysv/linux/i686/sem_timedwait.S: New file.
	* sysdeps/unix/sysv/linux/i686/sem_post.S: New file.
	* sysdeps/unix/sysv/linux/i686/pthread_cond_wait.S: New file.
	* sysdeps/unix/sysv/linux/i686/pthread_cond_timedwait.S: New file.
	* sysdeps/unix/sysv/linux/i686/pthread_cond_signal.S: New file.
	* sysdeps/unix/sysv/linux/i686/pthread_cond_broadcast.S: New file.
2003-01-28 23:52:31 +00:00
Ulrich Drepper
a15698cb7e Update.
2003-01-27  Steven Munroe  <sjmunroe@us.ibm.com>

	* stdio-common/Makefile: Add bug14-ENV to set LOCPATH for make check.
2003-01-28 07:27:15 +00:00
Ulrich Drepper
8824b0a1bf Update.
2003-01-17  Ulrich Drepper  <drepper@redhat.com>

	* Makefile (headers): Add bits/semaphore.h.
2003-01-17 10:07:21 +00:00
Ulrich Drepper
574b892ef1 Update.
2003-01-14  Guido Guenther  <agx@sigxcpu.org>

	* sysdeps/unix/sysv/linux/mips/sysdep.h (INTERNAL_SYSCALL,
	INTERNAL_SYSCALL_DECL, INTERNAL_SYSCALL_ERRNO,
	INTERNAL_SYSCALL_ERROR_P, INLINE_SYSCALL): Define.

2003-01-14  Steven Munroe  <sjmunroe@us.ibm.com>

	* sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep.h
	(INTERNAL_SYSCALL): Make use of ERR parameter.
	(INTERNAL_SYSCALL_DECL, INTERNAL_SYSCALL_ERRNO,
	INTERNAL_SYSCALL_ERROR_P): Adjust accordingly.
	(INLINE_SYSCALL): Make use of INTERNAL_SYSCALL.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/vfork.S: New file.

	Patch by Denis Zaitsev <zzz@cd-club.ru>.
	that %eax is modified.  Reported by Denis Zaitsev <zzz@cd-club.ru>.
2003-01-15 01:23:02 +00:00
Ulrich Drepper
fb48047afe Update.
2003-01-13  Ulrich Drepper  <drepper@redhat.com>

	* Makefile (libpthread-routines): Add version.  Add rules to build
	version.os and banner.h.
	* version.c: New file.
2003-01-14 04:04:05 +00:00
Ulrich Drepper
0c5d3ed9ed (CFLAGS-pthread_self.c): New definition. 2003-01-14 00:34:21 +00:00
Ulrich Drepper
b74121ae4b Update.
* Makefile (tests): Add tst-cancel7.
	(tst-cancel7-ARGS): New variable.
2003-01-05 04:58:18 +00:00
Ulrich Drepper
7edb2ae36f Update.
* Makefile (tests): Add tst-cond7.
	* tst-cond7.c: New file.
2003-01-04 02:52:17 +00:00
Ulrich Drepper
733f25e6d3 Update.
2003-01-03  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/generic/ldsodefs.h (_dl_allocate_tls, _dl_deallocate_tls):
	Add rtld_hidden_proto.
	* sysdeps/generic/dl-tls.c (_dl_deallocate_tls): Add rtld_hidden_def.
	(_dl_allocate_tls): Likewise.  Remove INTDEF.
2003-01-03 21:15:43 +00:00
Ulrich Drepper
bf293afeca Update.
2003-01-02  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/unix/sysv/linux/arm/sigaction.c (__sigaction,
	sigaction): Protect weak_alias and libc_hidden_weak with
	#ifndef LIBC_SIGACTION.
	* sysdeps/unix/sysv/linux/ia64/sigaction.c (__sigaction,
	sigaction): Likewise.
	* sysdeps/unix/sysv/linux/mips/sigaction.c (__sigaction,
	sigaction): Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-64/sigaction.c (__sigaction,
	sigaction): Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/sigaction.c (__sigaction,
	sigaction): Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/sigaction.c (__sigaction,
	sigaction): Likewise.
	* sysdeps/unix/sysv/linux/x86_64/sigaction.c (__sigaction,
	sigaction): Likewise.
	* sysdeps/unix/sysv/linux/i386/sigaction.c (__sigaction,
	sigaction): Likewise.  Remove SIGCANCEL handling here.
	* sysdeps/unix/sysv/linux/sigaction.c (__sigaction, sigaction):
	Likewise.
2003-01-03 01:35:14 +00:00
Ulrich Drepper
05df18c347 Update.
2003-01-02  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/pthread/bits/pthreadtypes.h (pthread_cond_t): Add padding.
	* condvar.c: Add symbol versioning.  The compatibility versions
	are the same as the change in the interface does not effect this
	implementation.
	* Versions [libpthread]: Add definitions for new pthread_cond_*
	interfaces for version GLIBC_2.3.2.
2003-01-02 11:01:30 +00:00
Ulrich Drepper
c1d3faf176 ($(inst_libdir)/libpthread.so): Depend on $(common-objpfx)format.lds, include that into the output script. Fix comment. (extra-B-pthread.so): Change linuxthreads/ into nptl/. 2002-12-31 06:53:45 +00:00
Ulrich Drepper
131fd126cd Update.
2002-12-28  Ulrich Drepper  <drepper@redhat.com>

	* descr.h (struct pthread): Move header.data.list to the back of the
	struct.
	* sysdeps/i386/tls.h (tcbhead_t): Move list to the back of the struct.
	(MULTIPLE_THREADS_OFFSET): Adjust offset.
	(SYSINFO_OFFSEET): Likewise.

2002-12-27  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/unix/sysv/linux/i386/i686/dl-sysdep.h (USE_DL_SYSINFO):
	Define.
	(DL_SYSINFO_DEFAULT): Cast to uintptr_t to avoid warnings.
	* sysdeps/unix/sysv/linux/i386/dl-sysdep.h (NEED_DL_SYSINFO,
	DL_SYSINFO_DEFAULT, DL_SYSINFO_IMPLEMENTATION): Define.
	(USE_DL_SYSINFO): Undef.

2002-12-22  Jakub Jelinek  <jakub@redhat.com>

	* Makefile (tests-reverse): Use $(objpfx)../libc.so instead of
	$(common-objpfx)libc.so.
	* tst-cancel4.c (tf_write, tf_writev): Increase buf sizes so that
	it is bigger than pipe buffer size even on arches with bigger
	page size.
	(tf_usleep): Cast usleep argument to useconds_t to avoid warnings.
2002-12-28 09:27:26 +00:00
Roland McGrath
645294eb89 2002-12-22 Roland McGrath <roland@redhat.com>
* Makefile (omit-deps): Add $(unix-syscalls:%=ptw-%).
2002-12-23 00:44:58 +00:00
Ulrich Drepper
d7913e0e25 Update.
2002-12-18  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/pthread/bits/stdio-lock.h: New file.
	* sysdeps/unix/sysv/linux/i386/i486/libc-lowlevelmutex.S: New file.
	* sysdeps/unix/sysv/linux/i386/i586/libc-lowlevelmutex.S: New file.
	* sysdeps/unix/sysv/linux/i386/i686/libc-lowlevelmutex.S: New file.
	* Makefile (routines): Add libc-lowlevelmutex.

	* sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Remove
	__i686.get_pc_thunk.dx.
2002-12-18 10:56:40 +00:00
Ulrich Drepper
f077a4a9f0 Update.
2002-12-17  Jakub Jelinek  <jakub@redhat.com>

	* malloc/thread-m.h (mutex_init, mutex_lock, mutex_trylock,
	mutex_unlock): If not building NPTL, use __libc_maybe_call2 if
	available, otherwise __libc_maybe_call.
	* sysdeps/unix/sysv/linux/x86_64/recv.c: Add support for
	cancellation handling.
	* sysdeps/unix/sysv/linux/x86_64/send.c: Likewise.
2002-12-18 00:53:21 +00:00
Ulrich Drepper
9634cf9d4f Update.
2002-12-16  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/unix/sysv/linux/i386/socket.S: Use CENABLE and CDISABLE
	macros instead of doing the calls directly.
	* sysdeps/unix/make-syscalls.sh: Add ptw-*.$o target name to rules.
	* Makerules ($(+sysdir_pfx)sysd-rules): Emit rules for ptw-%
	targets.

2002-12-16  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/i386/fpu/bits/mathinline.h: Backout last change.
	* sysdeps/ieee754/bits/nan.h: Likewise.

	* sysdeps/unix/sysv/linux/ia64/syscalls.list (__syscall_open,
	__syscall_wait4, __syscall_ioctl, __syscall_write): Add.
2002-12-16 20:52:36 +00:00
Ulrich Drepper
4cbc195033 Update.
* Versions [libpthread: GLIBC_2.3.2]: Remove creat, poll, pselect,
	readv, select, sigpause, sigsuspend, sigwaitinfo, waitid, writev.
	* Makefile (libpthread-routines): Remove pt-creat, pt-poll,
	pt-pselect, pt-readv, pt-select, pt-sigpause, pt-sigsuspend,
	pt-sigwaitinfo, pt-waitid, and pt-writev.
	* pt-creat.c: Removed.
	* pt-poll.c: Removed.
	* pt-pselect.c: Removed.
	* pt-readv.c: Removed.
	* pt-select.c: Removed.
	* pt-sigpause.c: Removed.
	* pt-sigsuspend.c: Removed.
	* pt-sigwaitinfo.c: Removed.
	* pt-waitid.c: Removed.
	* pt-writev.c: Removed.
2002-12-15 21:23:04 +00:00
Ulrich Drepper
9d263d7284 Update.
2002-12-14  Jakub Jelinek  <jakub@redhat.com>

	* dirent/bug-readdir1.c: Include unistd.h.
2002-12-14 19:49:13 +00:00
Ulrich Drepper
9ae0909b35 Update.
2002-12-13  Ulrich Drepper  <drepper@redhat.com>

	* misc/syslog.c (log_cleanup): Don't use parameter in
	__libc_lock_unlock call, use syslog_lock directly.  Adjust callers to
	pass NULL instead of a pointer to syslog_lock.
2002-12-13 10:59:14 +00:00
Ulrich Drepper
da63009e0f Update.
* Makefile (tests): Add tst-cleanup1.
	* tst-cleanup1.c: New file.
	* cancellation.c (__cleanup_thread): Removed.
	(__do_cancel): Remove call to __cleanup_thread.
	* pthreadP.h: Remove __cleanup_thread prorotype.
2002-12-12 04:46:44 +00:00
Ulrich Drepper
dce8f2b62a Update.
2002-12-10  Jakub Jelinek  <jakub@redhat.com>

	* include/libc-symbols.h: Fix a comment typo.

	* sysdeps/unix/sysv/linux/alpha/select.S (__libc_select): New alias.
	* sysdeps/unix/sysv/linux/alpha/sigsuspend.S (__libc_sigsuspend):
	Likewise.
	* sysdeps/unix/sysv/linux/ia64/sigsuspend.c (__libc_sigsuspend):
	Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-64/sigsuspend.c
	(__libc_sigsuspend): Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/sigsuspend.c
	(__libc_sigsuspend): Likewise.
	* sysdeps/generic/creat.c (__libc_creat): Renamed from creat.
	(creat): New weak alias.
2002-12-10 20:35:58 +00:00
Ulrich Drepper
09efc3ba12 Update.
2002-12-07  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/generic/bits/stdio-lock.h (_IO_lock_trylock): New define.
2002-12-08 03:13:06 +00:00
Ulrich Drepper
4614167ae7 Update.
* test-skeleton.c (timeout_handler): Allow expected signal to be
	SIGALRM.
2002-12-07 05:39:20 +00:00
Ulrich Drepper
d3c9f89525 Update.
2002-12-06  Ulrich Drepper  <drepper@redhat.com>

	* misc/syslog.c (log_cleanup): New function.
	(openlog): Use log_cleanup instead of __libc_mutex_unlock.
	(closelog): Likewise.

	* elf/dl-close.c: Use __rtld_lock_* macros instead of __libc_lock_*.
	* elf/dl-iteratephdr.c: Likewise.
	* elf/dl-lookup.c: Likewise.
	* elf/dl-misc.c: Likewise.
	* elf/dl-open.c: Likewise.
	* elf/dl-support.c: Likewise.
	* elf/rtld.c: Likewise.
	* sysdeps/generic/ldsodefs.h: Likewise.
	* sysdeps/generic/bits/libc-lock.h: Define __rtld_lock_* macros.
	* sysdeps/mach/bits/libc-lock.h: Likewise.
	* sysdeps/mach/hurd/bits/libc-lock.h: Likewise.

	* dirent/bug-readdir1.c (main): Don't call closedir, just close
2002-12-06 11:49:42 +00:00
Ulrich Drepper
440d8bc2cd Update.
2002-12-05  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/unix/sysv/linux/Makefile (sysdep_routines): Remove
	lowlevellock.
	* sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: New file.
	* sysdeps/unix/sysv/linux/i386/i586/libc-lowlevellock.S: New file.
	* sysdeps/unix/sysv/linux/i386/i686/libc-lowlevellock.S: New file.
	* sysdeps/pthread/bits/libc-lock.h: Use lowlevellock implementation
	for __libc_lock_* macros.
	* Makefile (routines): Add libc-lowlevellock.

2002-10-09  Roland McGrath  <roland@redhat.com>

	* sysdeps/pthread/bits/libc-lock.h (__libc_maybe_call): New macro.
	Under [__PIC__], call the function via the pointer fetched for
	comparison rather than a call by name that uses the PLT.
	(__libc_lock_init, __libc_rwlock_init, __libc_lock_fini)
	(__libc_rwlock_fini, __libc_lock_lock, __libc_rwlock_rdlock)
	(__libc_rwlock_wrlock, __libc_lock_trylock, __libc_rwlock_tryrdlock)
	(__libc_rwlock_trywrlock, __libc_lock_unlock, __libc_rwlock_unlock)
	(__libc_key_create, __libc_getspecific, __libc_setspecific): Use it.
2002-12-05 20:04:54 +00:00
Ulrich Drepper
c4a6d85994 Update.
2002-12-04  Ulrich Drepper  <drepper@redhat.com>

	* argp/Makefile (tests): Add tst-argp1.
2002-12-04 19:53:08 +00:00
Ulrich Drepper
d82d5d12a6 Update.
2002-12-03  Ulrich Drepper  <drepper@redhat.com>

	* Makefile (tests): Add tst-sysconf.
	* tst-sysconf.c: New file.

	* sysdeps/unix/sysv/linux/bits/local_lim.h: Undefine
	PTHREAD_THREADS_MAX.
2002-12-03 10:34:23 +00:00
Ulrich Drepper
87293ddce8 Correct rule to create tst-locale1. 2002-12-03 08:57:59 +00:00
Ulrich Drepper
c22b52fa11 Update.
* Makefile (tests): Add tst-locale1.  If buid-static is yes link
	statically.
	* tst-locale1.c: New file.
2002-12-03 06:27:43 +00:00
Ulrich Drepper
91949a339b Update.
2002-12-02  Ulrich Drepper  <drepper@redhat.com>

	* Makefile (tests): Add tst-fork2 and tst-fork3.
	* tst-fork2.c: New file.
	* tst-fork3.c: New file.
2002-12-02 09:06:27 +00:00
Ulrich Drepper
76a50749f7 Initial revision
2002-11-26  Ulrich Drepper  <drepper@redhat.com>
	* allocatestack.c (queue_stack): Don't remove stack from list here.
	Do it in the caller.  Correct condition to prematurely terminate
	loop to free stacks.
	(__deallocate_stack): Remove stack from list here.
2002-11-26  Ulrich Drepper  <drepper@redhat.com>
	* Makefile (tests): Add tst-stack1.
	* tst-stack1.c: New file.
	* allocatestack.c (allocate_stack): Initialize the TCB on a user
	provided stack.
	* pthread_attr_getstack.c: Return bottom of the thread area.
2002-11-25  Ulrich Drepper  <drepper@redhat.com>
	* Makefile (libpthread-routines): Add pt-allocrtsig and
	pthread_kill_other_threads.
	* pt-allocrtsig.c: New file.
	* pthread_kill_other_threads.c: New file.
	* sysdeps/unix/sysv/linux/allocrtsig.c: Add additional aliases for
	all three functions.
	* sysdeps/unix/sysv/linux/Makefile (sysdep_routines): Remove
	allocrtsig.
	* sysdeps/unix/sysv/linux/Versions (libc:GLIBC_PRIVATE): Export
	__libc_current_sigrtmin_private, __libc_current_sigrtmax_private,
	and __libc_allocate_rtsig_private.
	* Versions (libpthread): Export pthread_kill_other_threads_np,
	__libc_current_sigrtmin, and __libc_current_sigrtmax.
2002-11-24  Ulrich Drepper  <drepper@redhat.com>

	* allocatestack.c (allocate_stack): stackaddr in attribute points to
	the end of the stack.  Adjust computations.
	When mprotect call fails dequeue stack and free it.
	* pthread_attr_setstack.c: Store top of the stack in stackaddr
	attribute.
	* pthread_getattr_np.c: Likewise.

	* descr.h (IS_DETACHED): Add some more parenthesis to prevent
	surprises.

2002-11-23  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/pthread/pthread.h (pthread_self): __THROW must come before
	attribute definitions.  Patch by Luca Barbieri <ldb@ldb.ods.org>.

2002-11-22  Ulrich Drepper  <drepper@redhat.com>

	* pthread_getspecific.c: Optimize access to first 2nd-level array.
	* pthread_setspecific.c: Likewise.

2002-11-21  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/unix/sysv/linux/i386/createthread.c: Remove CLONE_ flags
	definitions.  Get them from the official place.
	* sysdeps/unix/sysv/linux/i386/fork.c: Likewise.

	* sysdeps/unix/sysv/linux/i386/createthread.c: Update CLONE_* flags.
	Use new CLONE_ flags in clone() calls.

	* sysdeps/unix/sysv/linux/fork.c: Use ARCH_FORK to actually fork.
	* sysdeps/unix/sysv/linux/i386/fork.c: New file.

	* Versions: Add pthread_* functions for libc.
	* forward.c: New file.

	* sysdeps/pthread/Makefile (libpthread-sysdeps_routines): Add
	errno-loc.
	* herrno.c: New file.
	* res.c: New file.

	* Makefile (libpthread-routines): Remove sem_post, sem_wait,
	sem_trywait, and sem_timedwait.  Add herrno and res.
	* sem_init.c: Don't initialize lock and waiters members.
	* sem_open.c: Likewise.
	* sem_post.c: Removed.
	* sem_wait.c: Removed.
	* sem_trywait.c: Removed.
	* sem_timedwait.c: Removed.
	* sysdeps/unix/sysv/linux/i386/i486/lowlevelsem.S: Complete rewrite.
	Includes full implementations of sem_post, sem_wait, sem_trywait,
	and sem_timedwait.
	* sysdeps/unix/sysv/linux/i386/lowlevelsem.h (lll_sem_post): Adjust
	for new implementation.
	* sysdeps/unix/sysv/linux/internaltypes.h (struct sem): Remove lock
	and waiters fields.

	* tst-sem3.c: Improve error message.
	* tst-signal3.c: Likewise.

	* init.c (__pthread_initialize_minimal): Use set_tid_address syscall
	to tell the kernel about the termination futex and to initialize tid
	member.  Don't initialize main_thread.
	* descr.h (struct pthread): Remove main_thread member.
	* cancelllation.c (__do_cancel): Remove code handling main thread.
	The main thread is not special anymore.

	* allocatestack.c (__reclaim_stacks): Mark stacks as unused.  Add
	size of the stacks to stack_cache_actsize.

	* pt-readv.c: Add missing "defined".
	* pt-sigwait.c: Likewise.
	* pt-writev.c: Likewise.

2002-11-09  Ulrich Drepper  <drepper@redhat.com>

	* Versions: Export __connect from libpthread.
	Patch by Luca Barbieri <ldb@ldb.ods.org>.

	* Makefile (libpthread-routines): Add pt-raise.
	* sysdeps/unix/sysv/linux/raise.c: New file.
	* sysdeps/unix/sysv/linux/pt-raise.c: New file.
	* sysdeps/generic/pt-raise.c: New file.

	* pthread_cond_init.c: Initialize all data elements of the condvar
	structure.  Patch by Luca Barbieri <ldb@ldb.ods.org>.

	* pthread_attr_init.c: Actually implement 2.0 compatibility version.
	* pthread_create.c: Likewise.

	* Makefile (tests): Add tst-key1, tst-key2, tst-key3.
	* tst-key1.c: New file.
	* tst-key2.c: New file.
	* tst-key3.c: New file.

	* Versions: Export pthread_detach for version GLIBC_2.0.
	Reported by Saurabh Desai <sdesai@austin.ibm.com>.

2002-11-08  Ulrich Drepper  <drepper@redhat.com>

	* pthread_key_create.c: Terminate search after an unused key was found.
	Patch by Luca Barbieri <ldb@ldb.ods.org>.

	* sysdeps/unix/sysv/linux/i386/pthread_once.S: Return zero.
	Patch by Luca Barbieri <ldb@ldb.ods.org>.

2002-10-10  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/unix/sysv/linux/i386/i486/lowlevelsem.S: Use slow generic
	dynamic lookup for errno in PIC.

	* allocatestack.c (get_cached_stack): Rearrange code slightly to
	release the stack lock as soon as possible.
	Call _dl_allocate_tls_init for TCB from the cache to re-initialize
	the static TLS block.
	(allocate_stack): Call _dl_allocate_tls_init for user-provided stack.

	* cancellation.c: Renamed from cancelation.c.
	* Makefile: Adjust accordingly.
	* pthreadP.h (CANCELLATION_P): Renamed from CANCELATION_P.
	* cleanup_defer.c: Use CANCELLATION_P.
	* pthread_testcancel.c: Likewise.
	* descr.h: Fix spelling in comments.
	* init.c: Likewise.
	* pthread_getattr_np.c: Likewise.
	* pthread_getschedparam.c: Likewise.
	* pthread_setschedparam.c: Likewise.
	* Versions: Likewise.

	* pt-pselect.c: New file.
	* Makefile (libpthread-routines): Add pt-pselect.
	* Versions: Add pselect.

	* tst-cancel4.c: New file.
	* Makefile (tests): Add tst-cancel4.

2002-10-09  Ulrich Drepper  <drepper@redhat.com>

	* pthread_mutex_lock.c: Always record lock ownership.
	* pthread_mutex_timedlock.c: Likewise.
	* pthread_mutex_trylock.c: Likewise.

	* pt-readv.c: New file.
	* pt-writev.c: New file.
	* pt-creat.c: New file.
	* pt-msgrcv.c: New file.
	* pt-msgsnd.c: New file.
	* pt-poll.c: New file.
	* pt-select.c: New file.
	* pt-sigpause.c: New file.
	* pt-sigsuspend.c: New file.
	* pt-sigwait.c: New file.
	* pt-sigwaitinfo.c: New file.
	* pt-waitid.c: New file.
	* Makefile (libpthread-routines): Add pt-readv, pt-writev, pt-creat,
	pt-msgrcv, pt-msgsnd, pt-poll, pt-select, pt-sigpause, pt-sigsuspend,
	pt-sigwait, pt-sigwaitinfo, and pt-waitid.
	* Versions: Add all the new functions.

	* tst-exit1.c: New file.
	* Makefile (tests): Add tst-exit1.

	* sem_timedwait.c: Minor optimization for more optimal fastpath.

2002-10-08  Ulrich Drepper  <drepper@redhat.com>

	* pt-fcntl.c: Only enable asynchronous cancellation for F_SETLKW.

	* pthread_join.c: Enable asynchronous cancellation around lll_wait_tid
	call.  pthread_join is an official cancellation point.
	* pthread_timedjoin.c: Likewise.

	* pthread_cond_wait.c: Revert order in which internal lock are dropped
	and the condvar's mutex are retrieved.
	* pthread_cond_timedwait.c: Likewise.
	Reported by dice@saros.East.Sun.COM.

2002-10-07  Ulrich Drepper  <drepper@redhat.com>

	* pthreadP.h: Cut out all type definitions and move them...
	* sysdeps/unix/sysv/linux/internaltypes.h: ...here.  New file.
	* pthreadP.h: Include <internaltypes.h>.

	* sysdeps/unix/sysv/linux/i386/lowlevelsem.h (lll_sem_post): Little
	performance tweaks.

	* sem_trywait.c: Shuffle #includes around to get right order.
	* sem_timedwait.c: Likewise.
	* sem_post.c: Likewise.
	* sem_wait.c: Likewise.

	* nptl 0.3 released.

	* Makefile (tests): Add tst-signal3.
	* tst-signal3.c: New file.

2002-10-05  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/unix/sysv/linux/i386/lowlevelsem.h: Tell the compiler that
	the asms modify the sem object.
	(__lll_sem_timedwait): Now takes struct sem* as first parameter.

	* sysdeps/unix/sysv/linux/i386/bits/semaphore.h (sem_t): Don't expose
	the actual members.
	* pthreadP.h (struct sem): New type.  Actual semaphore type.
	* semaphoreP.h: Include pthreadP.h.
	* sem_getvalue.c: Adjust to sem_t change.
	* sem_init.c: Likewise.
	* sem_open.c: Likewise.
	* sem_post.c: Likewise.
	* sem_timedwait.c: Likewise.
	* sem_trywait.c: Likewise.
	* sem_wait.c: Likewise.

2002-10-04  Ulrich Drepper  <drepper@redhat.com>

	* Makefile (tests): Add tst-basic2, tst-exec1, tst-exec3, tst-exec3.
	* tst-basic2.c: New file.
	* tst-exec1.c: New file.
	* tst-exec2.c: New file.
	* tst-exec3.c: New file.

	* tst-fork1.c: Remove extra */.

	* nptl 0.2 released.  The API for IA-32 is complete.
2002-11-26 22:50:54 +00:00