Commit Graph

504 Commits

Author SHA1 Message Date
Adhemerval Zanella
116f1c64d8 posix: Consolidate Linux glob implementation
This patch consolidates the glob implementation.  The main changes are:

  * On Linux all implementation now uses the default one at
    sysdeps/unix/sysv/linux/glob{free}{64}.c with the exception
    of alpha (which requires specific versioning) and s390-32 (which
    different than other 32 bits ports it does not add a compat one
    symbol for 2.1 version).

  * The default implementation uses XSTAT_IS_XSTAT64 to define whether
    both glob{free} and glob{free}64 should be different implementations.
    For archictures that define XSTAT_IS_XSTAT64, glob{free} is an alias
    to glob{free}64.

  * Move i386 olddirent.h header to Linux default directory, since it is
    the only header with this name and it is shared among different
    architectures (and used on compat glob symbol as well).

Checked on x86_64-linux-gnu and on a build using build-many-glibcs.py
for all major architectures.

	* sysdeps/unix/sysv/linux/arm/glob64.c: Remove file.
	* sysdeps/unix/sysv/linux/i386/glob64.c: Likewise.
	* sysdeps/unix/sysv/linux/m68k/glob64.c: Likewise.
	* sysdeps/unix/sysv/linux/mips/mips64/n64/glob64.c: Likewise.
	* sysdeps/unix/sysv/linux/mips/mips64/n64/globfree64.c: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/glob64.c: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/glob64.c: Likewise.
	* sysdeps/unix/sysv/linux/wordsize-64/glob64.c: Likewise.
	* sysdeps/unix/sysv/linux/wordsize-64/globfree64.c: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/x32/glob.c: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/x32/globfree.c: Likewise.
	* sysdeps/wordsize-64/glob.c: Likewise.
	* sysdeps/wordsize-64/glob64.c: Likewise.
	* sysdeps/wordsize-64/globfree64.c: Likewise.
	* sysdeps/unix/sysv/linux/glob.c: New file.
	* sysdeps/unix/sysv/linux/glob64.c: Likewise.
	* sysdeps/unix/sysv/linux/globfree.c: Likewise.
	* sysdeps/unix/sysv/linux/globfree64.c: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/glob64.c: Likewise.
	* sysdeps/unix/sysv/linux/oldglob.c [SHLIB_COMPAT]: Also
	adds !GLOB_NO_OLD_VERSION as an extra condition.
	* sysdeps/unix/sysv/linux/i386/alphasort64.c: Include olddirent.h
	using relative path instead of absolute one.
	* sysdeps/unix/sysv/linux/i386/getdents64.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/readdir64.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/readdir64_r.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/versionsort64.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/olddirent.h: Move to ...
	* sysdeps/unix/sysv/linux//olddirent.h: ... here.
2017-09-08 16:34:02 +02:00
Adhemerval Zanella
ebd6f0076a Remove cancellation support for syscall generation
This patch removes the cancellation mark from the auto-generation syscall
script.  Now all the cancellable syscalls are done throught C code using
the SYSCALL_CANCEL macro.  It simplifies the assembly required to each
architecture port, since the SYSCALL_CANCEL uses the already defined
INLINE_SYSCALL macros, and allows a more straigh fix on cancellation
machanism (since no more specific assembly fixes will be required).

Checked on i686-linux-gnu, x86_64-linux-gnu, x86_64-linux-gnux32,
aarch64-linux-gnu, arm-linux-gnueabihf, and powerpc64le-linux-gnu.A
Also with build-many-glibc.py with remaning touched architectures.

	* sysdeps/unix/make-syscalls.sh: Remove cancellable tagging for
	syscall definitions.
	* sysdeps/unix/syscall-template.S (SYSCALL_CANCELLABLE): Remove
	definition.
	* sysdeps/unix/sysv/linux/aarch64/sysdep-cancel.h (PSEUDO): Remove
	definition.
	(PSEUDO_END): Likewise.
	[IS_IN (libpthread)] (CENABLE): Likewise.
	[IS_IN (libpthread)] (CDISABLE): Likewise.
	[IS_IN (libc)] (CENABLE): Likewise.
	[IS_IN (libc)] (CENABLE): Likewise.
	[IS_IN (librt)] (CDISABLE): Likewise.
	[IS_IN (librt)] (CDISABLE): Likewise.
	[__ASSEMBLER__] (SINGLE_THREAD_P): Likewise.
	* sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h (PSEUDO): Remove
	definition.
	(PSEUDO_END): Likewise.
	[IS_IN (libpthread)] (__local_enable_asynccancel): Likewise.
	[IS_IN (libpthread)] (__local_disable_asynccancel): Likewise.
	[IS_IN (libc)] (__local_enable_asynccancel): Likewise.
	[IS_IN (libc)] (__local_enable_asynccancel): Likewise.
	[IS_IN (librt)] (__local_disable_asynccancel): Likewise.
	[IS_IN (librt)] (__local_disable_asynccancel): Likewise.
	(CENABLE): Likewise.
	(CDISABLE): Likewise.
	[__ASSEMBLER__] (SINGLE_THREAD_P): Likewise.
	* sysdeps/unix/sysv/linux/arm/sysdep-cancel.h (PSEUDO): Remove
	defintion.
	(PSEUDO_END): Likewise.
	[IS_IN (libpthread)] (CENABLE): Likewise.
	[IS_IN (libpthread)] (CDISABLE): Likewise.
	[IS_IN (libc)] (CENABLE): Likewise.
	[IS_IN (libc)] (CENABLE): Likewise.
	[IS_IN (librt)] (CDISABLE): Likewise.
	[IS_IN (librt)] (CDISABLE): Likewise.
	[__ASSEMBLER__] (SINGLE_THREAD_P): Likewise.
	* sysdeps/unix/sysv/linux/hppa/sysdep-cancel.h (PSEUDO): Remove
	definition.
	(PSEUDO_END): Likewise.
	[IS_IN (libpthread)] (CENABLE): Likewise.
	[IS_IN (libpthread)] (CDISABLE): Likewise.
	[IS_IN (libc)] (CENABLE): Likewise.
	[IS_IN (libc)] (CENABLE): Likewise.
	[IS_IN (librt)] (CDISABLE): Likewise.
	[IS_IN (librt)] (CDISABLE): Likewise.
	[__ASSEMBLER__] (SINGLE_THREAD_P): Likewise.
	* sysdeps/unix/sysv/linux/i386/sysdep-cancel.h (PSEUDO): Remove
	definition.
	(PSEUDO_END): Likewise.
	[IS_IN (libpthread)] (CENABLE): Likewise.
	[IS_IN (libpthread)] (CDISABLE): Likewise.
	[IS_IN (libc)] (CENABLE): Likewise.
	[IS_IN (libc)] (CENABLE): Likewise.
	[IS_IN (librt)] (CDISABLE): Likewise.
	[IS_IN (librt)] (CDISABLE): Likewise.
	[__ASSEMBLER__] (SINGLE_THREAD_P): Likewise.
	* sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h (PSEUDO): Remove
	definition.
	(PSEUDO_END): Likewise.
	[IS_IN (libpthread)] (CENABLE): Likewise.
	[IS_IN (libpthread)] (CDISABLE): Likewise.
	[IS_IN (libc)] (CENABLE): Likewise.
	[IS_IN (libc)] (CENABLE): Likewise.
	[IS_IN (librt)] (CDISABLE): Likewise.
	[IS_IN (librt)] (CDISABLE): Likewise.
	[__ASSEMBLER__] (SINGLE_THREAD_P): Likewise.
	* sysdeps/unix/sysv/linux/m68k/sysdep-cancel.h (PSEUDO): Remove
	definition.
	(PSEUDO_END): Likewise.
	[IS_IN (libpthread)] (CENABLE): Likewise.
	[IS_IN (libpthread)] (CDISABLE): Likewise.
	[IS_IN (libc)] (CENABLE): Likewise.
	[IS_IN (libc)] (CENABLE): Likewise.
	[IS_IN (librt)] (CDISABLE): Likewise.
	[IS_IN (librt)] (CDISABLE): Likewise.
	[__ASSEMBLER__] (SINGLE_THREAD_P): Likewise.
	* sysdeps/unix/sysv/linux/microblaze/sysdep-cancel.h (PSEUDO): Remove
	definition.
	(PSEUDO_END): Likewise.
	[IS_IN (libpthread)] (CENABLE): Likewise.
	[IS_IN (libpthread)] (CDISABLE): Likewise.
	[IS_IN (libc)] (CENABLE): Likewise.
	[IS_IN (libc)] (CENABLE): Likewise.
	[IS_IN (librt)] (CDISABLE): Likewise.
	[IS_IN (librt)] (CDISABLE): Likewise.
	[__ASSEMBLER__] (SINGLE_THREAD_P): Likewise.
	* sysdeps/unix/sysv/linux/mips/mips64/sysdep-cancel.h (PSEUDO):
	Remove definition.
	(PSEUDO_END): Likewise.
	[IS_IN (libpthread)] (CENABLE): Likewise.
	[IS_IN (libpthread)] (CDISABLE): Likewise.
	[IS_IN (libc)] (CENABLE): Likewise.
	[IS_IN (libc)] (CENABLE): Likewise.
	[IS_IN (librt)] (CDISABLE): Likewise.
	[IS_IN (librt)] (CDISABLE): Likewise.
	(SINGLE_THREAD_P): Likewise.
	* sysdeps/unix/sysv/linux/mips/sysdep-cancel.h (PSEUDO): Remove
	definition.
	(PSEUDO_END): Likewise.
	[IS_IN (libpthread)] (CENABLE): Likewise.
	[IS_IN (libpthread)] (CDISABLE): Likewise.
	[IS_IN (libc)] (CENABLE): Likewise.
	[IS_IN (libc)] (CENABLE): Likewise.
	[IS_IN (librt)] (CDISABLE): Likewise.
	[IS_IN (librt)] (CDISABLE): Likewise.
	[__ASSEMBLER__] (SINGLE_THREAD_P): Likewise.
	* sysdeps/unix/sysv/linux/nios2/sysdep-cancel.h (PSEUDO): Remove
	definition.
	(PSEUDO_END): Likewise.
	[IS_IN (libpthread)] (CENABLE): Likewise.
	[IS_IN (libpthread)] (CDISABLE): Likewise.
	[IS_IN (libc)] (CENABLE): Likewise.
	[IS_IN (libc)] (CENABLE): Likewise.
	[IS_IN (librt)] (CDISABLE): Likewise.
	[IS_IN (librt)] (CDISABLE): Likewise.
	[__ASSEMBLER__] (SINGLE_THREAD_P): Likewise.
	* sysdeps/sysv/linux/powerpc/powerpc32/sysdep-cancel.h: Remove file.
	* sysdeps/sysv/linux/powerpc/powerpc64/sysdep-cancel.h: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/sysdep-cancel.h: New file.
	* sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h (PSEUDO): Remove
	definition.
	(PSEUDO_END): Likewise.
	[IS_IN (libpthread)] (CENABLE): Likewise.
	[IS_IN (libpthread)] (CDISABLE): Likewise.
	[IS_IN (libc)] (CENABLE): Likewise.
	[IS_IN (libc)] (CENABLE): Likewise.
	[IS_IN (librt)] (CDISABLE): Likewise.
	[IS_IN (librt)] (CDISABLE): Likewise.
	[__ASSEMBLER__] (SINGLE_THREAD_P): Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h (PSEUDO): Remove
	definition.
	(PSEUDO_END): Likewise.
	[IS_IN (libpthread)] (CENABLE): Likewise.
	[IS_IN (libpthread)] (CDISABLE): Likewise.
	[IS_IN (libc)] (CENABLE): Likewise.
	[IS_IN (libc)] (CENABLE): Likewise.
	[IS_IN (librt)] (CDISABLE): Likewise.
	[IS_IN (librt)] (CDISABLE): Likewise.
	[__ASSEMBLER__] (SINGLE_THREAD_P): Likewise.
	* sysdeps/unix/sysv/linux/sh/sysdep-cancel.h (PSEUDO): Remove
	definition.
	(PSEUDO_END): Likewise.
	[IS_IN (libpthread)] (CENABLE): Likewise.
	[IS_IN (libpthread)] (CDISABLE): Likewise.
	[IS_IN (libc)] (CENABLE): Likewise.
	[IS_IN (libc)] (CENABLE): Likewise.
	[IS_IN (librt)] (CDISABLE): Likewise.
	[IS_IN (librt)] (CDISABLE): Likewise.
	[__ASSEMBLER__] (SINGLE_THREAD_P): Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h: Remove file.
	* sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sysdep-cancel.h: New file.
	* sysdeps/unix/sysv/linux/tile/sysdep-cancel.h (PSEUDO): Remove
	definition.
	(PSEUDO_END): Likewise.
	[IS_IN (libpthread)] (CENABLE): Likewise.
	[IS_IN (libpthread)] (CDISABLE): Likewise.
	[IS_IN (libc)] (CENABLE): Likewise.
	[IS_IN (libc)] (CENABLE): Likewise.
	[IS_IN (librt)] (CDISABLE): Likewise.
	[IS_IN (librt)] (CDISABLE): Likewise.
	[__ASSEMBLER__] (SINGLE_THREAD_P): Likewise.
	* sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h (PSEUDO): Remove
	definition.
	(PSEUDO_END): Likewise.
	[IS_IN (libpthread)] (CENABLE): Likewise.
	[IS_IN (libpthread)] (CDISABLE): Likewise.
	[IS_IN (libc)] (CENABLE): Likewise.
	[IS_IN (libc)] (CENABLE): Likewise.
	[IS_IN (librt)] (CDISABLE): Likewise.
	[IS_IN (librt)] (CDISABLE): Likewise.
	[__ASSEMBLER__] (SINGLE_THREAD_P): Likewise.
2017-08-24 14:58:35 -03:00
Joseph Myers
80f91666fe Fix sparc32 bits/long-double.h (bug 21987).
My refactoring of long double information

commit 0acb8a2a85
Author: Joseph Myers <joseph@codesourcery.com>
Date:   Wed Dec 14 18:27:56 2016 +0000

    Refactor long double information into bits/long-double.h.

resulted in sparc32 configurations installing the ldbl-opt version of
bits/long-double.h instead of the intended
sysdeps/unix/sysv/linux/sparc version.

For sparc32 by itself, this is not a problem, since the ldbl-opt
version is correct for sparc32.  However, both sparc32 and sparc64 are
supposed to install sets of headers that work for both of them, so
that a single sysroot, whichever order the libraries are built and
installed in, works for both.  The effect of having the wrong version
installed is that you end up with a miscompiled sparc64 libstdc++
which fails glibc's configure tests for the C++ compiler.

This patch moves the header from sysdeps/unix/sysv/linux/sparc to
separate copies of the same file for sparc32 and sparc64, to ensure it
comes before ldbl-opt in the sysdeps directory ordering.

Tested with build-many-glibcs.py for sparc64-linux-gnu and
sparcv9-linux-gnu.

	[BZ #21987]
	* sysdeps/unix/sysv/linux/sparc/bits/long-double.h: Remove file
	and copy to ...
	* sysdeps/unix/sysv/linux/sparc/sparc32/bits/long-double.h:
	... here.
	* sysdeps/unix/sysv/linux/sparc/sparc64/bits/long-double.h:
	... and here.
2017-08-22 00:59:43 +00:00
Joseph Myers
831bbd5527 Remove SPARC sqrt wrappers (bug 21973).
This patch removes the SPARC-specific wrappers for sqrt and sqrtf.

These wrappers, by adding architecture-specific uses of _LIB_VERSION
and __kernel_standard, unnecessarily complicate cleanups of libm error
handling.  They also do not serve a useful optimization purpose.  GCC
knows about sqrt as a built-in function, and can generate direct calls
to a hardware square root instruction, either on its own, in the
-fno-math-errno case, or together with an inline check for the
argument being negative and a call to the out-of-line sqrt function
for error handling only in that case (and has been able to do so for a
long time).  Thus in practice the wrapper will only be called only in
the case of negative arguments, which is not a case it is useful to
optimize for.

The removal of the wrappers also uncovers, and fixes, an old bug.
32-bit SPARC libm used (checked with glibc 2.8 binaries) to have a
sqrtl compat symbol, version GLIBC_2.0, for old binaries when sqrtl
was an alias of sqrt (I don't have pre-glibc-2.4 binaries for SPARC to
hand to check for the sqrtl symbol in those).  This disappeared,
probably with:

commit 8847f03770
Author: David S. Miller <davem@davemloft.net>
Date:   Tue Feb 28 22:37:58 2012 -0800

    Add sparc optimized sqrt{,f}.

Removing the wrappers brings back the generic ldbl-opt logic for
creating such compat symbols, and so restores the compat symbol that
should be there.  This could of course also be fixed in the wrappers -
but as noted above, the wrappers are optimizing a case it's not useful
to optimize, so the bug of the missing compat symbol serves to
illustrate the risks involved with the extra complexity of
architecture-specific function versions where not needed.

Tested with build-many-glibcs.py.

	[BZ #21973]
	* sysdeps/sparc/sparc32/fpu/w_sqrt_compat.S: Remove file.
	* sysdeps/sparc/sparc32/fpu/w_sqrtf_compat.S: Likewise.
	* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/w_sqrt_compat-vis3.S:
	Likewise.
	* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/w_sqrt_compat.S:
	Likewise.
	* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/w_sqrtf_compat-vis3.S:
	Likewise.
	* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/w_sqrtf_compat.S:
	Likewise.
	* sysdeps/sparc/sparc32/sparcv9/fpu/w_sqrt_compat.S : Likewise.
	* sysdeps/sparc/sparc32/sparcv9/fpu/w_sqrtf_compat.S: Likewise.
	* sysdeps/sparc/sparc64/fpu/w_sqrt_compat.S: Likewise.
	* sysdeps/sparc/sparc64/fpu/w_sqrtf_compat.S: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist: Add
	GLIBC_2.0 sqrtl symbol.
2017-08-21 17:46:34 +00:00
Florian Weimer
2449ae7b2d ld.so: Introduce struct dl_exception
This commit separates allocating and raising exceptions.  This
simplifies catching and re-raising them because it is no longer
necessary to make a temporary, on-stack copy of the exception message.
2017-08-10 16:54:57 +02:00
Adhemerval Zanella
9b8f8593e5 Consolidate Linux fcntl implementation
This patch consolidates the fcntl Linux syscall generation on
sysdeps/unix/sysv/linux/fcntl.c.  It basically removes all the
architecture specific implementations.

Checked on i686-linux-gnu, x86_64-linux-gnu, x86_64-linux-gnux32,
aarch64-linux-gnu, arm-linux-gnueabihf, and powerpc64le-linux-gnu.

	* sysdeps/unix/sysv/linux/arm/fcntl.c: Remove file.
	* sysdeps/unix/sysv/linux/generic/wordsize-32/fcntl.c: Likewise.
	* sysdeps/unix/sysv/linux/hppa/fcntl.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/fcntl.c: Likewise.
	* sysdeps/unix/sysv/linux/m68k/fcntl.c: Likewise.
	* sysdeps/unix/sysv/linux/microblaze/fcntl.c: Likewise.
	* sysdeps/unix/sysv/linux/mips/mips32/fcntl.c: Likewise.
	* sysdeps/unix/sysv/linux/mips/mips64/n32/fcntl.c: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/fcntl.c: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/fcntl.c: Likewise.
	* sysdeps/unix/sysv/linux/sh/fcntl.c: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/fcntl.c: Likewise.
	* sysdeps/unix/sysv/linux/fcntl.c: New file.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/fcntl.c: Refactor to
	use default implementation.
2017-06-30 15:17:26 -03:00
Joseph Myers
e78dc67889 SPARC sys/ucontext.h namespace fixes (bug 21457).
This patch fixes various miscellaneous namespace issues in the SPARC
sys/ucontext.h header.  These are similar to changes made previous to
other sys/ucontext.h headers, where the SPARC header was excluded from
those previous patches because of its complexity.

Tested for SPARC with build-many-glibcs.py.

	[BZ #21457]
	* sysdeps/unix/sysv/linux/sparc/sys/ucontext.h (__ctx): New macro.
	[__WORDSIZE == 64] (MC_TSTATE): Define only for [__USE_MISC].
	[__WORDSIZE == 64] (MC_PC): Likewise.
	[__WORDSIZE == 64] (MC_NPC): Likewise.
	[__WORDSIZE == 64] (MC_Y): Likewise.
	[__WORDSIZE == 64] (MC_G1): Likewise.
	[__WORDSIZE == 64] (MC_G2): Likewise.
	[__WORDSIZE == 64] (MC_G3): Likewise.
	[__WORDSIZE == 64] (MC_G4): Likewise.
	[__WORDSIZE == 64] (MC_G5): Likewise.
	[__WORDSIZE == 64] (MC_G6): Likewise.
	[__WORDSIZE == 64] (MC_G7): Likewise.
	[__WORDSIZE == 64] (MC_O0): Likewise.
	[__WORDSIZE == 64] (MC_O1): Likewise.
	[__WORDSIZE == 64] (MC_O2): Likewise.
	[__WORDSIZE == 64] (MC_O3): Likewise.
	[__WORDSIZE == 64] (MC_O4): Likewise.
	[__WORDSIZE == 64] (MC_O5): Likewise.
	[__WORDSIZE == 64] (MC_O6): Likewise.
	[__WORDSIZE == 64] (MC_O7): Likewise.
	[__WORDSIZE == 64] (MC_NGREG): Rename to __MC_NGREG and define to
	__MC_NGREG if [__USE_MISC].
	[__WORDSIZE == 64] (MC_MAXFPQ): Define only for [__USE_MISC].
	[__WORDSIZE == 64] (mc_gregset_t): Define using __MC_NGREG.
	[__WORDSIZE == 64] (struct mc_fq): Rename to struct __mc_fq.
	Define fields using __ctx.
	[__WORDSIZE == 64] (mc_fpu_t): Remove struct tag.  Define fields
	using __ctx.
	[__WORDSIZE == 64] (mcontext_t): Define fields using __ctx.
	(REG_PSR): Define only for [__USE_MISC].
	(REG_PC): Likewise.
	(REG_nPC): Likewise.
	(REG_Y): Likewise.
	(REG_G1): Likewise.
	(REG_G2): Likewise.
	(REG_G3): Likewise.
	(REG_G4): Likewise.
	(REG_G5): Likewise.
	(REG_G6): Likewise.
	(REG_G7): Likewise.
	(REG_O0): Likewise.
	(REG_O1): Likewise.
	(REG_O2): Likewise.
	(REG_O3): Likewise.
	(REG_O4): Likewise.
	(REG_O5): Likewise.
	(REG_O6): Likewise.
	(REG_O7): Likewise.
	[__WORDSIZE == 64] (REG_ASI): Define only for [__USE_MISC].
	[__WORDSIZE == 64] (REG_FPRS): Likewise.
	(NGREG): Rename to __NGREG and define to __NGREG if [__USE_MISC].
	(gregset_t): Define using __NGREG.
	(SPARC_MAXREGWINDOW): Rename to __SPARC_MAXREGWINDOW and define to
	__SPARC_MAXREGWINDOW if [__USE_MISC].
	(struct rwindow): Rename to struct __rwindow.  Define fields using
	__ctx.
	(rw_fp): Define only for [__USE_MISC].
	(rw_rtn): Likewise.
	(gwindows_t): Remove struct tag.  Define fields using __ctx and
	__SPARC_MAXREGWINDOW.
	(MAXFPQ): Define only for [__USE_MISC].
	(struct fpq): Rename to struct __fpq.  Define fields using __ctx.
	(struct fq): Rename to struct __fq.  Define fields using __ctx.
	(FPU_REGS_TYPE): Define only for [__USE_MISC].
	(FPU_DREGS_TYPE): Likewise.
	(V7_FPU_FSR_TYPE): Likewise.
	(V9_FPU_FSR_TYPE): Likewise.
	(V9_FPU_FPRS_TYPE): Likewise.
	[__WORDSIZE == 64] (fpregset_t): Remove struct tag.  Define fields
	using __ctx.
	[__WORDSIZE != 64] (fpregset_t): Likewise.
	[__WORDSIZE != 64] (xrs_t): Define fields using __ctx.
	[__WORDSIZE != 64] (XRS_ID): Define only for [__USE_MISC].
	[__WORDSIZE != 64] (mcontext_t): Define fields using __ctx.
	Rename field filler to __glibc_reserved1.
	* sysdeps/unix/sysv/linux/sparc/sparc32/ucontext_i.sym
	(MC_FILLER): Remove.
2017-06-29 19:44:43 +00:00
Adhemerval Zanella
3f823e87cc Call exit directly in clone (BZ #21512)
On aarch64, alpha, arm, hppa, mips, nios2, powerpc, sh, sparc, tile,
and x86_64 the clone syscall jumps to _exit after the child execution
and the function ends the process execution by calling exit_group.
This behavior have a small issue where threads created with
CLONE_THREAD using clone syscall directly will eventually exit the
whole group altogether instead of just the thread created.  Also,
s390, microblaze, ia64, i386, and m68k differs by calling exit
syscall directly.

This patch changes all architectures to call the exit syscall
directly, as for s390, microblaze, ia64, i386, and m68k.  This do not
have change glibc internal behavior in any sort, since the only
usage of clone implementation in posix_spawn calls _exit directly
in the created child (fork uses a direct call to clone).

Checked on x86_64-linux-gnu, i686-linux-gnu, aarch64-linux-gnu,
powerpc-linux-gnu, powerpc64le-linux-gnu, sparc64-linux-gnu,
and sparcv9-linux-gnu.

	[BZ #21512]
	* sysdeps/unix/sysv/linux/aarch64/clone.S (__clone): Call exit
	syscall instead of jump to _exit.
	(CLONE_VM_BIT): Remove unused define.
	(CLONE_VM): Likewise.
	(CLONE_THREAD_BIT): Likewise.
	(CLONE_THREAD): Likewise.
	* sysdeps/unix/sysv/linux/alpha/clone.S (__clone): Likewise.
	(CLONE_VM): Remove unused define.
	* sysdeps/unix/sysv/linux/arm/clone.S (__clone): Likewise.
	(CLONE_VM): Remove unused define.
	(CLONE_THREAD): Likewise.
	* sysdeps/unix/sysv/linux/i386/clone.S (CLONE_VM): Likewise.
	* sysdeps/unix/sysv/linux/ia64/clone2.S (__clone2): Call exit
	syscall instead of jump to _exit.
	* sysdeps/unix/sysv/linux/hppa/clone.S (__clone): Likewise.
	* sysdeps/unix/sysv/linux/mips/clone.S (__clone): Likewise.
	(CLONE_VM): Remove unused define.
	(CLONE_THREAD): Likewise.
	* sysdeps/unix/sysv/linux/nios2/clone.S (__clone): Likewise.
	(CLONE_VM): Remove unused define.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S (__clone):
	Likewise.
	(CLONE_VM): Remove unused define.
	(CLONE_THREAD): Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/clone.S (__clone):
	Likewise.
	(CLONE_VM): Remove unused define.
	(CLONE_THREAD): Likewise.
	* sysdeps/unix/sysv/linux/sh/clone.S  (__clone): Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/clone.S (__clone): Likewise.
	(CLONE_VM): Remove unused define.
	* sysdeps/unix/sysv/linux/sparc/sparc64/clone.S (__clone): Likewise.
	(CLONE_VM): Remove unused define.
	* sysdeps/unix/sysv/linux/tile/clone.S (__clone): Likewise.
	* sysdeps/unix/sysv/linux/x86_64/clone.S (__clone): Likewise.
	(CLONE_VM): Remove unused define.
	* sysdeps/unix/sysv/linux/Makefile (tests): Add tst-clone3.
	* sysdeps/unix/sysv/linux/tst-clone3.c: New file.

Fix
2017-06-26 17:52:20 -03:00
Joseph Myers
10d33c5a86 Update nios2, sparc32 localplt.data files for recent GCC change.
A recent GCC change to expand floating-point classification built-in
functions inline using integer rather than floating-point arithmetic
in some cases resulted in localplt test failures for nios2 and sparc32
<https://sourceware.org/ml/libc-testresults/2017-q2/msg00320.html>.
This patch updates the localplt.data files in question to mark the
relevant symbols as optional / add a new optional symbol.  (The GCC
patch has been reverted because of other problems it caused, but one
can assume it will be applied again, without changes that would affect
the PLT entries generated, once those issues have been resolved.)

Tested with build-many-glibcs.py.

	* sysdeps/unix/sysv/linux/nios2/localplt.data (__gtdf2): Mark
	libc.so PLT entry optional.
	(__gtsf2): Likewise.
	(__unorddf2): Likewise.
	(__unordsf2): Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/localplt.data (_Q_fgt):
	New optional libc.so PLT entry.
2017-06-09 16:26:06 +00:00
Adhemerval Zanella
52bd938169 posix: Implement preadv2 and pwritev2
This patch adds support of preadv2 and pwritev2 which are similar to
preadv/pwritev but with an extra flag argument.  As for preadv/pwritev
both interfaces are added a non-standard GNU API.

For default 'posix' implementation trying to emulate the Linux supported
flags is troublesome:

   * We can not temporary change the file state of the O_DSYNC and O_SYNC
     flags to emulate RWF_{D}SYNC (attempts to change the state of using
     fcntl are silently ignored).

   * IOCB_HIPRI requires the file opened in O_DIRECT and uses an internal
     semantic not provided by any other flag (O_NONBLOCK for instance).

So default sysdeps/posix implementations fails with EOPNOTSUPP for any non
supported flag (which are none currently) calls generic preadv/pwritev.
Basically this implementation supports only preadv2 called as preadv (with
flags sets to 0).

The Linux one uses the preadv2/pwritev2 syscall if defined, otherwise it
call preadv/writev.  Instead of using the previous __ASSUME_* to
unconditionally issue the syscall (and avoid building the fallback routine),
it call pread/write if the preadv2/pwritev2 syscalls fails.  The idea
is just avoid adding another __ASSUME_* and checking each architecture
on every kernel bump and simplify code conditionals.

Checked on x86_64-linux-gnu and on i686-linux-gnu and a check with
run-built-tests=no on aarch64-linux-gnu, alpha-linux-gnu, arm-linux-gnueabihf,
ia64-linux-gnu, m68k-linux-gnu, microblaze-linux-gnu, mips{64,64n32}-linux-gnu,
nios2-linux-gnu, powerpc{64,64le}-linux-gnu, s390{x}-linux-gnu,
sparc{64,v9}-linux-gnu, tile{gx,pro}-linux-gnu, and sh4-linux-gnu (all using
gcc 6.3).

	* NEWS: Add note about pwritev2 and preadv2 inclusion.
	* misc/Makefile (routines): Add preadv2, preadv64v2, pwritev2, and
	pwritev64v2.
	(tests): Add tst-preadvwritev2 and tst-preadvwritev64v2.
	* misc/Versions (GLIBC_2.26): Add preadv2, preadv64v2, pwritev2, and
	pwritev64v2.
	* misc/preadv2.c: New file.
	* misc/preadv64v2.c: Likewise.
	* misc/pwritev2.c: Likewise.
	* misc/pwritev64v2.c: Likewise.
	* misc/tst-preadvwritev2.c: Likewise.
	* misc/tst-preadvwritev64v2.c: Likewise.
	* manual/llio.texi: Add preadv2 and pwritev2 documentation.
	* misc/sys/uio.h [__USE_GNU && !__USE_FILE_OFFSET64] (preadv2): New
	prototype.
	[__USE_GNU && !__USE_FILE_OFFSET64] (pwritev2):	Likewise.
	[__USE_GNU && __USE_FILE_OFFSET64] (preadv64v2): Likewise.
	[__USE_GNU && __USE_FILE_OFFSET64] (pwritev64v2): Likewise.
	* misc/tst-preadvwritev-common.c (PREADV): Define if not defined.
	(PWRITEV): Likewise.
	(do_test_with_offset): Use PREADV and PWRITEV macros and check for
	ENOSYS.
	* nptl/tst-cancel4.c (tf_pwritev2): New test.
	(tf_preadv2): Likewise.
	(tf_fsync): Add tf_pwritev2 and tf_preadv2.
	* sysdeps/posix/preadv2.c: Likewise.
	* sysdeps/posix/preadv64v2.c: Likewise.
	* sysdeps/posix/pwritev2.c: Likewise.
	* sysdeps/posix/pwritev64v2.c: Likewise.
	* sysdeps/unix/sysv/linux/kernel-features.h: Add comment for syscall
	support in kernel.
	* sysdeps/unix/sysv/linux/preadv2.c: Likewise.
	* sysdeps/unix/sysv/linux/preadv64v2.c: Likewise.
	* sysdeps/unix/sysv/linux/pwritev2.c: Likewise.
	* sysdeps/unix/sysv/linux/pwritev64v2.c: Likewise.
	* sysdeps/unix/sysv/linux/preadv.c (preadv): Add libc_hidden_def.
	* sysdeps/unix/sysv/linux/preadv64.c (preadv64): Likewise.
	* sysdeps/unix/sysv/linux/pwritev.c (pwritev): Likewise.
	* sysdeps/unix/sysv/linux/pwritev64.c (pwritev64): Likewise.
	* sysdeps/unix/sysv/linux/bits/uio.h: Add supported preadv2/pwritev2
	support flags on Linux.
	* sysdeps/unix/sysv/linux/aarch64/libc.abilist (GLIBC_2.26): Add
	preadv2, preadv64v2, pwritev2, pwritev64v2.
	* sysdeps/unix/sysv/linux/alpha/libc.abilist (GLIBC_2.26): Likewise.
	* sysdeps/unix/sysv/linux/arm/libc.abilist (GLIBC_2.26): Likewise.
	* sysdeps/unix/sysv/linux/hppa/libc.abilist (GLIBC_2.26): Likewise.
	* sysdeps/unix/sysv/linux/i386/libc.abilist (GLIBC_2.26): Likewise.
	* sysdeps/unix/sysv/linux/ia64/libc.abilist (GLIBC_2.26): Likewise.
	* sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist (GLIBC_2.26):
	Likewise.
	* sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist (GLIBC_2.26):
	Likewise.
	* sysdeps/unix/sysv/linux/microblaze/libc.abilist (GLIBC_2.26):
	Likewise.
	* sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist (GLIBC_2.26):
	Likewise.
	* sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist (GLIBC_2.26):
	Likewise.
	* sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist (GLIBC_2.26):
	Likewise.
	* sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist (GLIBC_2.26):
	Likewise.
	* sysdeps/unix/sysv/linux/nios2/libc.abilist (GLIBC_2.26): Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
	(GLIBC_2.26): Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
	(GLIBC_2.26): Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist (GLIBC_2.26):
	Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist
	(GLIBC_2.26): Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist (GLIBC_2.26):
	Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist (GLIBC_2.26):
	Likewise.
	* sysdeps/unix/sysv/linux/sh/libc.abilist (GLIBC_2.26): Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist (GLIBC_2.26):
	Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist (GLIBC_2.26):
	Likewise.
	* sysdeps/sysv/linux/tile/tilegx/tilegx32/libc.abilist (GLIBC_2.26):
	Likewise.
	* sysdeps/sysv/linux/tile/tilegx/tilegx64/libc.abilist (GLIBC_2.26):
	Likewise.
	* sysdeps/unix/sysv/linux/tile/tilepro/libc.abilist (GLIBC_2.26):
	Likewise.
	* sysdeps/unix/sysv/linux/x86_64/64/libc.abilist (GLIBC_2.26):
	Likewise.
	* sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist (GLIBC_2.26):
	Likewise.
2017-05-31 17:35:46 -03:00
Dennis Wölfing
2e0bbbfbf9 Add reallocarray function
The reallocarray function is an extension from OpenBSD.  It is an
integer-overflow-safe replacement for realloc(p, X*Y) and
malloc(X*Y) (realloc(NULL, X*Y)).  It can therefore help in preventing
certain security issues in code.

This is an updated version of a patch originally submitted by Rüdiger
Sonderfeld in May 2014 [1].

Checked on i686-linux-gnu and x86_64-linux-gnu.

[1] <https://sourceware.org/ml/libc-alpha/2014-05/msg00481.html>.

2017-05-30  Dennis Wölfing  <denniswoelfing@gmx.de>
            Rüdiger Sonderfeld  <ruediger@c-plusplus.de>

	* include/stdlib.h (__libc_reallocarray): New declaration.
	* malloc/Makefile (routines): Add reallocarray.
	(tests): Add tst-reallocarray.c.
	* malloc/Versions: Add reallocarray and __libc_reallocarray.
	* malloc/malloc-internal.h (check_mul_overflow_size_t): New inline
	function.
	* malloc/malloc.h (reallocarray): New declaration.
	* stdlib/stdlib.h (reallocarray): Likewise.
	* malloc/reallocarray.c: New file.
	* malloc/tst-reallocarray.c: New test file.
	* manual/memory.texi: Document reallocarray.
	* sysdeps/unix/sysv/linux/aarch64/libc.abilist: Add reallocarray.
	* 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/nios2/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/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/tilepro/libc.abilist: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/64/libc.abilist: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist: Likewise.
2017-05-30 18:27:57 -03:00
Adhemerval Zanella
dd5905de03 Consolidate set* Linux implementation
This patch consolidates the Linux setegid, seteuid, setgid, setgroups,
setregid, setresgid, setresuid, setreuid, and setuid implementation on
default sysdeps/unix/sysv/linux/set*.c implementation.  It basically
removes all the architecture define implementations and add support for
__NR_set*32 syscall on Linux default implementation.

Checked on i686-linux-gnu, x86_64-linux-gnu, x86_64-linux-gnux32,
aarch64-linux-gnu, arm-linux-gnueabihf, and powerpc64le-linux-gnu.

	* sysdeps/unix/sysv/linux/arm/setegid.c: Remove file.
	* sysdeps/unix/sysv/linux/arm/seteuid.c: Likewise.
	* sysdeps/unix/sysv/linux/arm/setgid.c: Likewise.
	* sysdeps/unix/sysv/linux/arm/setgroups.c: Likewise.
	* sysdeps/unix/sysv/linux/arm/setregid.c: Likewise.
	* sysdeps/unix/sysv/linux/arm/setresgid.c: Likewise.
	* sysdeps/unix/sysv/linux/arm/setresuid.c: Likewise.
	* sysdeps/unix/sysv/linux/arm/setreuid.c: Likewise.
	* sysdeps/unix/sysv/linux/arm/setuid.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/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/setuid.c: Likewise.
	* sysdeps/unix/sysv/linux/m68k/setegid.c: Likewise.
	* sysdeps/unix/sysv/linux/m68k/seteuid.c: Likewise.
	* sysdeps/unix/sysv/linux/m68k/setgid.c: Likewise.
	* sysdeps/unix/sysv/linux/m68k/setgroups.c: Likewise.
	* sysdeps/unix/sysv/linux/m68k/setregid.c: Likewise.
	* sysdeps/unix/sysv/linux/m68k/setresgid.c: Likewise.
	* sysdeps/unix/sysv/linux/m68k/setresuid.c: Likewise.
	* sysdeps/unix/sysv/linux/m68k/setreuid.c: Likewise.
	* sysdeps/unix/sysv/linux/m68k/setuid.c: Likewise.
	* sysdeps/unix/sysv/linux/microblaze/setgroups.c: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/setegid.c: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/seteuid.c: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/setgid.c: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/setgroups.c: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/setregid.c: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/setresgid.c: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/setresuid.c: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/setreuid.c: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/setuid.c: Likewise.
	* sysdeps/unix/sysv/linux/sh/setegid.c: Likewise.
	* sysdeps/unix/sysv/linux/sh/seteuid.c: Likewise.
	* sysdeps/unix/sysv/linux/sh/setgid.c: Likewise.
	* sysdeps/unix/sysv/linux/sh/setgroups.c: Likewise.
	* sysdeps/unix/sysv/linux/sh/setregid.c: Likewise.
	* sysdeps/unix/sysv/linux/sh/setresgid.c: Likewise.
	* sysdeps/unix/sysv/linux/sh/setresuid.c: Likewise.
	* sysdeps/unix/sysv/linux/sh/setreuid.c: Likewise.
	* sysdeps/unix/sysv/linux/sh/setuid.c: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/setegid.c: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/seteuid.c: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/setgid.c: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/setgroups.c: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/setregid.c: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/setresgid.c: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/setresuid.c: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/setreuid.c: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/setuid.c: Likewise.
	* sysdeps/unix/sysv/linux/setegid.c (setegid): Use
	INLINE_SYSCALL_ERROR_RETURN_VALUE.
	* sysdeps/unix/sysv/linux/seteuid.c (seteuid): Likewise.
	* sysdeps/unix/sysv/linux/setgid.c (setgid): Use __NR_setgid32 if
	defined.
	* sysdeps/unix/sysv/linux/setgroups.c (setgroups): Use
	__NR_setgroups32 if defined.
	* sysdeps/unix/sysv/linux/setregid.c (__setregid): Use __NR_setregid32
	if defined.
	* sysdeps/unix/sysv/linux/setresgid.c (__setresgid): Use
	__NR_setresgid32 is defined.
	* sysdeps/unix/sysv/linux/setresuid.c (__setresuid): Use
	__NR_setresuid32 if defined.
	* sysdeps/unix/sysv/linux/setreuid.c (__setreuid): Use
	__NR_setreuid32 if defined.
	* sysdeps/unix/sysv/linux/setuid.c (__setuid): Use __NR_setuid32 if
	defined.
2017-03-28 12:29:27 -03:00
Ivo Raisr
0b20e02c97 sparc: Remove unused assignment in __clone
It is no longer needed to preserve the flags parameter to `clone' since
the commit c579f48edb (Remove cached
PID/TID in clone).

Testing was performed successfully on sparcv9/Linux.

	[BZ #21075]
	* sysdeps/unix/sysv/linux/sparc/sparc64/clone.S (__clone): Remove
	unused assignment.
	* sysdeps/unix/sysv/linux/sparc/sparc32/clone.S (__clone): Likewise.
2017-02-06 11:30:41 -02:00
Joseph Myers
bfff8b1bec Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
Joseph Myers
423c2b9d08 Add fromfp functions.
TS 18661-1 defines fromfp functions (fromfp, fromfpx, ufromfp,
ufromfpx, and float and long double variants) to convert from
floating-point to an integer type with any signedness and any given
width up to that of intmax_t, in any of the five IEEE rounding modes
(the usual four for binary floating point, plus rounding to nearest
with ties rounding away from zero), with control of whether in-range
non-integer values should result in the "inexact" exception being
raised.  This patch implements these functions for glibc.

These implementations are (apart from raising exceptions) pure integer
implementations; it's entirely possible optimized versions could be
devised for some architectures.  A common math/fromfp.h header
provides various common helper code that can readily be shared between
the implementations for different types.  For each type, the bulk of
the implementation is also shared between the four functions, with
wrappers that define UNSIGNED and INEXACT macros appropriately before
including the main implementation.

As the functions return intmax_t and uintmax_t without math.h being
allowed to expose those typedef names, they are declared using
__intmax_t and __uintmax_t as obtained from <bits/types.h>.

The FP_INT_* rounding direction macros are defined as ascending
integers in the order the names are listed in the TS; I see no
significant value in allowing architectures to vary the values of
them.

The libm-test machinery is duly adapted to handle unsigned int
arguments, and intmax_t and uintmax_t results.  Because each test
input is generally tested for four functions, five rounding modes and
several different widths, the libm-test.inc additions are very large.
Thus, the diffs in the body of this message exclude the libm-test.inc
changes, with the full patch being attached gzipped.  The bulk of the
new tests were generated (expanded from a test input plus rounding
results and information about where it lies in the relevant interval
between integers, to libm-test tests for all relevant combinations of
function, rounding direction and width) by a script that's included in
the patch as math/gen-fromfp-tests.py (input data
math/gen-fromfp-tests-inputs); as an ad hoc script that's not really
expected to be rerun, it's not very polished, but it's at least
plausibly useful for adding any further tests for these functions in
future.  I may split the libm-test tests up by function in future (so
both libm-test.inc and auto-libm-test-out are split into separate
files, and the tests for each function are also built and run
separately), but not for 2.25.

For no obvious reason, adding tgmath tests for the new functions
resulted in -Wuninitialized errors from test-tgmath.c about the
variable i being used uninitialized.  Those errors were correct - the
variable is read by the frexp version in test-tgmath.c (where real
frexp would write through that pointer instead of reading it) - but I
don't know why this patch would result in the pre-existing issue being
newly detected.  The patch initializes the variable to avoid those
errors.

With these changes, glibc 2.25 should have all the library features
from TS 18661-1 other than the functions that round result to narrower
type (and constant rounding directions, but I'm considering those
mainly a compiler feature not a library one).

Tested for x86_64, x86, mips64 and powerpc.

	* math/bits/mathcalls.h [__GLIBC_USE (IEC_60559_BFP_EXT)]
	(fromfp): New declaration.
	[__GLIBC_USE (IEC_60559_BFP_EXT)] (fromfpx): Likewise.
	[__GLIBC_USE (IEC_60559_BFP_EXT)] (ufromfp): Likewise.
	[__GLIBC_USE (IEC_60559_BFP_EXT)] (ufromfpx): Likewise.
	* math/tgmath.h (__TGMATH_TERNARY_FIRST_REAL_RET_ONLY): New macro.
	[__GLIBC_USE (IEC_60559_BFP_EXT)] (fromfp): Likewise.
	[__GLIBC_USE (IEC_60559_BFP_EXT)] (ufromfp): Likewise.
	[__GLIBC_USE (IEC_60559_BFP_EXT)] (fromfpx): Likewise.
	[__GLIBC_USE (IEC_60559_BFP_EXT)] (ufromfpx): Likewise.
	* math/math.h: Include <bits/types.h>.
	[__GLIBC_USE (IEC_60559_BFP_EXT)] (FP_INT_UPWARD): New enum
	constant and macro.
	(FP_INT_DOWNWARD): Likewise.
	(FP_INT_TOWARDZERO): Likewise.
	(FP_INT_TONEARESTFROMZERO): Likewise.
	(FP_INT_TONEAREST): Likewise.
	* math/Versions (fromfp): New libm symbol at version GLIBC_2.25.
	(fromfpf): Likewise.
	(fromfpl): Likewise.
	(ufromfp): Likewise.
	(ufromfpf): Likewise.
	(ufromfpl): Likewise.
	(fromfpx): Likewise.
	(fromfpxf): Likewise.
	(fromfpxl): Likewise.
	(ufromfpx): Likewise.
	(ufromfpxf): Likewise.
	(ufromfpxl): Likewise.
	* math/Makefile (libm-calls): Add s_fromfpF, s_ufromfpF,
	s_fromfpxF and s_ufromfpxF.
	* math/gen-fromfp-tests.py: New file.
	* math/gen-fromfp-tests-inputs: Likewise.
	* math/libm-test.inc: Include <stdint.h>
	(check_intmax_t): New function.
	(check_uintmax_t): Likewise.
	(struct test_fiu_M_data): New type.
	(struct test_fiu_U_data): Likewise.
	(RUN_TEST_fiu_M): New macro.
	(RUN_TEST_LOOP_fiu_M): Likewise.
	(RUN_TEST_fiu_U): Likewise.
	(RUN_TEST_LOOP_fiu_U): Likewise.
	(fromfp_test_data): New array.
	(fromfp_test): New function.
	(fromfpx_test_data): New array.
	(fromfpx_test): New function.
	(ufromfp_test_data): New array.
	(ufromfp_test): New function.
	(ufromfpx_test_data): New array.
	(ufromfpx_test): New function.
	(main): Call fromfp_test, fromfpx_test, ufromfp_test and
	ufromfpx_test.
	* math/gen-libm-test.pl (parse_args): Handle u, M and U descriptor
	characters.
	* math/test-tgmath-ret.c: Include <stdint.h>.
	(rm): New variable.
	(width): Likewise.
	(CHECK_RET_CONST_TYPE): Take extra arguments and pass them to
	called function.
	(CHECK_RET_CONST_FLOAT): Take extra arguments and pass them to
	CHECK_RET_CONST_TYPE.
	(CHECK_RET_CONST_DOUBLE): Likewise.
	(CHECK_RET_CONST_LDOUBLE): Likewise.
	(CHECK_RET_CONST): Take extra arguments and pass them to calls
	macros.
	(fromfp): New CHECK_RET_CONST call.
	(ufromfp): Likewise.
	(fromfpx): Likewise.
	(ufromfpx): Likewise.
	(do_test): Call check_return_fromfp, check_return_ufromfp,
	check_return_fromfpx and check_return_ufromfpx.
	* math/test-tgmath.c: Include <stdint.h>
	(NCALLS): Increase to 138.
	(F(compile_test)): Initialize i.  Call fromfp functions.
	(F(fromfp)): New function.
	(F(fromfpx)): Likewise.
	(F(ufromfp)): Likewise.
	(F(ufromfpx)): Likewise.
	* manual/arith.texi (Rounding Functions): Document FP_INT_UPWARD,
	FP_INT_DOWNWARD, FP_INT_TOWARDZERO, FP_INT_TONEARESTFROMZERO,
	FP_INT_TONEAREST, fromfp, fromfpf, fromfpl, ufromfp, ufromfpf,
	ufromfpl, fromfpx, fromfpxf, fromfpxl, ufromfpx, ufromfpxf and
	ufromfpxl.
	* manual/libm-err-tab.pl (@all_functions): Add fromfp, fromfpx,
	ufromfp and ufromfpx.
	* math/fromfp.h: New file.
	* sysdeps/ieee754/dbl-64/s_fromfp.c: Likewise.
	* sysdeps/ieee754/dbl-64/s_fromfp_main.c: Likewise.
	* sysdeps/ieee754/dbl-64/s_fromfpx.c: Likewise.
	* sysdeps/ieee754/dbl-64/s_ufromfp.c: Likewise.
	* sysdeps/ieee754/dbl-64/s_ufromfpx.c: Likewise.
	* sysdeps/ieee754/flt-32/s_fromfpf.c: Likewise.
	* sysdeps/ieee754/flt-32/s_fromfpf_main.c: Likewise.
	* sysdeps/ieee754/flt-32/s_fromfpxf.c: Likewise.
	* sysdeps/ieee754/flt-32/s_ufromfpf.c: Likewise.
	* sysdeps/ieee754/flt-32/s_ufromfpxf.c: Likewise.
	* sysdeps/ieee754/ldbl-128/s_fromfpl.c: Likewise.
	* sysdeps/ieee754/ldbl-128/s_fromfpl_main.c: Likewise.
	* sysdeps/ieee754/ldbl-128/s_fromfpxl.c: Likewise.
	* sysdeps/ieee754/ldbl-128/s_ufromfpl.c: Likewise.
	* sysdeps/ieee754/ldbl-128/s_ufromfpxl.c: Likewise.
	* sysdeps/ieee754/ldbl-128ibm/s_fromfpl.c: Likewise.
	* sysdeps/ieee754/ldbl-128ibm/s_fromfpl_main.c: Likewise.
	* sysdeps/ieee754/ldbl-128ibm/s_fromfpxl.c: Likewise.
	* sysdeps/ieee754/ldbl-128ibm/s_ufromfpl.c: Likewise.
	* sysdeps/ieee754/ldbl-128ibm/s_ufromfpxl.c: Likewise.
	* sysdeps/ieee754/ldbl-96/s_fromfpl.c: Likewise.
	* sysdeps/ieee754/ldbl-96/s_fromfpl_main.c: Likewise.
	* sysdeps/ieee754/ldbl-96/s_fromfpxl.c: Likewise.
	* sysdeps/ieee754/ldbl-96/s_ufromfpl.c: Likewise.
	* sysdeps/ieee754/ldbl-96/s_ufromfpxl.c: Likewise.
	* sysdeps/ieee754/ldbl-opt/Makefile (libnldbl-calls): Add fromfp,
	ufromfp, fromfpx and ufromfpx.
	(CFLAGS-nldbl-fromfp.c): New variable.
	(CFLAGS-nldbl-fromfpx.c): Likewise.
	(CFLAGS-nldbl-ufromfp.c): Likewise.
	(CFLAGS-nldbl-ufromfpx.c): Likewise.
	* sysdeps/ieee754/ldbl-opt/nldbl-compat.h: Include <stdint.h>.
	* sysdeps/ieee754/ldbl-opt/nldbl-fromfp.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-fromfpx.c: Likewise.
	* sysdeps/ieee754/ldbl-opt/nldbl-ufromfp.c: Likewise.
	* sysdeps/ieee754/ldbl-opt/nldbl-ufromfpx.c: Likewise.
	* sysdeps/nacl/libm.abilist: Update.
	* sysdeps/unix/sysv/linux/aarch64/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/alpha/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/arm/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/hppa/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/i386/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/ia64/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/microblaze/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/mips/mips32/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/mips/mips64/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/nios2/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist:
	Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist:
	Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/libm-le.abilist:
	Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/libm.abilist:
	Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/sh/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libm.abilist:
	Likewise.
	* sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libm.abilist:
	Likewise.
	* sysdeps/unix/sysv/linux/tile/tilepro/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/64/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist: Likewise.
2016-12-31 00:40:59 +00:00
Nick Alcock
2e6c45c59b Do not stack-protect sigreturn stubs [BZ #7065]
These are called from the kernel with the stack at a carefully-
chosen location so that the stack frame can be restored: they must not
move the stack pointer lest garbage be restored into the registers.

We explicitly inhibit protection for SPARC and for signal/sigreturn.c:
other arches either define their sigreturn stubs in .S files, or (i386,
x86_64, mips) use macros expanding to top-level asm blocks and explicit
labels in the text section to mock up a "function" without telling the
compiler that one is there at all.
2016-12-26 10:11:06 +01:00
Joseph Myers
41c67149b9 Add roundeven, roundevenf, roundevenl.
TS 18661-1 defines roundeven functions that round a floating-point
number to the nearest integer, in that floating-point type, with ties
rounding to even (whereas the round functions round ties away from
zero).  As with other such functions, they raise no exceptions apart
from "invalid" for signaling NaNs.  There was a previous user request
for this functionality in glibc in
<https://sourceware.org/ml/libc-help/2015-02/msg00005.html>.

This patch implements these functions for glibc.  The implementations
use integer bit-manipulation (or roundeven on the high and low parts,
in the IBM long double case).  It's possible that there may be faster
approaches on some architectures (in particular, on AArch64 the frintn
instruction should do exactly what's required); I'll leave it to
architecture maintainers or others interested to implement such
architecture-specific versions if desired.  (Where architectures have
instructions to round to nearest integer in the current rounding mode,
implementations saving and restoring the rounding mode - and dealing
with exceptions if those instructions generate "inexact" - are also
possible, though their performance depends on the cost of manipulating
exceptions / rounding mode state.)

Tested for x86_64, x86, mips64 and powerpc.

	* math/bits/mathcalls.h [__GLIBC_USE (IEC_60559_BFP_EXT)]
	(roundeven): New declaration.
	* math/tgmath.h [__GLIBC_USE (IEC_60559_BFP_EXT)] (roundeven): New
	macro.
	* math/Versions (roundeven): New libm symbol at version
	GLIBC_2.25.
	(roundevenf): Likewise.
	(roundevenl): Likewise.
	* math/Makefile (libm-calls): Add s_roundevenF.
	* math/libm-test.inc (roundeven_test_data): New array.
	(roundeven_test): New function.
	(main): Call roundeven_test.
	* math/test-tgmath.c (NCALLS): Increase to 134.
	(F(compile_test)): Call roundeven.
	(F(roundeven)): New function.
	* manual/arith.texi (Rounding Functions): Document roundeven,
	roundevenf and roundevenl.
	* manual/libm-err-tab.pl (@all_functions): Add roundeven.
	* include/math.h (roundeven): Use libm_hidden_proto.
	* sysdeps/ieee754/dbl-64/s_roundeven.c: New file.
	* sysdeps/ieee754/dbl-64/wordsize-64/s_roundeven.c: Likewise.
	* sysdeps/ieee754/flt-32/s_roundevenf.c: Likewise.
	* sysdeps/ieee754/ldbl-128/s_roundevenl.c: Likewise.
	* sysdeps/ieee754/ldbl-128ibm/s_roundevenl.c: Likewise.
	* sysdeps/ieee754/ldbl-96/s_roundevenl.c: Likewise.
	* sysdeps/ieee754/ldbl-opt/Makefile (libnldbl-calls): Add
	roundeven.
	(CFLAGS-nldbl-roundeven.c): New variable.
	* sysdeps/ieee754/ldbl-opt/nldbl-roundeven.c: New file.
	* sysdeps/nacl/libm.abilist: Update.
	* sysdeps/unix/sysv/linux/aarch64/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/alpha/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/arm/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/hppa/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/i386/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/ia64/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/microblaze/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/mips/mips32/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/mips/mips64/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/nios2/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist:
	Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist:
	Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/libm-le.abilist:
	Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/libm.abilist:
	Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/sh/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libm.abilist:
	Likewise.
	* sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libm.abilist:
	Likewise.
	* sysdeps/unix/sysv/linux/tile/tilepro/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/64/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist: Likewise.
2016-12-21 01:48:27 +00:00
Joseph Myers
525f803984 Add fmaxmag, fminmag functions.
TS 18661-1 defines fmaxmag and fminmag functions that return the
argument with maximum / minimum magnitude (acting like fmax / fmin if
the arguments have the same magnitude or either argument is a NaN).
These correspond to the IEEE 754-2008 operations maxNumMag and
minNumMag.  This patch implements these functions for glibc.  They are
implemented with type-generic templates.  Tests are based on those for
fmax and fmin.

Tested for x86_64, x86, mips64 and powerpc.

	* math/bits/mathcalls.h [__GLIBC_USE (IEC_60559_BFP_EXT)]
	(fmaxmag): New declaration.
	(fminmag): Likewise.
	* math/tgmath.h [__GLIBC_USE (IEC_60559_BFP_EXT)] (fmaxmag): New
	macro.
	[__GLIBC_USE (IEC_60559_BFP_EXT)] (fminmag): Likewise.
	* math/Versions (fmaxmag): New libm symbol at version GLIBC_2.25.
	(fmaxmagf): Likewise.
	(fmaxmagl): Likewise.
	(fminmag): Likewise.
	(fminmagf): Likewise.
	(fminmagl): Likewise.
	* math/Makefile (gen-libm-calls): Add s_fmaxmagF and s_fminmagF.
	* math/s_fmaxmag_template.c: New file.
	* math/s_fminmag_template.c: Likewise.
	* math/libm-test.inc (fmaxmag_test_data): New array.
	(fmaxmag_test): New function.
	(fminmag_test_data): New array.
	(fminmag_test): New function.
	(main): Call fmaxmag_test and fminmag_test.
	* math/test-tgmath.c (NCALLS): Increase to 132.
	(F(compile_test)): Call fmaxmag and fminmag.
	(F(fminmag)): New function.
	(F(fmaxmag)): Likewise.
	* manual/arith.texi (Misc FP Arithmetic): Document fminmag,
	fminmagf, fminmagl, fmaxmag, fmaxmagf and fmaxmagl.
	* manual/libm-err-tab.pl (@all_functions): Add fmaxmag and
	fminmag.
	* sysdeps/ieee754/ldbl-opt/nldbl-fmaxmag.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-fminmag.c: Likewise.
	* sysdeps/ieee754/ldbl-opt/s_fmaxmagl.c: Likewise.
	* sysdeps/ieee754/ldbl-opt/s_fminmagl.c: Likewise.
	* sysdeps/ieee754/ldbl-opt/Makefile (libnldbl-calls): Add fmaxmag
	and fminmag.
	(CFLAGS-nldbl-fmaxmag.c): New variable.
	(CFLAGS-nldbl-fminmag.c): Likewise.
	* sysdeps/nacl/libm.abilist: Update.
	* sysdeps/unix/sysv/linux/aarch64/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/alpha/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/arm/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/hppa/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/i386/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/ia64/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/microblaze/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/mips/mips32/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/mips/mips64/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/nios2/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist:
	Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist:
	Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/libm-le.abilist:
	Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/libm.abilist:
	Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/sh/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libm.abilist:
	Likewise.
	* sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libm.abilist:
	Likewise.
	* sysdeps/unix/sysv/linux/tile/tilepro/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/64/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist: Likewise.
2016-12-20 00:46:53 +00:00
Zack Weinberg
ea1bd74def New string function explicit_bzero (from OpenBSD).
explicit_bzero(s, n) is the same as memset(s, 0, n), except that the
compiler is not allowed to delete a call to explicit_bzero even if the
memory pointed to by 's' is dead after the call.  Right now, this effect
is achieved externally by having explicit_bzero be a function whose
semantics are unknown to the compiler, and internally, with a no-op
asm statement that clobbers memory.  This does mean that small
explicit_bzero operations cannot be expanded inline as small memset
operations can, but on the other hand, small memset operations do get
deleted by the compiler.  Hopefully full compiler support for
explicit_bzero will happen relatively soon.

There are two new tests: test-explicit_bzero.c verifies the
visible semantics in the same way as the existing test-bzero.c,
and tst-xbzero-opt.c verifies the not-being-optimized-out property.
The latter is conceptually based on a test written by Matthew Dempsky
for the OpenBSD regression suite.

The crypt() implementation has an immediate use for this new feature.
We avoid having to add a GLIBC_PRIVATE alias for explicit_bzero
by running all of libcrypt's calls through the fortified variant,
__explicit_bzero_chk, which is in the impl namespace anyway.  Currently
I'm not aware of anything in libc proper that needs this, but the
glue is all in place if it does become necessary.  The legacy DES
implementation wasn't bothering to clear its buffers, so I added that,
mostly for consistency's sake.

	* string/explicit_bzero.c: New routine.
	* string/test-explicit_bzero.c, string/tst-xbzero-opt.c: New tests.
	* string/Makefile (routines, strop-tests, tests): Add them.
	* string/test-memset.c: Add ifdeffage for testing explicit_bzero.
	* string/string.h [__USE_MISC]: Declare explicit_bzero.

	* debug/explicit_bzero_chk.c: New routine.
	* debug/Makefile (routines): Add it.
	* debug/tst-chk1.c: Test fortification of explicit_bzero.
	* string/bits/string3.h: Fortify explicit_bzero.

	* manual/string.texi: Document explicit_bzero.
	* NEWS: Mention addition of explicit_bzero.

	* crypt/crypt-entry.c (__crypt_r): Clear key-dependent intermediate
	data before returning, using explicit_bzero.
	* crypt/md5-crypt.c (__md5_crypt_r): Likewise.
	* crypt/sha256-crypt.c (__sha256_crypt_r): Likewise.
	* crypt/sha512-crypt.c (__sha512_crypt_r): Likewise.

	* include/string.h: Redirect internal uses of explicit_bzero
	to __explicit_bzero_chk[_internal].
	* string/Versions [GLIBC_2.25]: Add explicit_bzero.
	* debug/Versions [GLIBC_2.25]: Add __explicit_bzero_chk.
	* sysdeps/arm/nacl/libc.abilist
	* sysdeps/unix/sysv/linux/aarch64/libc.abilist
	* sysdeps/unix/sysv/linux/alpha/libc.abilist
	* sysdeps/unix/sysv/linux/arm/libc.abilist
	* sysdeps/unix/sysv/linux/hppa/libc.abilist
	* sysdeps/unix/sysv/linux/i386/libc.abilist
	* sysdeps/unix/sysv/linux/ia64/libc.abilist
	* sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
	* sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
	* sysdeps/unix/sysv/linux/microblaze/libc.abilist
	* sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
	* sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
	* sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
	* sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
	* sysdeps/unix/sysv/linux/nios2/libc.abilist
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist
	* sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
	* sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
	* sysdeps/unix/sysv/linux/sh/libc.abilist
	* sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
	* sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
	* sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libc.abilist
	* sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libc.abilist
	* sysdeps/unix/sysv/linux/tile/tilepro/libc.abilist
	* sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
	* sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist:
	Add entries for explicit_bzero and __explicit_bzero_chk.
2016-12-16 16:21:54 -05:00
Florian Weimer
92dcaa3e2f Add getentropy, getrandom, <sys/random.h> [BZ #17252] 2016-12-12 17:28:04 +01:00
Joseph Myers
55a38f8236 Add llogb, llogbf, llogbl.
TS 18661-1 defines llogb functions that are like ilogb except that
they return long int instead of int.  Corresponding FP_LLOGB* macros
are defined, whose values are required to have the obvious
correspondence to those of the FP_ILOGB* macros.

This patch implements these functions and macros for glibc.  llogb
uses the type-generic infrastructure, with an implementation similar
to the wrapper for ilogb but with additional conversion from FP_ILOGB*
to FP_LLOGB*; this approach avoids needing to modify or duplicate any
of the architecture-specific ilogb implementations.  Tests are also
based on those for ilogb.

Ideally the llogb functions would alias the ilogb ones when long is
32-bit, but such aliasing requires the associated header declarations
of the different-type alias to be hidden, typically by defining macros
before including the header (see e.g. how
sysdeps/ieee754/dbl-64/wordsize-64/s_llround.c defines lround to
__hidden_lround before including <math.h>).  The infrastructure for
type-generic function implementations does not support defining such
macros at present (since C code can't define a macro whose name is
determined by other macros).  So this patch leaves them as separate
functions (similar to e.g. scalbln and scalbn being separate in such a
case as well), but with the remapping of FP_ILOGB* to FP_LLOGB*
conditioned out in the case where it would be the identity map.

Tested for x86_64, x86, mips64 and powerpc.

	* math/bits/mathcalls.h [__GLIBC_USE (IEC_60559_BFP_EXT)] (llogb):
	New declaration.
	* math/tgmath.h [__GLIBC_USE (IEC_60559_BFP_EXT)] (llogb): New
	macro.
	* math/math.h [__GLIBC_USE (IEC_60559_BFP_EXT)] (__FP_LONG_MAX):
	New macro.
	[__GLIBC_USE (IEC_60559_BFP_EXT)] (FP_LLOGB0): Likewise.
	[__GLIBC_USE (IEC_60559_BFP_EXT)] (FP_LLOGBNAN): Likewise.
	* math/Versions (llogb): New libm symbol at version GLIBC_2.25.
	(llogbf): Likewise.
	(llogbl): Likewise.
	* math/Makefile (gen-libm-calls): Add w_llogbF.
	(tests): Add test-fp-llogb-constants.
	* math/w_llogb_template.c: New file.  Based on
	math/w_ilogb_template.c.
	* math/libm-test.inc (llogb_test_data): New array.
	(llogb_test): New function.
	(main): Call llogb_test.
	* math/test-fp-llogb-constants.c: New file.  Based on
	math/test-fp-ilogb-constants.c.
	* math/test-tgmath-ret.c (llogb): New CHECK_RET_CONST call.
	(do_test): Call check_return_llogb.
	* math/test-tgmath.c (NCALLS): Increase to 126.
	(F(compile_test)): Call llogb.
	(F(llogb)): New function.
	* manual/math.texi (Exponents and Logarithms): Document llogb,
	llogbf, llogbl, FP_LLOGB0 and FP_LLOGBNAN.
	* manual/libm-err-tab.pl (@all_functions): Add llogb.
	* sysdeps/ieee754/ldbl-opt/nldbl-llogb.c: New file.
	* sysdeps/ieee754/ldbl-opt/w_llogbl.c: Likewise.
	* sysdeps/ieee754/ldbl-opt/Makefile (libnldbl-calls): Add llogb.
	(CFLAGS-nldbl-llogb.c): New variable.
	* sysdeps/nacl/libm.abilist: Update.
	* sysdeps/unix/sysv/linux/aarch64/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/alpha/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/arm/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/hppa/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/i386/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/ia64/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/microblaze/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/mips/mips32/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/mips/mips64/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/nios2/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist:
	Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist:
	Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/libm-le.abilist:
	Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/libm.abilist:
	Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/sh/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libm.abilist:
	Likewise.
	* sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libm.abilist:
	Likewise.
	* sysdeps/unix/sysv/linux/tile/tilepro/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/64/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist: Likewise.
2016-12-02 01:42:49 +00:00
Florian Weimer
b04beebf07 ld.so: Remove __libc_memalign
It is no longer needed since commit 6c444ad6e9
(elf: Do not use memalign for TCB/TLS blocks allocation [BZ #17730]).
Applications do not link against ld.so and will use the definition in
libc.so, so there is no ABI impact.
2016-11-30 16:23:58 +01:00
Florian Weimer
9e78f6f6e7 Implement _dl_catch_error, _dl_signal_error in libc.so [BZ #16628]
This change moves the main implementation of _dl_catch_error,
_dl_signal_error to libc.so, where TLS variables can be used
directly.  This removes a writable function pointer from the
rtld_global variable.

For use during initial relocation, minimal implementations of these
functions are provided in ld.so.  These are eventually interposed
by the libc.so implementations.  This is implemented by compiling
elf/dl-error-skeleton.c twice, via elf/dl-error.c and
elf/dl-error-minimal.c.

As a side effect of this change, the static version of dl-error.c
no longer includes support for the
_dl_signal_cerror/_dl_receive_error mechanism because it is only
used in ld.so.
2016-11-30 15:59:57 +01:00
Joseph Myers
457663a7cd Add setpayloadsig, setpayloadsigf, setpayloadsigl.
TS 18661-1 defines functions for manipulating the payloads of NaNs.
This patch implements the setpayloadsig functions for glibc; these are
like the setpayload functions, but produce a signaling NaN instead of
a quiet NaN.

The substance of the implementation was included with the setpayload
implementation, so the new files here just need to wrap the main files
with different defines to build the new functions.

Because the functions store a signaling NaN via a pointer and the
libm-test macros choose a suitable initial value for the variable in
such a case by comparing with the expected value, the relevant macro
needs to clear exceptions after FE_INVALID may have been raised by
that comparison.

Tested for x86_64, x86, mips64 and powerpc.

	* math/bits/mathcalls.h [__GLIBC_USE (IEC_60559_BFP_EXT)]
	(setpayloadsig): New declaration.
	* math/Versions (setpayloadsig): New libm symbol at version
	GLIBC_2.25.
	(setpayloadsigf): Likewise.
	(setpayloadsigl): Likewise.
	* math/Makefile (libm-calls): Add s_setpayloadsigF.
	* math/libm-test.inc (RUN_TEST_Ff_b1): Call feclearexcept
	(FE_ALL_EXCEPT) after initializing EXTRA_VAR.
	(setpayloadsig_test_data): New array.
	(setpayloadsig_test): New function.
	(main): Call setpayloadsig_test.
	* manual/arith.texi (FP Bit Twiddling): Document setpayloadsig,
	setpayloadsigf and setpayloadsigl.
	* manual/libm-err-tab.pl: Update comment on interfaces without
	ulps tabulated.
	* sysdeps/ieee754/dbl-64/s_setpayloadsig.c: New file.
	* sysdeps/ieee754/flt-32/s_setpayloadsigf.c: Likewise.
	* sysdeps/ieee754/ldbl-128/s_setpayloadsigl.c: Likewise.
	* sysdeps/ieee754/ldbl-128ibm/s_setpayloadsigl.c: Likewise.
	* sysdeps/ieee754/ldbl-96/s_setpayloadsigl.c: Likewise.
	* sysdeps/ieee754/ldbl-opt/nldbl-setpayloadsig.c: Likewise.
	* sysdeps/ieee754/ldbl-opt/Makefile (libnldbl-calls): Add
	setpayloadsig.
	(CFLAGS-nldbl-setpayloadsig.c): New variable.
	* sysdeps/nacl/libm.abilist: Update.
	* sysdeps/unix/sysv/linux/aarch64/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/alpha/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/arm/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/hppa/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/i386/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/ia64/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/microblaze/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/mips/mips32/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/mips/mips64/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/nios2/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist:
	Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist:
	Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/libm-le.abilist:
	Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/libm.abilist:
	Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/sh/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libm.abilist:
	Likewise.
	* sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libm.abilist:
	Likewise.
	* sysdeps/unix/sysv/linux/tile/tilepro/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/64/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist: Likewise.
2016-11-24 23:56:48 +00:00
Adhemerval Zanella
c579f48edb Remove cached PID/TID in clone
This patch remove the PID cache and usage in current GLIBC code.  Current
usage is mainly used a performance optimization to avoid the syscall,
however it adds some issues:

  - The exposed clone syscall will try to set pid/tid to make the new
    thread somewhat compatible with current GLIBC assumptions.  This cause
    a set of issue with new workloads and usecases (such as BZ#17214 and
    [1]) as well for new internal usage of clone to optimize other algorithms
    (such as clone plus CLONE_VM for posix_spawn, BZ#19957).

  - The caching complexity also added some bugs in the past [2] [3] and
    requires more effort of each port to handle such requirements (for
    both clone and vfork implementation).

  - Caching performance gain in mainly on getpid and some specific
    code paths.  The getpid performance leverage is questionable [4],
    either by the idea of getpid being a hotspot as for the getpid
    implementation itself (if it is indeed a justifiable hotspot a
    vDSO symbol could let to a much more simpler solution).

    Other usage is mainly for non usual code paths, such as pthread
    cancellation signal and handling.

For thread creation (on stack allocation) the code simplification in fact
adds some performance gain due the no need of transverse the stack cache
and invalidate each element pid.

Other thread usages will require a direct getpid syscall, such as
cancellation/setxid signal, thread cancellation, thread fail path (at
create_thread), and thread signal (pthread_kill and pthread_sigqueue).
However these are hardly usual hotspots and I think adding a syscall is
justifiable.

It also simplifies both the clone and vfork arch-specific implementation.
And by review each fork implementation there are some discrepancies that
this patch also solves:

  - microblaze clone/vfork does not set/reset the pid/tid field
  - hppa uses the default vfork implementation that fallback to fork.
    Since vfork is deprecated I do not think we should bother with it.

The patch also removes the TID caching in clone. My understanding for
such semantic is try provide some pthread usage after a user program
issue clone directly (as done by thread creation with CLONE_PARENT_SETTID
and pthread tid member).  However, as stated before in multiple discussions
threads, GLIBC provides clone syscalls without further supporting all this
semantics.

I ran a full make check on x86_64, x32, i686, armhf, aarch64, and powerpc64le.
For sparc32, sparc64, and mips I ran the basic fork and vfork tests from
posix/ folder (on a qemu system).  So it would require further testing
on alpha, hppa, ia64, m68k, nios2, s390, sh, and tile (I excluded microblaze
because it is already implementing the patch semantic regarding clone/vfork).

[1] https://codereview.chromium.org/800183004/
[2] https://sourceware.org/ml/libc-alpha/2006-07/msg00123.html
[3] https://sourceware.org/bugzilla/show_bug.cgi?id=15368
[4] http://yarchive.net/comp/linux/getpid_caching.html

	* sysdeps/nptl/fork.c (__libc_fork): Remove pid cache setting.
	* nptl/allocatestack.c (allocate_stack): Likewise.
	(__reclaim_stacks): Likewise.
	(setxid_signal_thread): Obtain pid through syscall.
	* nptl/nptl-init.c (sigcancel_handler): Likewise.
	(sighandle_setxid): Likewise.
	* nptl/pthread_cancel.c (pthread_cancel): Likewise.
	* sysdeps/unix/sysv/linux/pthread_kill.c (__pthread_kill): Likewise.
	* sysdeps/unix/sysv/linux/pthread_sigqueue.c (pthread_sigqueue):
	Likewise.
	* sysdeps/unix/sysv/linux/createthread.c (create_thread): Likewise.
	* sysdeps/unix/sysv/linux/getpid.c: Remove file.
	* nptl/descr.h (struct pthread): Change comment about pid value.
	* nptl/pthread_getattr_np.c (pthread_getattr_np): Remove thread
	pid assert.
	* sysdeps/unix/sysv/linux/pthread-pids.h (__pthread_initialize_pids):
	Do not set pid value.
	* nptl_db/td_ta_thr_iter.c (iterate_thread_list): Remove thread
	pid cache check.
	* nptl_db/td_thr_validate.c (td_thr_validate): Likewise.
	* sysdeps/aarch64/nptl/tcb-offsets.sym: Remove pid offset.
	* sysdeps/alpha/nptl/tcb-offsets.sym: Likewise.
	* sysdeps/arm/nptl/tcb-offsets.sym: Likewise.
	* sysdeps/hppa/nptl/tcb-offsets.sym: Likewise.
	* sysdeps/i386/nptl/tcb-offsets.sym: Likewise.
	* sysdeps/ia64/nptl/tcb-offsets.sym: Likewise.
	* sysdeps/m68k/nptl/tcb-offsets.sym: Likewise.
	* sysdeps/microblaze/nptl/tcb-offsets.sym: Likewise.
	* sysdeps/mips/nptl/tcb-offsets.sym: Likewise.
	* sysdeps/nios2/nptl/tcb-offsets.sym: Likewise.
	* sysdeps/powerpc/nptl/tcb-offsets.sym: Likewise.
	* sysdeps/s390/nptl/tcb-offsets.sym: Likewise.
	* sysdeps/sh/nptl/tcb-offsets.sym: Likewise.
	* sysdeps/sparc/nptl/tcb-offsets.sym: Likewise.
	* sysdeps/tile/nptl/tcb-offsets.sym: Likewise.
	* sysdeps/x86_64/nptl/tcb-offsets.sym: Likewise.
	* sysdeps/unix/sysv/linux/aarch64/clone.S: Remove pid and tid caching.
	* sysdeps/unix/sysv/linux/alpha/clone.S: Likewise.
	* sysdeps/unix/sysv/linux/arm/clone.S: Likewise.
	* sysdeps/unix/sysv/linux/hppa/clone.S: Likewise.
	* sysdeps/unix/sysv/linux/i386/clone.S: Likewise.
	* sysdeps/unix/sysv/linux/ia64/clone2.S: Likewise.
	* sysdeps/unix/sysv/linux/mips/clone.S: Likewise.
	* sysdeps/unix/sysv/linux/nios2/clone.S: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/clone.S: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/clone.S: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-64/clone.S: Likewise.
	* sysdeps/unix/sysv/linux/sh/clone.S: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/clone.S: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/clone.S: Likewise.
	* sysdeps/unix/sysv/linux/tile/clone.S: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/clone.S: Likewise.
	* sysdeps/unix/sysv/linux/aarch64/vfork.S: Remove pid set and reset.
	* sysdeps/unix/sysv/linux/alpha/vfork.S: Likewise.
	* sysdeps/unix/sysv/linux/arm/vfork.S: Likewise.
	* sysdeps/unix/sysv/linux/i386/vfork.S: Likewise.
	* sysdeps/unix/sysv/linux/ia64/vfork.S: Likewise.
	* sysdeps/unix/sysv/linux/m68k/clone.S: Likewise.
	* sysdeps/unix/sysv/linux/m68k/vfork.S: Likewise.
	* sysdeps/unix/sysv/linux/mips/vfork.S: Likewise.
	* sysdeps/unix/sysv/linux/nios2/vfork.S: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/vfork.S: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/vfork.S: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-64/vfork.S: Likewise.
	* sysdeps/unix/sysv/linux/sh/vfork.S: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S: Likewise.
	* sysdeps/unix/sysv/linux/tile/vfork.S: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/vfork.S: Likewise.
	* sysdeps/unix/sysv/linux/tst-clone2.c (f): Remove direct pthread
	struct access.
	(clone_test): Remove function.
	(do_test): Rewrite to take in consideration pid is not cached anymore.
2016-11-24 19:38:51 -02:00
Steve Ellcey
510abe7b94 Allow [f]statfs64 to alias [f]statfs
* sysdeps/unix/sysv/linux/fstatfs64.c: Hide prototypes for fstatfs
	and __fstatfs.  Make them aliases of __fstatfs64 if
	STATFS_IS_STATFS64 is set to non-zero.
	* sysdeps/unix/sysv/linux/statfs64.c: Ditto for __statfs, statfs,
	and __statfs64.
	* sysdeps/unix/sysv/linux/generic/wordsize-32/fstatfs.c: Do not
	define __fstatfs and fstatfs if STATFS_IS_STATFS64 is non-zero.
	* sysdeps/unix/sysv/linux/generic/wordsize-32/statfs.c: Ditto
	for __statfs and statfs.
	* sysdeps/unix/sysv/linux/alpha/kernel_stat.h: Set STATFS_IS_STATFS64
	to 0.
	* sysdeps/unix/sysv/linux/generic/kernel_stat.h: Ditto.
	* sysdeps/unix/sysv/linux/hppa/kernel_stat.h: Ditto.
	* sysdeps/unix/sysv/linux/ia64/kernel_stat.h: Ditto.
	* sysdeps/unix/sysv/linux/kernel_stat.h: Ditto.
	* sysdeps/unix/sysv/linux/microblaze/kernel_stat.h: Ditto.
	* sysdeps/unix/sysv/linux/mips/kernel_stat.h: Ditto.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/kernel_stat.h: Ditto.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/kernel_stat.h: Ditto.
	* sysdeps/unix/sysv/linux/s390/s390-64/kernel_stat.h: Ditto.
	* sysdeps/unix/sysv/linux/sparc/sparc32/kernel_stat.h: Ditto.
	* sysdeps/unix/sysv/linux/sparc/sparc64/kernel_stat.h: Ditto.
	* sysdeps/unix/sysv/linux/x86_64/kernel_stat.h: Ditto.
2016-11-22 09:59:12 -08:00
Steve Ellcey
d2e1e97332 Always define XSTAT_IS_XSTAT64
* sysdeps/unix/sysv/linux/generic/kernel_stat.h: Set XSTAT_IS_XSTAT64
	to 0 when in 32 bit mode.
	* sysdeps/unix/sysv/linux/hppa/kernel_stat.h: Set XSTAT_IS_XSTAT64 to 0.
	* sysdeps/unix/sysv/linux/kernel_stat.h: Ditto.
	* sysdeps/unix/sysv/linux/microblaze/kernel_stat.h: Ditto.
	* sysdeps/unix/sysv/linux/mips/kernel_stat.h: Ditto.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/kernel_stat.h: Ditto.
	* sysdeps/unix/sysv/linux/sparc/sparc32/kernel_stat.h: Ditto.
	* sysdeps/unix/sysv/linux/fxstat.c: Replace #ifdef with #if on
	XSTAT_IS_XSTAT64 test.
	* sysdeps/unix/sysv/linux/fxstatat.c: Ditto.
	* sysdeps/unix/sysv/linux/generic/lxstat.c: Ditto.
	* sysdeps/unix/sysv/linux/generic/xstat.c: Ditto.
	* sysdeps/unix/sysv/linux/i386/fxstat.c: Ditto.
	* sysdeps/unix/sysv/linux/i386/fxstatat.c: Ditto.
	* sysdeps/unix/sysv/linux/i386/lxstat.c: Ditto.
	* sysdeps/unix/sysv/linux/i386/xstat.c: Ditto.
	* sysdeps/unix/sysv/linux/lxstat.c: Ditto.
	* sysdeps/unix/sysv/linux/mips/xstatconv.c: Ditto.
	* sysdeps/unix/sysv/linux/xstat.c: Ditto.
	* sysdeps/unix/sysv/linux/xstatconv.c: Ditto.
2016-11-21 08:23:12 -08:00
Joseph Myers
eb3c12c784 Add setpayload, setpayloadf, setpayloadl.
TS 18661-1 defines functions for manipulating the payloads of NaNs.
This patch implements the setpayload functions for glibc; these set a
number (pointed to by a function argument) to a quiet NaN with the
given payload, or to +0 if the given payload is not valid.  The
implementations are structured to allow the substance of the
implementation to be shared with the setpayloadsig functions when
those are added.

The semantics in the TS are not entirely clear in the case where the
payload passed to the function is zero (see discussion on the WG14
reflector last month).  This patch implements what seems the most
sensible interpretation, that -0 is never valid to give as the
payload, but +0 is valid in the case where the kind of NaN being
generated has its high mantissa bit set so payload 0 is actually
possible in such a NaN.

Tested for x86_64, x86, mips64 and powerpc.

	* math/bits/mathcalls.h [__GLIBC_USE (IEC_60559_BFP_EXT)]
	(setpayload): New declaration.
	* math/Versions (setpayload): New libm symbol at version
	GLIBC_2.25.
	(setpayloadf): Likewise.
	(setpayloadl): Likewise.
	* math/Makefile (libm-calls): Add s_setpayloadF.
	* math/libm-test.inc (struct test_Ffp_b1_data): Rename to struct
	test_Ff_b1_data.
	(RUN_TEST_Ff_b1): New macro.
	(RUN_TEST_LOOP_Ff_b1): Likewise.
	(canonicalize_test_data): Update type.
	(setpayload_test_data): New array.
	(setpayload_test): New function.
	(main): Call setpayload_test.
	* manual/arith.texi (FP Bit Twiddling): Document setpayload,
	setpayloadf and setpayloadl.
	* manual/libm-err-tab.pl: Update comment on interfaces without
	ulps tabulated.
	* sysdeps/ieee754/dbl-64/s_setpayload.c: New file.
	* sysdeps/ieee754/dbl-64/s_setpayload_main.c: Likewise.
	* sysdeps/ieee754/dbl-64/wordsize-64/s_setpayload_main.c:
	Likewise.
	* sysdeps/ieee754/flt-32/s_setpayloadf.c: Likewise.
	* sysdeps/ieee754/flt-32/s_setpayloadf_main.c: Likewise.
	* sysdeps/ieee754/ldbl-128/s_setpayloadl.c: Likewise.
	* sysdeps/ieee754/ldbl-128/s_setpayloadl_main.c: Likewise.
	* sysdeps/ieee754/ldbl-128ibm/s_setpayloadl.c: Likewise.
	* sysdeps/ieee754/ldbl-128ibm/s_setpayloadl_main.c: Likewise.
	* sysdeps/ieee754/ldbl-96/s_setpayloadl.c: Likewise.
	* sysdeps/ieee754/ldbl-96/s_setpayloadl_main.c: Likewise.
	* sysdeps/ieee754/ldbl-opt/nldbl-setpayload.c: Likewise.
	* sysdeps/ieee754/ldbl-opt/Makefile (libnldbl-calls): Add
	setpayload.
	(CFLAGS-nldbl-setpayload.c): New variable.
	* sysdeps/nacl/libm.abilist: Update.
	* sysdeps/unix/sysv/linux/aarch64/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/alpha/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/arm/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/hppa/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/i386/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/ia64/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/microblaze/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/mips/mips32/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/mips/mips64/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/nios2/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist:
	Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist:
	Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/libm-le.abilist:
	Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/libm.abilist:
	Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/sh/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libm.abilist:
	Likewise.
	* sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libm.abilist:
	Likewise.
	* sysdeps/unix/sysv/linux/tile/tilepro/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/64/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist: Likewise.
2016-11-19 00:16:28 +00:00
Adhemerval Zanella
045c13d185 Consolidate Linux setrlimit and getrlimit implementation
This patch consolidates all Linux setrlimit and getrlimit on the default
sysdeps/unix/sysv/linux/{set,get}rlimit{64}.c.  It contains two exceptions:

  1. mips32 and mips64n32 which requires a versioned symbol for GLIBC 2.19
     and higher due a broken RLIM64_INFINITY constant.
  2. sparc32 does not define a compat symbol for getrlimit64 for old 2GB
     limit. I am not sure if it is required, but a RLIM_INFINITY fix [1]
     change its definition without adding a compat symbol.  This patch does
     not aim to address this possible issue, it follow current symbol
     export.

The default implementation uses prlimit64 for 64 bit rlim_t ({set,get}rlimit64)
and if it fails with ENOSYS it fall back to {get,set}rlimit syscall.  This
code path is only used on kernel older than 2.6.36 (basically now only x86)
and I avoid to user __ASSUME_PRLIMTI64 to simplify the implementation.  Once
x86 moves to be on par with other architectures regarding minimum kernel
supported we can get rid of using old syscalls and default path.

A new type size define is added, __RLIM_T_MATCHES_RLIM64_T, where is set as
default for 64 bits ports.  This allows the default implementation to avoid
{get,set}rlimit building and alias {get,set}rlimit64 to {get,set}rlimit.

Checked on x86_64, i386, armhf, aarch64, and powerpc64le.  I also did a
sanity build plus check-abi on all other supported architectures.

[1] Commit 9c96ff2385

	Adhemerval Zanella  <adhemerval.zanella@linaro.org>
	Yury Norov  <ynorov@caviumnetworks.com>

	* bits/typesizes.h (__RLIM_T_MATCHES_RLIM64_T): define.
	* sysdeps/unix/sysv/linux/alpha/bits/typesizes.h
	(__RLIM_T_MATCHES_RLIM64_T): Likewise.
	* sysdeps/unix/sysv/linux/generic/bits/typesizes.h
	(__RLIM_T_MATCHES_RLIM64_T): Likewise.
	* sysdeps/unix/sysv/linux/s390/bits/typesizes.h [__s390x__]
	(__RLIM_T_MATCHES_RLIM64_T): Likewise.
	* sysdeps/unix/sysv/linux/sparc/bits/typesizes.h
	[__arch64__ || __sparcv9] (__RLIM_T_MATCHES_RLIM64_T): Likewise.
	* sysdeps/unix/sysv/linux/x86/bits/typesizes.h [__86_64__]
	(__RLIM_T_MATCHES_RLIM64_T): Likewise.
	* sysdeps/unix/sysv/linux/arm/Makefile [$(subdir) = resource]
	(sysdep_routines): Remove oldgetrlimit64.
	* sysdeps/unix/sysv/linux/i386/Makefile [$(subdir) = resource]
	(sysdep_routines): Likewise.
	* sysdeps/unix/sysv/linux/m68k/Makefile [$(subdir) = resource]
	(sysdep_routines): Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/Makefile
	[$(subdir) = resource] (sysdep_routines): Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/Makefile
	[$(subdir) = resource] (sysdep_routines): Likewise.
	* sysdeps/unix/sysv/linux/arm/getrlimit64.c: Remove file.
	* sysdeps/unix/sysv/linux/arm/oldgetrlimit64.c: Likewise.
	* sysdeps/unix/sysv/linux/hppa/getrlimit64.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/getrlimit64.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/oldgetrlimit64.c: Likewise.
	* sysdeps/unix/sysv/linux/m68k/getrlimit64.c: Likewise.
	* sysdeps/unix/sysv/linux/m68k/oldgetrlimit64.c: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/getrlimit64.c: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/oldgetrlimit64.c: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/getrlimit64.c: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/oldgetrlimit64.c: Likewise.
	* sysdeps/unix/sysv/linux/sh/getrlimit64.c: Likewise.
	* sysdeps/unix/sysv/linux/wordsize-64/getrlimit64.c: Likewise.
	* sysdeps/unix/sysv/linux/wordsize-64/setrlimit64.c: Likewise.
	* sysdeps/sysv/linux/generic/wordsize-32/syscalls.list: Remove
	setrlimit and getrlimit.
	* sysdeps/unix/sysv/linux/hppa/syscalls.list: Likewise.
	* sysdeps/unix/sysv/linux/i386/syscalls.list: Likewise.
	* sysdeps/unix/sysv/linux/m68k/m680x0/syscalls.list: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/syscalls.list: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/syscalls.list: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/syscalls.list: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/syscalls.list: Likewise.
	* sysdeps/unix/sysv/linux/syscalls.list: Likewise.
	* sysdeps/unix/sysv/linux/wordsize-64/syscalls.list: Likewise.
	* sysdeps/unix/sysv/linux/getrlimit.c: New file.
	* sysdeps/unix/sysv/linux/sparc/getrlimit64.c: Likewise.
	* sysdeps/unix/sysv/linux/setrlimit.c: Likewise.
	* sysdeps/unix/sysv/linux/getrlimit64.c (__getrlimit64): Handle
	__RLIM_T_MATCHES_RLIM64_T and add alias if defined.
	(__old_getrlimit64): Add compatibility symbol.
	* sysdeps/unix/sysv/linux/setrlimit64.c (__setrlimit): Likewise.
2016-11-17 15:54:22 -02:00
Joseph Myers
eaf5ad0bc4 Add canonicalize, canonicalizef, canonicalizel.
TS 18661-1 defines canonicalize functions to produce a canonical
version of a floating-point representation.  This patch implements
these functions for glibc.

As with the iscanonical macro, these functions are oriented to the
decimal floating-point case, where some values have both canonical and
noncanonical representations.  However, the functions have a return
value that says whether they succeeded in storing a canonical result;
thus, they can fail for the case of an invalid representation (while
still not making any particular choice from among multiple equally
canonical valid representations of the same value).  Since no
floating-point formats in glibc actually have noncanonical valid
representations, a type-generic implementation of these functions can
be used that expects iscanonical to return 0 only for invalid
representations.  Now that iscanonical is used within libm.so,
libm_hidden_proto / libm_hidden_def are added for __iscanonicall.

The definition of these functions is intended to correspond to a
convertFormat operation to the same floating-point format.  Thus, they
convert signaling NaNs to quiet NaNs, raising the "invalid" exception.
Such a conversion "should" produce "the canonical version of that
signaling NaN made quiet".

libm-test.inc is made to check NaN payloads for the output of these
functions, a new feature (at some point manipulation functions such as
fabs and copysign should have tests added that verify payload
preservation for them).  As however some architectures may not follow
the recommended practice of preserving NaN payloads when converting a
signaling NaN to quiet, a new math-tests.h macro
SNAN_TESTS_PRESERVE_PAYLOAD is added, and defined to 0 for non-NAN2008
MIPS; any other architectures seeing test failures for lack of payload
preservation in this case should also define this macro to 0.  (If any
cases arise where the sign isn't preserved either, those should have a
similar macro added.)

The ldbl-96 and ldbl-128ibm tests of iscanonical are renamed and
adapted to test canonicalizel as well on the same representations.

Tested for x86_64, x86, mips64 and powerpc.

	* math/bits/mathcalls.h [__GLIBC_USE (IEC_60559_BFP_EXT)]
	(canonicalize): New declaration.
	* math/Versions (canonicalize): New libm symbol at version
	GLIBC_2.25.
	(canonicalizef): Likewise.
	(canonicalizel): Likewise.
	* math/Makefile (gen-libm-calls): Add s_canonicalizeF.
	* math/s_canonicalize_template.c: New file.
	* math/libm-test.inc: Update comment on functions tested and
	testing of NaN payloads.
	(TEST_NAN_PAYLOAD): New macro.
	(NO_TEST_INLINE): Update value.
	(XFAIL_TEST): Likewise.
	(ERRNO_UNCHANGED): Likewise.
	(ERRNO_EDOM): Likewise.
	(ERRNO_ERANGE): Likewise.
	(IGNORE_RESULT): Likewise.
	(NON_FINITE): Likewise.
	(TEST_SNAN): Likewise.
	(NO_TEST_MATHVEC): Likewise.
	(TEST_NAN_PAYLOAD_CANONICALIZE): New macro.
	(check_float_internal): Check NaN payloads if TEST_NAN_PAYLOAD.
	(struct test_Ffp_b1_data): New type.
	(RUN_TEST_Ffp_b1): New macro.
	(RUN_TEST_LOOP_Ffp_b1): Likewise.
	(canonicalize_test_data): New array.
	(canonicalize_test): New function.
	(main): Call canonicalize_test.
	* manual/arith.texi (FP Bit Twiddling): Document canonicalize,
	canonicalizef and canonicalizel.
	* manual/libm-err-tab.pl: Update comment on interfaces without
	ulps tabulated.
	* sysdeps/ieee754/ldbl-opt/nldbl-canonicalize.c: New file.
	* sysdeps/ieee754/ldbl-opt/s_canonicalizel.c: Likewise.
	* sysdeps/ieee754/ldbl-opt/Makefile (libnldbl-calls): Add
	canonicalize.
	(CFLAGS-nldbl-canonicalize.c): New variable.
	* sysdeps/ieee754/ldbl-128ibm/test-iscanonical-ldbl-128ibm.c: Move
	to ...
	* sysdeps/ieee754/ldbl-128ibm/test-canonical-ldbl-128ibm.c:
	... here.
	(do_test): Also test canonicalizel.
	* sysdeps/ieee754/ldbl-128ibm/Makefile (tests): Change
	test-iscanonical-ldbl-128ibm to test-canonical-ldbl-128ibm.
	* sysdeps/ieee754/ldbl-128ibm/include/bits/iscanonical.h: New
	file.
	* sysdeps/ieee754/ldbl-128ibm/s_iscanonicall.c (__iscanonicall):
	Use libm_hidden_def.
	* sysdeps/ieee754/ldbl-96/test-iscanonical-ldbl-96.c: Move to ...
	* sysdeps/ieee754/ldbl-96/test-canonical-ldbl-96.c: ... here.
	(do_test): Also test canonicalizel.
	* sysdeps/ieee754/ldbl-96/Makefile (tests): Change
	test-iscanonical-ldbl-96 to test-canonical-ldbl-96.
	* sysdeps/ieee754/ldbl-96/include/bits/iscanonical.h: New file.
	* sysdeps/ieee754/ldbl-96/s_iscanonicall.c (__iscanonicall): Use
	libm_hidden_def.
	* sysdeps/generic/math-tests.h (SNAN_TESTS_PRESERVE_PAYLOAD): New
	macro.
	* sysdeps/mips/math-tests.h [__mips_hard_float && !__mips_nan2008]
	(SNAN_TESTS_PRESERVE_PAYLOAD): Likewise.
	* sysdeps/nacl/libm.abilist: Update.
	* sysdeps/unix/sysv/linux/aarch64/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/alpha/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/arm/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/hppa/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/i386/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/ia64/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/microblaze/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/mips/mips32/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/mips/mips64/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/nios2/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist:
	Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist:
	Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/libm-le.abilist:
	Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/libm.abilist:
	Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/sh/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libm.abilist:
	Likewise.
	* sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libm.abilist:
	Likewise.
	* sysdeps/unix/sysv/linux/tile/tilepro/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/64/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist: Likewise.
2016-10-26 23:14:31 +00:00
Gabriel F. T. Gomes
6962682ffe Add strfromd, strfromf, and strfroml functions
ISO/IEC TS 18661-1 adds several functions in the strfrom family to stdlib.
This patch adds strfromd, strfromf, and strfroml.  This is being done in
preparation for the new floating-point type, float128.  The added functions
convert a floating-point value into a string, with configurable format.
2016-10-25 17:03:54 -02:00
Joseph Myers
f8e8b8ed9f Add getpayload, getpayloadf, getpayloadl.
TS 18661-1 defines functions for manipulating the payloads of NaNs.
This patch implements the getpayload functions for glibc; these
extract the NaN payload (from an argument passed as a pointer, for
which corresponding libm-test support is added) and return it in the
same floating-point type.  The return value of these functions is
unspecified for non-NaN arguments; the patch does the simplest thing
to implement, which is that the functions do not check whether the
argument is a NaN and just treat the relevant bits of the
representation as a payload regardless.  A conversion from integer to
floating-point is used to produce the required return value, except in
the ldbl-128 case; as 128-bit integers are not supported for all
configurations using ldbl-128, the code constructs the required
floating-point representation of the return value directly instead.

Tested for x86_64, x86, mips64 and powerpc.

	* math/bits/mathcalls.h [__GLIBC_USE (IEC_60559_BFP_EXT)]
	(getpayload): New declaration.
	* math/Versions (getpayload): New libm symbol at version
	GLIBC_2.25.
	(getpayloadf): Likewise.
	(getpayloadl): Likewise.
	* math/Makefile (libm-calls): Add s_getpayloadF.
	* math/libm-test.inc: Include <nan-high-order-bit.h>.
	(struct test_f_f_data): Add comment.
	(RUN_TEST_fp_f): New macro.
	(RUN_TEST_LOOP_fp_f): Likewise.
	(getpayload_test_data): New array.
	(getpayload_test): New function.
	(main): Call getpayload_test.
	* math/gen-libm-test.pl (parse_args): Handle 'p' in argument
	descriptor.
	* manual/arith.texi (FP Bit Twiddling): Document getpayload,
	getpayloadf and getpayloadl.
	* manual/libm-err-tab.pl: Update comment on interfaces without
	ulps tabulated.
	* sysdeps/ieee754/dbl-64/s_getpayload.c: New file.
	* sysdeps/ieee754/dbl-64/wordsize-64/s_getpayload.c: Likewise.
	* sysdeps/ieee754/flt-32/s_getpayloadf.c: Likewise.
	* sysdeps/ieee754/ldbl-128/s_getpayloadl.c: Likewise.
	* sysdeps/ieee754/ldbl-128ibm/s_getpayloadl.c: Likewise.
	* sysdeps/ieee754/ldbl-96/s_getpayloadl.c: Likewise.
	* sysdeps/nacl/libm.abilist: Update.
	* sysdeps/unix/sysv/linux/aarch64/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/alpha/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/arm/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/hppa/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/i386/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/ia64/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/microblaze/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/mips/mips32/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/mips/mips64/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/nios2/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist:
	Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist:
	Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/libm-le.abilist:
	Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/libm.abilist:
	Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/sh/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libm.abilist:
	Likewise.
	* sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libm.abilist:
	Likewise.
	* sysdeps/unix/sysv/linux/tile/tilepro/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/64/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist: Likewise.
2016-10-19 01:49:09 +00:00
Joseph Myers
cc6a8d7457 Add totalordermag, totalordermagf, totalordermagl.
In addition to the totalorder functions, TS 18661-1 defines
totalordermag functions, which do the same comparison but on the
absolute values of the arguments.  This patch implements these
functions for glibc, including the type-generic macro in <tgmath.h>.
In general the implementations are similar to but simpler than those
for the totalorder functions.

Tested for x86_64, x86, mips64 and powerpc.

	* math/bits/mathcalls.h [__GLIBC_USE (IEC_60559_BFP_EXT)]
	(totalordermag): New declaration.
	* math/tgmath.h [__GLIBC_USE (IEC_60559_BFP_EXT)] (totalordermag):
	New macro.
	* math/Versions (totalordermag): New libm symbol at version
	GLIBC_2.25.
	(totalordermagf): Likewise.
	(totalordermagl): Likewise.
	* math/Makefile (libm-calls): Add s_totalordermagF.
	* math/libm-test.inc (totalordermag_test_data): New array.
	(totalordermag_test): New function.
	(main): Call totalordermag_test.
	* math/test-tgmath.c (NCALLS): Increase to 125.
	(F(compile_test)): Call totalordermag.
	(F(totalordermag)): New function.
	* manual/arith.texi (FP Comparison Functions): Document
	totalordermag, totalordermagf and totalordermagl.
	* manual/libm-err-tab.pl: Update comment on interfaces without
	ulps tabulated.
	* sysdeps/ieee754/dbl-64/s_totalordermag.c: New file.
	* sysdeps/ieee754/dbl-64/wordsize-64/s_totalordermag.c: Likewise.
	* sysdeps/ieee754/flt-32/s_totalordermagf.c: Likewise.
	* sysdeps/ieee754/ldbl-128/s_totalordermagl.c: Likewise.
	* sysdeps/ieee754/ldbl-128ibm/s_totalordermagl.c: Likewise.
	* sysdeps/ieee754/ldbl-96/s_totalordermagl.c: Likewise.
	* sysdeps/ieee754/ldbl-opt/nldbl-totalordermag.c: Likewise.
	* sysdeps/ieee754/ldbl-opt/Makefile (libnldbl-calls): Add
	totalordermag.
	(CFLAGS-nldbl-totalordermag.c): New variable.
	* sysdeps/ieee754/ldbl-128ibm/test-totalorderl-ldbl-128ibm.c
	(do_test): Also test totalordermagl.
	* sysdeps/ieee754/ldbl-96/test-totalorderl-ldbl-96.c (do_test):
	Likewise.
	* sysdeps/nacl/libm.abilist: Update.
	* sysdeps/unix/sysv/linux/aarch64/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/alpha/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/arm/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/hppa/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/i386/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/ia64/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/microblaze/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/mips/mips32/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/mips/mips64/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/nios2/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist:
	Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist:
	Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/libm-le.abilist:
	Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/libm.abilist:
	Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/sh/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libm.abilist:
	Likewise.
	* sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libm.abilist:
	Likewise.
	* sysdeps/unix/sysv/linux/tile/tilepro/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/64/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist: Likewise.
2016-10-15 00:36:48 +00:00
Joseph Myers
5e9d98a3d9 Add totalorder, totalorderf, totalorderl.
TS 18661-1 defines totalorder functions implementing the totalOrder
comparison operation from IEEE 754-2008.  This patch implements these
functions for glibc, including the type-generic macro in <tgmath.h>.
(The totalordermag functions will be added in a separate patch.)

The description of the totalOrder operation is complicated.  However,
for IEEE interchange binary formats and the preferred quiet NaN
convention, what that complicated description means is that you
interpret the representation as a sign-magnitude integer (with -0
coming before +0) and do a <= comparison on that interpretation.  For
finite values and infinities the ordering of the sign-magnitude
integers is just the same as the ordering of floating-point values, so
this extends that to all representations.  (Different representations
of the same floating-point value - which includes same quantum in the
decimal case - must still be considered equal by this operation, but
that issue doesn't arise for IEEE interchange binary formats.)  So the
complications are:

* When MIPS quiet NaN conventions are in use, the representation of
  NaNs needs adjusting before making such an integer comparison.  This
  patch does this adjustment only when both arguments are NaNs, as
  there's no need for it if only one is a NaN, and as long as both are
  NaNs you can just flip the relevant bits without any problems from
  this turning a NaN into an infinity.

* For the m68k version of ldbl-96, where the high mantissa bit is
  "don't care" for infinities and NaNs, representations where it
  differs must compare the same.  Note: although the testcase for this
  compiles, I have not actually tested on m68k.

* For ldbl-128ibm, the low part must be ignored when the high part is
  NaN, and low parts of +0 and -0 must be considered the same whatever
  the high part.

The new tests in libm-test.inc are the first tests there specifying
particular payloads for input NaNs.  Separate tests are also added for
the ldbl-96 and ldbl-128ibm special cases where there are different
representations of the same value that must compare equal (which can't
be covered in libm-test.inc as that only specifies values, not
representations).

Tested for x86_64, x86, mips64 and powerpc.

	* math/bits/mathcalls.h [__GLIBC_USE (IEC_60559_BFP_EXT)]
	(totalorder): New declaration.
	* math/tgmath.h [__GLIBC_USE (IEC_60559_BFP_EXT)] (totalorder):
	New macro.
	* math/Versions (totalorder): New libm symbol at version
	GLIBC_2.25.
	(totalorderf): Likewise.
	(totalorderl): Likewise.
	* math/Makefile (libm-calls): Add s_totalorderF.
	* math/gen-libm-test.pl (parse_args): Escape quotes in test name
	string.
	* math/libm-test.inc (PAYLOAD_DIG): New macro.
	(qnan_value_pl): Likewise.
	(snan_value_pl): Likewise.
	(qnan_value): Define using qnan_value_pl.
	(snan_value): Define using snan_value_pl.
	(struct test_ff_i_data): Add comment about which tests use this
	structure.
	(RUN_TEST_ff_b): New macro.
	(RUN_TEST_LOOP_ff_b): Likewise.
	(totalorder_test_data): New array.
	(totalorder_test): New function.
	(main): Call totalorder_test.
	* math/test-tgmath.c (NCALLS): Increase to 122.
	(F(compile_test)): Call totalorder.
	(F(totalorder)): New function.
	* manual/arith.texi (FP Comparison Functions): Document
	totalorder, totalorderf and totalorderl.
	* manual/libm-err-tab.pl: Update comment on interfaces without
	ulps tabulated.
	* sysdeps/ieee754/dbl-64/s_totalorder.c: New file.
	* sysdeps/ieee754/dbl-64/wordsize-64/s_totalorder.c: Likewise.
	* sysdeps/ieee754/flt-32/s_totalorderf.c: Likewise.
	* sysdeps/ieee754/ldbl-128/s_totalorderl.c: Likewise.
	* sysdeps/ieee754/ldbl-128ibm/s_totalorderl.c: Likewise.
	* sysdeps/ieee754/ldbl-96/s_totalorderl.c: Likewise.
	* sysdeps/ieee754/ldbl-opt/nldbl-totalorder.c: Likewise.
	* sysdeps/ieee754/ldbl-opt/Makefile (libnldbl-calls): Add
	totalorder.
	(CFLAGS-nldbl-totalorder.c): New variable.
	* sysdeps/ieee754/ldbl-128ibm/test-totalorderl-ldbl-128ibm.c: New
	file.
	* sysdeps/ieee754/ldbl-128ibm/Makefile [$(subdir) = math] (tests):
	Add test-totalorderl-ldbl-128ibm.
	* sysdeps/ieee754/ldbl-96/test-totalorderl-ldbl-96.c: New file.
	* sysdeps/ieee754/ldbl-96/Makefile [$(subdir) = math] (tests): Add
	test-totalorderl-ldbl-96.
	* sysdeps/nacl/libm.abilist: Update.
	* sysdeps/unix/sysv/linux/aarch64/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/alpha/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/arm/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/hppa/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/i386/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/ia64/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/microblaze/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/mips/mips32/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/mips/mips64/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/nios2/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist:
	Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist:
	Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/libm-le.abilist:
	Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/libm.abilist:
	Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/sh/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libm.abilist:
	Likewise.
	* sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libm.abilist:
	Likewise.
	* sysdeps/unix/sysv/linux/tile/tilepro/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/64/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist: Likewise.
2016-10-12 01:20:30 +00:00
Joseph Myers
1e7c8fcca5 Add iseqsig.
TS 18661-1 adds an iseqsig type-generic comparison macro to <math.h>.
This macro is like the == operator except that unordered operands
result in the "invalid" exception and errno being set to EDOM.

This patch implements this macro for glibc.  Given the need to set
errno, this is implemented with out-of-line functions __iseqsigf,
__iseqsig and __iseqsigl (of which the last only exists at all if long
double is ABI-distinct from double, so no function aliases or compat
support are needed).  The present patch ignores excess precision
issues; I intend to deal with those in a followup patch.  (Like
comparison operators, type-generic comparison macros should *not*
convert operands to their semantic types but should preserve excess
range and precision, meaning that for some argument types and values
of FLT_EVAL_METHOD, an underlying function should be called for a
wider type than that of the arguments.)

The underlying functions are implemented with the type-generic
template machinery.  Comparing x <= y && x >= y is sufficient in ISO C
to achieve an equality comparison with "invalid" raised for unordered
operands (and the results of those two comparisons can also be used to
tell whether errno needs to be set).  However, some architectures have
GCC bugs meaning that unordered comparison instructions are used
instead of ordered ones.  Thus, a mechanism is provided for
architectures to use an explicit call to feraiseexcept to raise
exceptions if required.  If your architecture has such a bug you
should add a fix-fp-int-compare-invalid.h header for it, with a
comment pointing to the relevant GCC bug report; if such a GCC bug is
fixed, that header's contents should have a __GNUC_PREREQ conditional
added so that the workaround can eventually be removed for that
architecture.

Tested for x86_64, x86, mips64, arm and powerpc.

	* math/math.h [__GLIBC_USE (IEC_60559_BFP_EXT)] (iseqsig): New
	macro.
	* math/bits/mathcalls.h [__GLIBC_USE (IEC_60559_BFP_EXT)]
	(__iseqsig): New declaration.
	* math/s_iseqsig_template.c: New file.
	* math/Versions (__iseqsigf): New libm symbol at version
	GLIBC_2.25.
	(__iseqsig): Likewise.
	(__iseqsigl): Likewise.
	* math/libm-test.inc (iseqsig_test_data): New array.
	(iseqsig_test): New function.
	(main): Call iseqsig_test.
	* math/Makefile (gen-libm-calls): Add s_iseqsigF.
	* manual/arith.texi (FP Comparison Functions): Document iseqsig.
	* manual/libm-err-tab.pl: Update comment on interfaces without
	ulps tabulated.
	* sysdeps/generic/fix-fp-int-compare-invalid.h: New file.
	* sysdeps/powerpc/fpu/fix-fp-int-compare-invalid.h: Likewise.
	* sysdeps/x86/fpu/fix-fp-int-compare-invalid.h: Likewise.
	* sysdeps/nacl/libm.abilist: Update.
	* sysdeps/unix/sysv/linux/aarch64/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/alpha/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/arm/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/hppa/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/i386/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/ia64/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/microblaze/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/mips/mips32/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/mips/mips64/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/nios2/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist:
	Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist:
	Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/libm-le.abilist:
	Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/libm.abilist:
	Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/sh/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libm.abilist:
	Likewise.
	* sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libm.abilist:
	Likewise.
	* sysdeps/unix/sysv/linux/tile/tilepro/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/64/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist: Likewise.
2016-10-06 22:19:38 +00:00
Joseph Myers
ec94343f59 Add femode_t functions.
TS 18661-1 defines a type femode_t to represent the set of dynamic
floating-point control modes (such as the rounding mode and trap
enablement modes), and functions fegetmode and fesetmode to manipulate
those modes (without affecting other state such as the raised
exception flags) and a corresponding macro FE_DFL_MODE.

This patch series implements those interfaces for glibc.  This first
patch adds the architecture-independent pieces, the x86 and x86_64
implementations, and the <bits/fenv.h> and ABI baseline updates for
all architectures so glibc keeps building and passing the ABI tests on
all architectures.  Subsequent patches add the fegetmode and fesetmode
implementations for other architectures.

femode_t is generally an integer type - the same type as fenv_t, or as
the single element of fenv_t where fenv_t is a structure containing a
single integer (or the single relevant element, where it has elements
for both status and control registers) - except where architecture
properties or consistency with the fenv_t implementation indicate
otherwise.  FE_DFL_MODE follows FE_DFL_ENV in whether it's a magic
pointer value (-1 cast to const femode_t *), a value that can be
distinguished from valid pointers by its high bits but otherwise
contains a representation of the desired register contents, or a
pointer to a constant variable (the powerpc case; __fe_dfl_mode is
added as an exported constant object, an alias to __fe_dfl_env).

Note that where architectures (that share a register between control
and status bits) gain definitions of new floating-point control or
status bits in future, the implementations of fesetmode for those
architectures may need updating (depending on whether the new bits are
control or status bits and what the implementation does with
previously unknown bits), just like existing implementations of
<fenv.h> functions that take care not to touch reserved bits may need
updating when the set of reserved bits changes.  (As any new bits are
outside the scope of ISO C, that's just a quality-of-implementation
issue for supporting them, not a conformance issue.)

As with fenv_t, femode_t should properly include any software DFP
rounding mode (and for both fenv_t and femode_t I'd consider that
fragment of DFP support appropriate for inclusion in glibc even in the
absence of the rest of libdfp; hardware DFP rounding modes should
already be included if the definitions of which bits are status /
control bits are correct).

Tested for x86_64, x86, mips64 (hard float, and soft float to test the
fallback version), arm (hard float) and powerpc (hard float, soft
float and e500).  Other architecture versions are untested.

	* math/fegetmode.c: New file.
	* math/fesetmode.c: Likewise.
	* sysdeps/i386/fpu/fegetmode.c: Likewise.
	* sysdeps/i386/fpu/fesetmode.c: Likewise.
	* sysdeps/x86_64/fpu/fegetmode.c: Likewise.
	* sysdeps/x86_64/fpu/fesetmode.c: Likewise.
	* math/fenv.h: Update comment on inclusion of <bits/fenv.h>.
	[__GLIBC_USE (IEC_60559_BFP_EXT)] (fegetmode): New function
	declaration.
	[__GLIBC_USE (IEC_60559_BFP_EXT)] (fesetmode): Likewise.
	* bits/fenv.h [__GLIBC_USE (IEC_60559_BFP_EXT)] (femode_t): New
	typedef.
	[__GLIBC_USE (IEC_60559_BFP_EXT)] (FE_DFL_MODE): New macro.
	* sysdeps/aarch64/bits/fenv.h [__GLIBC_USE (IEC_60559_BFP_EXT)]
	(femode_t): New typedef.
	[__GLIBC_USE (IEC_60559_BFP_EXT)] (FE_DFL_MODE): New macro.
	* sysdeps/alpha/fpu/bits/fenv.h [__GLIBC_USE (IEC_60559_BFP_EXT)]
	(femode_t): New typedef.
	[__GLIBC_USE (IEC_60559_BFP_EXT)] (FE_DFL_MODE): New macro.
	* sysdeps/arm/bits/fenv.h [__GLIBC_USE (IEC_60559_BFP_EXT)]
	(femode_t): New typedef.
	[__GLIBC_USE (IEC_60559_BFP_EXT)] (FE_DFL_MODE): New macro.
	* sysdeps/hppa/fpu/bits/fenv.h [__GLIBC_USE (IEC_60559_BFP_EXT)]
	(femode_t): New typedef.
	[__GLIBC_USE (IEC_60559_BFP_EXT)] (FE_DFL_MODE): New macro.
	* sysdeps/ia64/bits/fenv.h [__GLIBC_USE (IEC_60559_BFP_EXT)]
	(femode_t): New typedef.
	[__GLIBC_USE (IEC_60559_BFP_EXT)] (FE_DFL_MODE): New macro.
	* sysdeps/m68k/fpu/bits/fenv.h [__GLIBC_USE (IEC_60559_BFP_EXT)]
	(femode_t): New typedef.
	[__GLIBC_USE (IEC_60559_BFP_EXT)] (FE_DFL_MODE): New macro.
	* sysdeps/microblaze/bits/fenv.h [__GLIBC_USE (IEC_60559_BFP_EXT)]
	(femode_t): New typedef.
	[__GLIBC_USE (IEC_60559_BFP_EXT)] (FE_DFL_MODE): New macro.
	* sysdeps/mips/bits/fenv.h [__GLIBC_USE (IEC_60559_BFP_EXT)]
	(femode_t): New typedef.
	[__GLIBC_USE (IEC_60559_BFP_EXT)] (FE_DFL_MODE): New macro.
	* sysdeps/nios2/bits/fenv.h [__GLIBC_USE (IEC_60559_BFP_EXT)]
	(femode_t): New typedef.
	[__GLIBC_USE (IEC_60559_BFP_EXT)] (FE_DFL_MODE): New macro.
	* sysdeps/powerpc/bits/fenv.h [__GLIBC_USE (IEC_60559_BFP_EXT)]
	(femode_t): New typedef.
	[__GLIBC_USE (IEC_60559_BFP_EXT)] (__fe_dfl_mode): New variable
	declaration.
	[__GLIBC_USE (IEC_60559_BFP_EXT)] (FE_DFL_MODE): New macro.
	* sysdeps/s390/fpu/bits/fenv.h [__GLIBC_USE (IEC_60559_BFP_EXT)]
	(femode_t): New typedef.
	[__GLIBC_USE (IEC_60559_BFP_EXT)] (FE_DFL_MODE): New macro.
	* sysdeps/sh/bits/fenv.h [__GLIBC_USE (IEC_60559_BFP_EXT)]
	(femode_t): New typedef.
	[__GLIBC_USE (IEC_60559_BFP_EXT)] (FE_DFL_MODE): New macro.
	* sysdeps/sparc/fpu/bits/fenv.h [__GLIBC_USE (IEC_60559_BFP_EXT)]
	(femode_t): New typedef.
	[__GLIBC_USE (IEC_60559_BFP_EXT)] (FE_DFL_MODE): New macro.
	* sysdeps/tile/bits/fenv.h [__GLIBC_USE (IEC_60559_BFP_EXT)]
	(femode_t): New typedef.
	[__GLIBC_USE (IEC_60559_BFP_EXT)] (FE_DFL_MODE): New macro.
	* sysdeps/x86/fpu/bits/fenv.h [__GLIBC_USE (IEC_60559_BFP_EXT)]
	(femode_t): New typedef.
	[__GLIBC_USE (IEC_60559_BFP_EXT)] (FE_DFL_MODE): New macro.
	* manual/arith.texi (FE_DFL_MODE): Document macro.
	(fegetmode): Document function.
	(fesetmode): Likewise.
	* math/Versions (fegetmode): New libm symbol at version
	GLIBC_2.25.
	(fesetmode): Likewise.
	* math/Makefile (libm-support): Add fegetmode and fesetmode.
	(tests): Add test-femode and test-femode-traps.
	* math/test-femode-traps.c: New file.
	* math/test-femode.c: Likewise.
	* sysdeps/powerpc/fpu/fenv_const.c (__fe_dfl_mode): Declare as
	alias for __fe_dfl_env.
	* sysdeps/powerpc/nofpu/fenv_const.c (__fe_dfl_mode): Likewise.
	* sysdeps/powerpc/powerpc32/e500/nofpu/fenv_const.c
	(__fe_dfl_mode): Likewise.
	* sysdeps/powerpc/Versions (__fe_dfl_mode): New libm symbol at
	version GLIBC_2.25.
	* sysdeps/nacl/libm.abilist: Update.
	* sysdeps/unix/sysv/linux/aarch64/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/alpha/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/arm/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/hppa/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/i386/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/ia64/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/microblaze/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/mips/mips32/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/mips/mips64/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/nios2/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist:
	Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist:
	Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/libm-le.abilist:
	Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/libm.abilist:
	Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/sh/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libm.abilist:
	Likewise.
	* sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libm.abilist:
	Likewise.
	* sysdeps/unix/sysv/linux/tile/tilepro/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/64/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist: Likewise.
2016-09-07 16:40:09 +00:00
Joseph Myers
780257d48d Add fetestexceptflag.
TS 18661-1 defines an fetestexceptflag function to test the exception
state saved in an fexcept_t object by fegetexceptflag.

This patch implements this function for glibc.  Almost all
architectures save exception state in such a way that it can be
directly ANDed with exception flag bits, so rather than having lots of
fetestexceptflag implementations that all do the same thing, the math/
implementation is made to use this generic logic (which is also OK in
the fallback case where FE_ALL_EXCEPT is zero).  The only architecture
that seems to need anything different is s390.

(fegetexceptflag and fesetexceptflag use abbreviated filenames
fgetexcptflg.c and fsetexcptflg.c.  Because we are no longer concerned
by 14-character filename limits, fetestexceptflag uses the obvious
filename fetestexceptflag.c.)

The NEWS entry is intended to be expanded along the lines given in
<https://sourceware.org/ml/libc-alpha/2016-08/msg00356.html> when
fegetmode and fesetmode are added.

Tested for x86_64, x86, mips64 and powerpc.

	* math/fetestexceptflag.c: New file.
	* sysdeps/s390/fpu/fetestexceptflag.c: Likewise.  Comment by
	Stefan Liebler.
	* math/fenv.h [__GLIBC_USE (IEC_60559_BFP_EXT)]
	(fetestexceptflag): New function declaration.
	* manual/arith.texi (fetestexceptflag): Document function.
	* math/Versions (fetestexceptflag): New libm symbol at version
	GLIBC_2.25.
	* math/Makefile (libm-support): Add fetestexceptflag.
	(tests): Add test-fetestexceptflag.
	* math/test-fetestexceptflag.c: New file.
	* sysdeps/nacl/libm.abilist: Update.
	* sysdeps/unix/sysv/linux/aarch64/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/alpha/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/arm/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/hppa/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/i386/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/ia64/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/microblaze/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/mips/mips32/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/mips/mips64/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/nios2/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist:
	Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist:
	Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/libm-le.abilist:
	Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/libm.abilist:
	Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/sh/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libm.abilist:
	Likewise.
	* sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libm.abilist:
	Likewise.
	* sysdeps/unix/sysv/linux/tile/tilepro/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/64/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist: Likewise.
2016-08-29 11:47:21 +00:00
Joseph Myers
5146356f5a Add fesetexcept.
TS 18661-1 defines an fesetexcept function for setting floating-point
exception flags without the side-effect of causing enabled traps to be
taken.

This patch series implements this function for glibc.  The present
patch adds the fallback stub implementation, x86 and x86_64
implementations, documentation, tests and ABI baseline updates.  The
remaining patches, some of them untested, add implementations for
other architectures.  The implementations generally follow those of
the fesetexceptflag function.

As for fesetexceptflag, the approach taken for architectures where
setting flags causes enabled traps to be taken is to set the flags
(and potentially cause traps) rather than refusing to set the flags
and returning an error.  Since ISO C and TS 18661 provide no way to
enable traps, this is formally in accordance with the standards.

The NEWS entry should be considered a placeholder, since this patch
series is intended to be followed by further such series adding other
TS 18661-1 features, so that the NEWS entry would end up looking more
like

* New <fenv.h> features from TS 18661-1:2014 are added to libm: the
  fesetexcept, fetestexceptflag, fegetmode and fesetmode functions,
  the femode_t type and the FE_DFL_MODE macro.

with hopefully more such entries for other features, rather than
having an entry for a single function in the end.

I believe we have consensus for adding TS 18661-1 interfaces as per
<https://sourceware.org/ml/libc-alpha/2016-06/msg00421.html>.

Tested for x86_64, x86, mips64 (hard float, and soft float to test the
fallback version), arm (hard float) and powerpc (hard float, soft
float and e500).

	* math/fesetexcept.c: New file.
	* sysdeps/i386/fpu/fesetexcept.c: Likewise.
	* sysdeps/x86_64/fpu/fesetexcept.c: Likewise.
	* math/fenv.h: Define
	__GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION and include
	<bits/libc-header-start.h> instead of including <features.h>.
	[__GLIBC_USE (IEC_60559_BFP_EXT)] (fesetexcept): New function
	declaration.
	* manual/arith.texi (fesetexcept): Document function.
	* math/Versions (fesetexcept): New libm symbol at version
	GLIBC_2.25.
	* math/Makefile (libm-support): Add fesetexcept.
	(tests): Add test-fesetexcept and test-fesetexcept-traps.
	* math/test-fesetexcept.c: New file.
	* math/test-fesetexcept-traps.c: Likewise.
	* sysdeps/nacl/libm.abilist: Update.
	* sysdeps/unix/sysv/linux/aarch64/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/alpha/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/arm/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/hppa/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/i386/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/ia64/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/microblaze/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/mips/mips32/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/mips/mips64/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/nios2/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist:
	Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist:
	Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/libm-le.abilist:
	Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/libm.abilist:
	Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/sh/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libm.abilist:
	Likewise.
	* sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libm.abilist:
	Likewise.
	* sysdeps/unix/sysv/linux/tile/tilepro/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/64/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist: Likewise.
2016-08-16 16:16:10 +00:00
Zack Weinberg
63eb8df85a Minimize sysdeps code involved in defining major/minor/makedev.
Presently sys/sysmacros.h is entirely defined in sysdeps.  This would
mean that the deprecation logic coming up in the next patch would have
to be written twice (in generic/ and unix/sysv/linux/).  To avoid that,
hoist all but the unavoidably system-dependent logic to misc/, leaving a
bits/ header behind.  This also promotes the Linux-specific encoding of
dev_t, which accommodates 32-bit major and minor numbers in a 64-bit dev_t,
to generic, as glibc's dev_t is always 64 bits wide.

The former Linux implementation used inline functions to avoid evaluating
arguments more than once.  After this change, all platforms use inline
functions, which means that three new symbols are added to the generic ABI.
(These symbols are in the user namespace, which is how they have always
been on Linux.  They begin with "gnu_dev_", so collisions with user code
are pretty unlikely.)

New ports henceforth need only provide a bits/sysmacros.h defining
internal macros __SYSMACROS_{DECLARE,DEFINE}_{MAJOR,MINOR,MAKEDEV}.
This is only necessary if the kernel encoding is incompatible with
the now-generic encoding (for instance, it would be necessary for
FreeBSD).

While I was at it, I added a basic round-trip test for these functions.

	* sysdeps/generic/sys/sysmacros.h: Delete file.
	* sysdeps/unix/sysv/linux/makedev.c: Delete file.
	* sysdeps/unix/sysv/linux/sys/sysmacros.h: Move file ...
	* bits/sysmacros.h: ... here; this encoding is now the generic
	encoding.  Now defines only the following macros:
	__SYSMACROS_DECLARE_MAJOR, __SYSMACROS_DEFINE_MAJOR,
	__SYSMACROS_DECLARE_MINOR, __SYSMACROS_DEFINE_MINOR,
	__SYSMACROS_DECLARE_MAKEDEV, __SYSMACROS_DEFINE_MAKEDEV.

	* misc/sys/sysmacros.h, misc/makedev.c: New files that use
	bits/sysmacros.h and the above new macros to generate the
	public implementations of major, minor, and makedev.
	* misc/tst-makedev.c: New test.
	* include/sys/sysmacros.h: New wrapper.

	* misc/Makefile (headers): Add sys/sysmacros.h, bits/sysmacros.h.
	(routines): Add makedev.
	(tests): Add tst-makedev.
	* misc/Versions [GLIBC_2.25]: Add gnu_dev_major, gnu_dev_minor,
	gnu_dev_makedev.
	* posix/Makefile (headers): Remove sys/sysmacros.h.
	* sysdeps/unix/sysv/linux/Makefile (sysdep_routines): Remove makedev.

	* sysdeps/arm/nacl/libc.abilist: Add GLIBC_2.25,
	gnu_dev_major, gnu_dev_makedev, gnu_dev_minor.
	* sysdeps/unix/sysv/linux/aarch64/libc.abilist
	* sysdeps/unix/sysv/linux/alpha/libc.abilist
	* sysdeps/unix/sysv/linux/arm/libc.abilist
	* sysdeps/unix/sysv/linux/hppa/libc.abilist
	* sysdeps/unix/sysv/linux/i386/libc.abilist
	* sysdeps/unix/sysv/linux/ia64/libc.abilist
	* sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
	* sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
	* sysdeps/unix/sysv/linux/microblaze/libc.abilist
	* sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
	* sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
	* sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
	* sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
	* sysdeps/unix/sysv/linux/nios2/libc.abilist
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist
	* sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
	* sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
	* sysdeps/unix/sysv/linux/sh/libc.abilist
	* sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
	* sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
	* sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libc.abilist
	* sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libc.abilist
	* sysdeps/unix/sysv/linux/tile/tilepro/libc.abilist
	* sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
	* sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist:
	Add GLIBC_2.25.
2016-08-03 15:23:04 -04:00
Aurelien Jarno
b87c1ec3fa MIPS, SPARC: more fixes to the vfork aliases in libpthread.so
Commit 43c29487 tried to fix the vfork aliases in libpthread.so on MIPS
and SPARC, but failed to do it correctly, introducing an ABI change.

This patch does the remaining changes needed to align the MIPS and SPARC
vfork implementations with the other architectures. That way the the
alpha version of pt-vfork.S works correctly for MIPS and SPARC. The
changes for alpha were done in 82aab97c.

Changelog:
	* sysdeps/unix/sysv/linux/mips/vfork.S (__vfork): Rename into
	__libc_vfork.
	(__vfork) [IS_IN (libc)]: Remove alias.
	(__libc_vfork) [IS_IN (libc)]: Define as an alias.
	* sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S: Likewise.
2016-06-27 09:59:37 +02:00
Aurelien Jarno
43c2948756 MIPS, SPARC: fix wrong vfork aliases in libpthread.so
With recent binutils versions the GNU libc fails to build on at least
MISP and SPARC, with this kind of error:

  /home/aurel32/glibc/glibc-build/nptl/libpthread.so:(*IND*+0x0): multiple definition of `vfork@GLIBC_2.0'
  /home/aurel32/glibc/glibc-build/nptl/libpthread.so::(.text+0xee50): first defined here

It appears that on these architectures pt-vfork.S includes vfork.S
(through the alpha version of pt-vfork.S) and that the __vfork aliases
are not conditionalized on IS_IN (libc) like on other architectures.
Therefore the aliases are also wrongly included in libpthread.so.

Fix this by properly conditionalizing the aliases like on other
architectures.

Changelog:
	* sysdeps/unix/sysv/linux/mips/vfork.S (__vfork): Conditionalize
	hidden_def, weak_alias and strong_alias on [IS_IN (libc)].
	* sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S: Likewise.
2016-06-18 19:11:23 +02:00
Rajalakshmi Srinivasaraghavan
41a359e22f Add nextup and nextdown math functions
TS 18661 adds nextup and nextdown functions alongside nextafter to provide
support for float128 equivalent to it.  This patch adds nextupl, nextup,
nextupf, nextdownl, nextdown and nextdownf to libm before float128 support.

The nextup functions return the next representable value in the direction of
positive infinity and the nextdown functions return the next representable
value in the direction of negative infinity.  These are currently enabled
as GNU extensions.
2016-06-16 21:37:45 +05:30
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
Carlos O'Donell
47dd3543d3 Bug 20198: quick_exit should not call destructors.
In C++11 18.5.12 says "Objects shall not be destroyed as a
result of calling quick_exit." In C11 quick_exit is silent
about thread object destruction. Therefore to make glibc
C++ compliant we do not call any thread local destructors.
A new regression test verifies the fix.

I will note that C++11 18.5.3 makes it clear that C++
defines additional requirements for _Exit() to prevent it
from executing destructors.

Given that the point of _Exit() is to terminate the process
immediately it makes sense the C and C++ should line up
and avoid calling destructors.

No failures. New regtest passes.
2016-06-06 21:40:25 -04: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
Adhemerval Zanella
0cb313f7cb Fix clone (CLONE_VM) pid/tid reset (BZ#19957)
As discussed in libc-alpha [1] current clone with CLONE_VM (without
CLONE_THREAD set) will reset the pthread pid/tid fields to -1.  The
issue is since memory is shared between the parent and child it will
clobber parent's cached pid/tid leading to internal inconsistencies
if the value is not restored.

And even it is restored it may lead to racy conditions when between
set/restore a thread might invoke pthread function that validate the
pthread with INVALID_TD_P/INVALID_NOT_TERMINATED_TD_P and thus get
wrong results.

As stated in BZ19957, previously reports of this behaviour was close
with EWONTFIX due the fact usage of clone outside glibc is tricky
since glibc requires consistent internal pthread, while using clone
directly may not provide it. However since now posix_spawn uses
clone (CLONE_VM) to fixes various issues related to previous vfork
usage this issue requires fixing.

The vfork implementation also does something similar, but instead
it negates and restores only the *pid* field and functions that
might access its value know to handle such case (getpid, raise
and pthread ones that uses INVALID_TD_P/INVALID_NOT_TERMINATED_TD_P
macros that check only *tid* field).  Also vfork does not call
__clone directly, instead calling either __NR_vfork or __NR_clone
directly.

So this patch removes this clone behavior by avoiding setting
the pthread pid/tid field for CLONE_VM. There is no need to
check for CLONE_THREAD, since the minimum supported kernel in all
architecture implies that CLONE_VM must be used with CLONE_THREAD,
otherwise clone returns EINVAL.

Instead of current approach of:

   int clone(int (*fn)(void *), void *child_stack, int flags, ...)
      [...]
      if (flags & CLONE_THREAD)
        goto do_syscall;
      pid_t new_value;
      if (flags & CLONE_VM)
        new_value = -1;
      else
        new_value = getpid ();
      THREAD_SETMEM (THREAD_SELF, pid, new_value);
      THREAD_SETMEM (THREAD_SELF, tid, new_value);

    do_syscall:
      [...]

The new approach uses:

   int clone(int (*fn)(void *), void *child_stack, int flags, ...)
      [...]
      if (flags & CLONE_VM)
        goto do_syscall;
      pid_t new_value = getpid ();
      THREAD_SETMEM (THREAD_SELF, pid, new_value);
      THREAD_SETMEM (THREAD_SELF, tid, new_value);

    do_syscall:
      [...]

It also removes the linux tst-getpid2.c test which expects the previous
behavior and instead add another clone test.

Tested on x86_64, i686, x32, powerpc64le, aarch64, armhf, s390, and
s390x. I also did limited check on mips32 and sparc64 (using the new
added test).

I also got reviews from both m68k, hppa, and tile.  So I presume for
these architecture the patch works.

The fixes for alpha, microblaze, sh, ia64, and nio2 have not been
tested.

[1] https://sourceware.org/ml/libc-alpha/2016-04/msg00307.html

	* sysdeps/unix/sysv/linux/Makefile [$(subdir) == nptl] (test): Remove
	tst-getpid2.
	(test): Add tst-clone2.
	* sysdeps/unix/sysv/linux/tst-clone2.c: New file.
	* sysdeps/unix/sysv/linux/aarch64/clone.S (__clone): Do not change
	pid/tid fields for CLONE_VM.
	* sysdeps/unix/sysv/linux/arm/clone.S: Likewise.
	* sysdeps/unix/sysv/linux/i386/clone.S: Likewise.
	* sysdeps/unix/sysv/linux/mips/clone.S: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/clone.S: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/clone.S: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-64/clone.S: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/clone.S: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/clone.S: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/clone.S: Likewise.
	* sysdeps/unix/sysv/linux/tst-getpid2.c: Remove file.
2016-04-29 18:19:30 -03:00
Adhemerval Zanella
9ff72da471 posix: New Linux posix_spawn{p} implementation
This patch implements a new posix_spawn{p} implementation for Linux.  The main
difference is it uses the clone syscall directly with CLONE_VM and CLONE_VFORK
flags and a direct allocated stack.  The new stack and start function solves
most the vfork limitation (possible parent clobber due stack spilling).  The
remaning issue are related to signal handling:

  1. That no signal handlers must run in child context, to avoid corrupt
     parent's state.
  2. Child must synchronize with parent to enforce stack deallocation and
     to possible return execv issues.

The first one is solved by blocking all signals in child, even NPTL-internal
ones (SIGCANCEL and SIGSETXID).  The second issue is done by a stack allocation
in parent and a synchronization with using a pipe or waitpid (in case or error).
The pipe has the advantage of allowing the child signal an exec error (checked
with new tst-spawn2 test).

There is an inherent race condition in pipe2 usage for architectures that do not
support the syscall directly.  In such cases the a pipe plus fctnl is used
instead and it may lead to file descriptor leak in parent (as decribed by fcntl
documentation).

The child process stack is allocate with a mmap with MAP_STACK flag using
default architecture stack size.  Although it is slower than use a stack buffer
from parent, it allows some slack for the compatibility code to run scripts
with no shebang (which may use a buffer with size depending of argument list
count).

Performance should be similar to the vfork default posix implementation and
way faster than fork path (vfork on mostly linux ports are basically
clone with CLONE_VM plus CLONE_VFORK).  The only difference is the syscalls
required for the stack allocation/deallocation.

It fixes BZ#10354, BZ#14750, and BZ#18433.

Tested on i386, x86_64, powerpc64le, and aarch64.

	[BZ #14750]
	[BZ #10354]
	[BZ #18433]
	* include/sched.h (__clone): Add hidden prototype.
	(__clone2): Likewise.
	* include/unistd.h (__dup): Likewise.
	* posix/Makefile (tests): Add tst-spawn2.
	* posix/tst-spawn2.c: New file.
	* sysdeps/posix/dup.c (__dup): Add hidden definition.
	* sysdeps/unix/sysv/linux/aarch64/clone.S (__clone): Likewise.
	* sysdeps/unix/sysv/linux/alpha/clone.S (__clone): Likewise.
	* sysdeps/unix/sysv/linux/arm/clone.S (__clone): Likewise.
	* sysdeps/unix/sysv/linux/hppa/clone.S (__clone): Likewise.
	* sysdeps/unix/sysv/linux/i386/clone.S (__clone): Likewise.
	* sysdeps/unix/sysv/linux/ia64/clone2.S (__clone): Likewise.
	* sysdeps/unix/sysv/linux/m68k/clone.S (__clone): Likewise.
	* sysdeps/unix/sysv/linux/microblaze/clone.S (__clone): Likewise.
	* sysdeps/unix/sysv/linux/mips/clone.S (__clone): Likewise.
	* sysdeps/unix/sysv/linux/nios2/clone.S (__clone): Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S (__clone):
	Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/clone.S (__clone):
	Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/clone.S (__clone): Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-64/clone.S (__clone): Likewise.
	* sysdeps/unix/sysv/linux/sh/clone.S (__clone): Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/clone.S (__clone): Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/clone.S (__clone): Likewise.
	* sysdeps/unix/sysv/linux/tile/clone.S (__clone): Likewise.
	* sysdeps/unix/sysv/linux/x86_64/clone.S (__clone): Likewise.
	* sysdeps/unix/sysv/linux/nptl-signals.h
	(____nptl_is_internal_signal): New function.
	* sysdeps/unix/sysv/linux/spawni.c: New file.
2016-03-07 11:53:47 +07:00
David S. Miller
6ef1cb957e Update localplt.data for 32-bit sparc.
* sysdeps/unix/sysv/linux/sparc/sparc32/localplt.data: Add _Q_cmp.
2016-01-26 16:16:38 -08:00
David S. Miller
82e5836613 Define __sqrtl_finite on sparc 32-bit with correct symbol version.
* sysdeps/sparc/sparc32/Versions (GLIBC_2.23): Add entry for __sqrtl_finite.
	* sysdeps/sparc/sparc32/fpu/e_sqrtl.c (__sqrtl_finite): Define instead using
	versioned_symbol.
	* sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist: Fix ordering of entries.
2016-01-25 16:07:15 -08:00
David S. Miller
7a18c2a0c1 Adjust sparc 32-bit __sqrtl_finite version tag.
* sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist: Move
	__sqrtl_finite to GLIBC_2.23
2016-01-25 10:42:17 -08:00
David S. Miller
c34ae92056 Fix missing __sqrtl_finite symbol in libm on sparc 32-bit.
* sysdeps/sparc/sparc32/fpu/e_sqrtl.c: New file.
	* sysdeps/sparc/sparc32/soft-fp/q_sqrt.c (__ieee754_sqrtl): Remove alias.
	* sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist: Add __sqrtl_finite.
2016-01-24 21:14:12 -08:00
Joseph Myers
f7a9f785e5 Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
Joseph Myers
d709042a6e Fix lgamma setting signgam for ISO C (bug 15421).
The lgamma (and likewise lgammaf, lgammal) function wrongly sets the
signgam variable even when building for strict ISO C conformance
(-std=c99 / -std=c11), although the user may define such a variable
and it's only in the implementation namespace for POSIX with XSI
extensions enabled.

Following discussions starting at
<https://sourceware.org/ml/libc-alpha/2013-04/msg00767.html> and
<https://sourceware.org/ml/libc-alpha/2015-10/msg00844.html>, it seems
that the safest approach for fixing this particular issue is for
signgam to become a weak alias for a newly exported symbol __signgam,
with the library functions only setting __signgam, at which point
static linker magic will preserve the alias for newly linked binaries
that refer to the library's signgam rather than defining their own,
while breaking the alias for programs that define their own signgam,
with new symbol versions for lgamma functions and with compat symbols
for existing binaries that set both signgam and __signgam.

This patch implements that approach for the fix.  signgam is made into
a weak alias.  The four symbols __signgam, lgamma, lgammaf, lgammal
get new symbol versions at version GLIBC_2.23, with the existing
versions of lgamma, lgammaf and lgammal becoming compat symbols.

When the compat versions are built, gamma, gammaf and gammal are
aliases for the compat versions (i.e. always set signgam); this is OK
as they are not ISO C functions, and avoids adding new symbol versions
for them unnecessarily.  When the compat versions are not built
(i.e. for static linking and for future glibc ports), gamma, gammaf
and gammal are aliases for the new versions that set __signgam.  The
ldbl-opt versions are updated accordingly.

The lgamma wrappers are adjusted so that the same source files,
included from different files with different definitions of
USE_AS_COMPAT, can build either the new versions or the compat
versions.  Similar changes are made to the ia64 versions (untested).

Tests are added that the lgamma functions do not interfere with a user
variable called signgam for ISO C, with various choices for the size
of that variable, whether it is initialized, and for static and
dynamic linking.  The conformtest whitelist entry is removed as well.

Tested for x86_64, x86, mips64 and powerpc, including looking at
objdump --dynamic-syms output to make sure the expected sets of
symbols were aliases.  Also spot-tested that a binary built with old
glibc works properly (i.e. gets signgam set) when run with new glibc.

	[BZ #15421]
	* sysdeps/ieee754/s_signgam.c (signgam): Rename to __signgam,
	initialize with 0 and define as weak alias of __signgam.
	* include/math.h [!_ISOMAC] (__signgam): Declare.
	* math/Makefile (libm-calls): Add w_lgamma_compat.
	(tests): Add test-signgam-uchar, test-signgam-uchar-init,
	test-signgam-uint, test-signgam-uint-init, test-signgam-ullong and
	test-signgam-ullong-init.
	(tests-static): Add test-signgam-uchar-static,
	test-signgam-uchar-init-static, test-signgam-uint-static,
	test-signgam-uint-init-static, test-signgam-ullong-static and
	test-signgam-ullong-init-static.
	(CFLAGS-test-signgam-uchar.c): New variable.
	(CFLAGS-test-signgam-uchar-init.c): Likewise.
	(CFLAGS-test-signgam-uchar-static.c): Likewise.
	(CFLAGS-test-signgam-uchar-init-static.c): Likewise.
	(CFLAGS-test-signgam-uint.c): Likewise.
	(CFLAGS-test-signgam-uint-init.c): Likewise.
	(CFLAGS-test-signgam-uint-static.c): Likewise.
	(CFLAGS-test-signgam-uint-init-static.c): Likewise.
	(CFLAGS-test-signgam-ullong.c): Likewise.
	(CFLAGS-test-signgam-ullong-init.c): Likewise.
	(CFLAGS-test-signgam-ullong-static.c): Likewise.
	(CFLAGS-test-signgam-ullong-init-static.c): Likewise.
	* math/Versions (libm): Add GLIBC_2.23.
	* math/lgamma-compat.h: New file.
	* math/test-signgam-main.c: Likewise.
	* math/test-signgam-uchar-init-static.c: Likewise.
	* math/test-signgam-uchar-init.c: Likewise.
	* math/test-signgam-uchar-static.c: Likewise.
	* math/test-signgam-uchar.c: Likewise.
	* math/test-signgam-uint-init-static.c: Likewise.
	* math/test-signgam-uint-init.c: Likewise.
	* math/test-signgam-uint-static.c: Likewise.
	* math/test-signgam-uint.c: Likewise.
	* math/test-signgam-ullong-init-static.c: Likewise.
	* math/test-signgam-ullong-init.c: Likewise.
	* math/test-signgam-ullong-static.c: Likewise.
	* math/test-signgam-ullong.c: Likewise.
	* math/w_lgamma.c: Rename to w_lgamma_main.c and replace by
	wrapper of w_lgamma_main.c.
	* math/w_lgamma_compat.c: New file.
	* math/w_lgamma_compatf.c: Likewise.
	* math/w_lgamma_compatl.c: Likewise.
	* math/w_lgamma_main.c: New file.  Based on w_lgamma.c.  Include
	<lgamma-compat.h>.  Condition contents on [BUILD_LGAMMA].  Support
	defining compatibility symbols.
	(__lgamma): Change to LGFUNC (__lgamma).  Use CALL_LGAMMA.
	* math/w_lgammaf.c: Rename to w_lgammaf_main.c and replace by
	wrapper of w_lgammaf_main.c.
	* math/w_lgammaf_main.c: New file.  Based on w_lgammaf.c.  Include
	<lgamma-compat.h>.  Condition contents on [BUILD_LGAMMA].  Support
	defining compatibility symbols.
	(__lgammaf): Change to LGFUNC (__lgammaf).  Use CALL_LGAMMA.
	* math/w_lgammal.c: Rename to w_lgammal_main.c and replace by
	wrapper of w_lgammal_main.c.
	* math/w_lgammal_main.c: New file.  Based on w_lgammal.c.  Include
	<lgamma-compat.h>.  Condition contents on [BUILD_LGAMMA].  Support
	defining compatibility symbols.
	(__lgammal): Change to LGFUNC (__lgammal).  Use CALL_LGAMMA.
	* sysdeps/ia64/fpu/lgamma-compat.h: New file.
	* sysdeps/ia64/fpu/w_lgamma.c: Move to ....
	* sysdeps/ia64/fpu/w_lgamma_main.c: ...here.  Include
	<lgamma-compat.h>.
	(__ieee754_lgamma): Change to LGFUNC (lgamma).  Use CALL_LGAMMA.
	(__ieee754_gamma): Define as alias.
	* sysdeps/ia64/fpu/w_lgammaf.c: Move to ....
	* sysdeps/ia64/fpu/w_lgammaf_main.c: ...here.  Include
	<lgamma-compat.h>.
	(__ieee754_lgammaf): Change to LGFUNC (lgammaf).  Use CALL_LGAMMA.
	(__ieee754_gammaf): Define as alias.
	* sysdeps/ia64/fpu/w_lgammal.c: Move to ....
	* sysdeps/ia64/fpu/w_lgammal_main.c: ...here.  Include
	<lgamma-compat.h>.
	(__ieee754_lgammal): Change to LGFUNC (lgammal).  Use CALL_LGAMMA.
	(__ieee754_gammal): Define as alias.
	* sysdeps/ieee754/ldbl-opt/w_lgamma.c: Move to ....
	* sysdeps/ieee754/ldbl-opt/w_lgamma_compat.c: ...here.  Include
	<math/w_lgamma_compat.c>.
	[LONG_DOUBLE_COMPAT(libm, GLIBC_2_0)] (__lgammal_dbl_compat):
	Define as alias of __lgamma_compat and use in defining lgammal.
	* sysdeps/ieee754/ldbl-opt/w_lgammal.c: Move to ....
	* sysdeps/ieee754/ldbl-opt/w_lgamma_compatl.c: ...here.  Include
	<math/lgamma-compat.h> and <math/w_lgamma_compatl.c>.
	(USE_AS_COMPAT): New macro.
	(LGAMMA_OLD_VER): Undefine and redefine.
	(lgammal): Do not define here.
	(gammal): Only define here if [GAMMA_ALIAS].
	* conform/linknamespace.pl (@whitelist): Remove signgam.
	* sysdeps/nacl/libm.abilist: Update.
	* sysdeps/unix/sysv/linux/aarch64/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/alpha/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/arm/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/hppa/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/i386/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/ia64/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/microblaze/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/mips/mips32/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/mips/mips64/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/nios2/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist:
	Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist:
	Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/libm-le.abilist:
	Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/libm.abilist:
	Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/sh/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libm.abilist:
	Likewise.
	* sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libm.abilist:
	Likewise.
	* sysdeps/unix/sysv/linux/tile/tilepro/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/64/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist: Likewise.
2015-11-20 22:49:59 +00:00
Florian Weimer
8c77b6ad40 Simplify the abilist format
The new format lists the version on each line, as in:

	VERSION SYMBOL TYPE [VALUE]

This makes it easier to process the files with line-oriented tools.

The abilist files were converted with this awk script:

/^[^ ]/ { version = $1 }
/^ / { print version, substr($0, 2) }

And sorted under the "C" locale with sort.
2015-11-06 13:58:53 +01:00
Mark Wielaard
8b7b7f75d9 Add LFS support for fts functions (bug 11460)
fts didn't have large-file support yet and fts.h had an #error preventing
usage when _FILE_OFFSET_BITS was set. This required nasty workarounds for
programs using fts with LFS. This patch implements LFS support for fts by
adding FTS64 and FTENT64 variants plus fts64 functions. Which are simple
aliases for 64bit off_t arches.

Also includes a simple testcase for some of the fts functions with or
without LFS enabled.

	[BZ #11460]
	* io/Makefile (routines): Add fts64.
	(tests): Add tst-fts and tst-fts-lfs.
	(CFLAGS-fts64.c): New.
	* io/Versions (GLIBC_2.23): New.
	* io/fts.c: Replace FTS with FTSOBJ, FTSENT with FTSENTRY. Use
	function defines FTS_OPEN, FTS_CLOSE, FTS_READ, FTS_SET and
	FTS_CHILDREN. Define FTSOBJ, FTSENTRY, FTS_OPEN, FTS_CLOSE,
	FTS_READ, FTS_SET, FTS_CHILDREN, INO_T, STAT and LSTAT if necessary.
	* io/fts.h (FTS64): New if _USE_LARGEFILE64.
	(FTSENT64): Likewise.
	(fts64_children): Likewise.
	(fts64_close): Likewise.
	(fts64_open): Likewise.
	(fts64_read): Likewise.
	(fts64_set): Likewise.
	* io/fts64.c: New file.
	* io/tst-fts.c: New test.
	* io/tst-fts-lfs.c: Likewise.
	* sysdeps/unix/sysv/linux/aarch64/libc.abilist (GLIBC_2.23): Add
	GLIBC_2.23, fts64_children, fts64_close, fts64_open, fts64_read and
	fts64_set.
	* 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/nios2/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.abilist: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.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/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.
	* sysdeps/wordsize-64/fts.c: New file.
	* sysdeps/wordsize-64/fts64.c: Likewise.
	* sysdeps/unix/sysv/linux/mips/mips64/n64/fts.c: Likewise.
	* sysdeps/unix/sysv/linux/mips/mips64/n64/fts64.c: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/x32/fts.c: likewise.
	* sysdeps/unix/sysv/linux/x86_64/x32/fts64.c: likewise.
2015-11-06 11:24:16 +01:00
Andreas Schwab
be481652f2 Remove __ASSUME_IPC64
PowerPC has always used __IPC_64 like most other architectures, which
means that __ASSUME_IPC64 can be always true.  Also, all other
architecture implementations that use the ipc syscall are effectively
identical to the generic version and can be removed.
2015-08-24 10:53:49 +02:00
Adhemerval Zanella
fdb7d390dd libio: fmemopen rewrite to POSIX compliance
This patch added a new fmemopen version, for glibc 2.22, that aims to be
POSIX complaint.  It fixes some long-stading glibc fmemopen issues, such
as:

* it changes the way fseek with SEEK_END works on fmemopen to seek
  relative to buffer size instead of first '\0'.  This is default mode and
  'b' opening mode does not change internal behavior (bz#6544).

* fix apending opening mode to use as start position either first null
  byte of len specified in function call (bz#13152 and #13151).

* remove binary option 'b' and internal different handling (bz#12836)

* fix seek/SEE_END with negative values (bz#14292).

A compatibility symbol is provided to with old behavior for older symbols
version (2.2.5).

	* include/stdio.h (fmemopen): Remove hidden prototype.
	(__fmemopen): Add new hidden prototype.
	* libio/Makefile: Add oldfmemopen object.
	* libio/Versions [GLIBC_2.22]: Add new fmemopen symbol.
	* libio/fmemopen.c (__fmemopen): Function rewrite to be POSIX
	compliance.
	* libio/oldfmemopen.c: New file: old fmemopen implementation for
	symbol compatibility.
	* stdio-common/Makefile [tests]: Add new tst-fmemopen3.
	* stdio-common/psiginfo.c [psiginfo]: Call __fmemopen instead of
	fmemopen.
	* stdio-common/tst-fmemopen3.c: New file: more fmemopen tests, focus
	on append and read mode.
	* sysdeps/unix/sysv/linux/aarch64/libc.abilist [GLIBC_2.22]: Add
	fmemopen.
	* sysdeps/unix/sysv/linux/alpha/libc.abilist [GLIBC_2.22]: Likewise.
	* sysdeps/unix/sysv/linux/arm/libc.abilist [GLIBC_2.22]: Likewise.
	* sysdeps/unix/sysv/linux/i386/libc.abilist [GLIBC_2.22]: Likewise.
	* sysdeps/unix/sysv/linux/ia64/libc.abilist [GLIBC_2.22]:
	Likewise.
	* sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
	[GLIBC_2.22]: Likewise.
	* sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist [GLIBC_2.22]:
	Likewise.
	* sysdeps/unix/sysv/linux/microblaze/libc.abilist [GLIBC_2.22]:
	Likewise.
	* sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
	[GLIBC_2.22]: Likewise.
	* sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
	[GLIBC_2.22]: Likewise.
	* sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
	[GLIBC_2.22]: Likewise.
	* sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
	[GLIBC_2.22]: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
	[GLIBC_2.22]: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
	[GLIBC_2.22]: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist
	[GLIBC_2.22]: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist [GLIBC_2.22]:
	Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist [GLIBC_2.22]:
	Likewise.
	* sysdeps/unix/sysv/linux/sh/libc.abilist [GLIBC_2.22]: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
	[GLIBC_2.22]: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
	[GLIBC_2.22]: Likewise.
	* sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libc.abilist
	[GLIBC_2.22]: Likewise.
	* sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libc.abilist
	[GLIBC_2.22]: Likewise.
	* sysdeps/unix/sysv/linux/tile/tilepro/libc.abilist [GLIBC_2.22]:
	Likewise.
	* sysdeps/unix/sysv/linux/x86_64/64/libc.abilist [GLIBC_2.22]:
	Likewise.
	* sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist [GLIBC_2.22]:
	Likewise.
	* sysdeps/unix/sysv/linux/hppa/libc.abilist [GLIBC_2.22]: Likewise.
	* sysdeps/unix/sysv/linux/nios2/libc.abilist [GLIBC_2.22]: Likewise.
2015-07-08 12:07:21 -03: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
David S. Miller
3f2e21e9cf Update sparc localplt.data
* sysdeps/unix/sysv/linux/sparc/sparc32/localplt.data: Remove
	__tls_get_addr.
	* sysdeps/unix/sysv/linux/sparc/sparc64/localplt.data: Likewise.
2015-04-27 14:53:13 -07:00
Joseph Myers
b168057aaa Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
Joseph Myers
ea41469b7a Fix profil_counter namespace (bug 17725).
On ARM, where profil_counter is not static, it is brought in by
references to various standard functions, as noted in
<https://sourceware.org/ml/libc-alpha/2014-11/msg00890.html>, although
it is not a standard function itself.  I don't know if this also
causes test failures on SPARC, although I see no reason for it not to
do so.

This patch fixes this namespace issue.  profil_counter is renamed to
__profil_counter and made a weak alias on ARM and SPARC.  Because of
the uses in profil.c / sprofil.c it seems simplest to make the rename
globally, including on the other architectures for which
profil_counter was static and so the change is of no substance.  The
variant names profil_counter_* used in sprofil.c are also renamed to
start with __ so that undesired function names do not get exported in
static libc.

As I noted in bug 17726, profil_counter should probably be a compat
symbol on ARM and SPARC, so it wouldn't exist at all in static libc
even as a weak alias.  Since defining a compat symbol still requires
an internal name as a target of an alias, this patch still seems
reasonable as an intermediate step towards that goal: it wouldn't be
possible for the function simply to be static profil_counter on ARM
and SPARC with profil_counter also being the exported compat symbol
name, so profil.c / sprofil.c would still need to be prepared to call
the function under another name (here, __profil_counter).

Tested for x86_64 (testsuite, and that stripped installed shared
libraries are unchanged by the patch) and ARM (ABI and linknamespace
tests - this patch reduces the number of linknamespace failures I see
on ARM from 227 to 5, the residue being math.h failures for fe*
functions and for j0l/j1n/jnl/y0l/y1l/ynl aliases).

2014-12-17  Joseph Myers  <joseph@codesourcery.com>

	[BZ #17725]
	* sysdeps/generic/profil-counter.h (profil_counter): Rename to
	__profil_counter.
	* sysdeps/unix/sysv/linux/hppa/profil-counter.h (profil_counter):
	Likewise.
	* sysdeps/unix/sysv/linux/i386/profil-counter.h (profil_counter):
	Likewise.
	* sysdeps/unix/sysv/linux/ia64/profil-counter.h (profil_counter):
	Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/profil-counter.h
	(profil_counter): Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-64/profil-counter.h
	(profil_counter): Likewise.
	* sysdeps/unix/sysv/linux/sh/profil-counter.h (profil_counter):
	Likewise.
	* sysdeps/unix/sysv/linux/tile/profil-counter.h (profil_counter):
	Likewise.
	* sysdeps/unix/sysv/linux/x86_64/profil-counter.h
	(profil_counter): Likewise.
	* sysdeps/unix/sysv/linux/arm/profil-counter.h (profil_counter):
	Likewise.
	[!__profil_counter] (profil_counter): Define as weak alias of
	__profil_counter.
	* sysdeps/unix/sysv/linux/sparc/sparc32/profil-counter.h
	(profil_counter): Rename to __profil_counter.
	[!__profil_counter] (profil_counter): Define as weak alias of
	__profil_counter.
	* sysdeps/unix/sysv/linux/sparc/sparc64/profil-counter.h
	(profil_counter): Rename to __profil_counter.
	[!__profil_counter] (profil_counter): Define as weak alias of
	__profil_counter.
	* sysdeps/posix/profil.c: Update comment referring to
	profil_counter.
	(__profil): Use __profil_counter instead of profil_counter.
	* sysdeps/posix/sprofil.c (profil_counter): Rename to
	__profil_counter.  Use __profil_counter_ushort and
	__profil_counter_uint in definitions.
	(__sprofil): Use __profil_counter_uint and __profil_counter_ushort
	instead of profil_counter_uint and profil_counter_ushort.
2014-12-17 18:10:37 +00:00
Siddhesh Poyarekar
4f41c682f3 Remove NOT_IN_libc
Replace with !IS_IN (libc).  This completes the transition from
the IS_IN/NOT_IN macros to the IN_MODULE macro set.

The generated code is unchanged on x86_64.

	* stdlib/isomac.c (fmt): Replace NOT_IN_libc with IN_MODULE.
	(get_null_defines): Adjust.
	* sunrpc/Makefile: Adjust comment.
	* Makerules (CPPFLAGS-nonlib): Remove NOT_IN_libc.
	* elf/Makefile (CPPFLAGS-sotruss-lib): Likewise.
	(CFLAGS-interp.c): Likewise.
	(CFLAGS-ldconfig.c): Likewise.
	(CPPFLAGS-.os): Likewise.
	* elf/rtld-Rules (rtld-CPPFLAGS): Likewise.
	* extra-lib.mk (CPPFLAGS-$(lib)): Likewise.
	* extra-modules.mk (extra-modules.mk): Likewise.
	* iconv/Makefile (CPPFLAGS-iconvprogs): Likewise.
	* locale/Makefile (CPPFLAGS-locale_programs): Likewise.
	* malloc/Makefile (CPPFLAGS-memusagestat): Likewise.
	* nscd/Makefile (CPPFLAGS-nscd): Likewise.
	* nss/Makefile (CPPFLAGS-nss_test1): Likewise.
	* stdlib/Makefile (CFLAGS-tst-putenvmod.c): Likewise.
	* sysdeps/gnu/Makefile ($(objpfx)errlist-compat.c): Likewise.
	* sysdeps/unix/sysv/linux/Makefile (CPPFLAGS-lddlibc4): Likewise.
	* iconvdata/Makefile (CPPFLAGS): Likewise.
	(cpp-srcs-left): Add libof for all iconvdata routines.
	* bits/stdio-lock.h: Replace NOT_IN_libc with IS_IN.
	* include/assert.h: Likewise.
	* include/ctype.h: Likewise.
	* include/errno.h: Likewise.
	* include/libc-symbols.h: Likewise.
	* include/math.h: Likewise.
	* include/netdb.h: Likewise.
	* include/resolv.h: Likewise.
	* include/stdio.h: Likewise.
	* include/stdlib.h: Likewise.
	* include/string.h: Likewise.
	* include/sys/stat.h: Likewise.
	* include/wctype.h: Likewise.
	* intl/l10nflist.c: Likewise.
	* libidn/idn-stub.c: Likewise.
	* libio/libioP.h: Likewise.
	* nptl/libc_multiple_threads.c: Likewise.
	* nptl/pthreadP.h: Likewise.
	* posix/regex_internal.h: Likewise.
	* resolv/res_hconf.c: Likewise.
	* sysdeps/arm/armv7/multiarch/memcpy.S: Likewise.
	* sysdeps/arm/memmove.S: Likewise.
	* sysdeps/arm/sysdep.h: Likewise.
	* sysdeps/generic/_itoa.h: Likewise.
	* sysdeps/generic/symbol-hacks.h: Likewise.
	* sysdeps/gnu/errlist.awk: Likewise.
	* sysdeps/gnu/errlist.c: Likewise.
	* sysdeps/i386/i586/memcpy.S: Likewise.
	* sysdeps/i386/i586/memset.S: Likewise.
	* sysdeps/i386/i686/memcpy.S: Likewise.
	* sysdeps/i386/i686/memmove.S: Likewise.
	* sysdeps/i386/i686/mempcpy.S: Likewise.
	* sysdeps/i386/i686/memset.S: Likewise.
	* sysdeps/i386/i686/multiarch/bcopy.S: Likewise.
	* sysdeps/i386/i686/multiarch/bzero.S: Likewise.
	* sysdeps/i386/i686/multiarch/memchr-sse2-bsf.S: Likewise.
	* sysdeps/i386/i686/multiarch/memchr-sse2.S: Likewise.
	* sysdeps/i386/i686/multiarch/memchr.S: Likewise.
	* sysdeps/i386/i686/multiarch/memcmp-sse4.S: Likewise.
	* sysdeps/i386/i686/multiarch/memcmp-ssse3.S: Likewise.
	* sysdeps/i386/i686/multiarch/memcmp.S: Likewise.
	* sysdeps/i386/i686/multiarch/memcpy-ssse3-rep.S: Likewise.
	* sysdeps/i386/i686/multiarch/memcpy-ssse3.S: Likewise.
	* sysdeps/i386/i686/multiarch/memcpy.S: Likewise.
	* sysdeps/i386/i686/multiarch/memcpy_chk.S: Likewise.
	* sysdeps/i386/i686/multiarch/memmove.S: Likewise.
	* sysdeps/i386/i686/multiarch/memmove_chk.S: Likewise.
	* sysdeps/i386/i686/multiarch/mempcpy.S: Likewise.
	* sysdeps/i386/i686/multiarch/mempcpy_chk.S: Likewise.
	* sysdeps/i386/i686/multiarch/memrchr-c.c: Likewise.
	* sysdeps/i386/i686/multiarch/memrchr-sse2-bsf.S: Likewise.
	* sysdeps/i386/i686/multiarch/memrchr-sse2.S: Likewise.
	* sysdeps/i386/i686/multiarch/memrchr.S: Likewise.
	* sysdeps/i386/i686/multiarch/memset-sse2-rep.S: Likewise.
	* sysdeps/i386/i686/multiarch/memset-sse2.S: Likewise.
	* sysdeps/i386/i686/multiarch/memset.S: Likewise.
	* sysdeps/i386/i686/multiarch/memset_chk.S: Likewise.
	* sysdeps/i386/i686/multiarch/rawmemchr.S: Likewise.
	* sysdeps/i386/i686/multiarch/strcat-sse2.S: Likewise.
	* sysdeps/i386/i686/multiarch/strcat-ssse3.S: Likewise.
	* sysdeps/i386/i686/multiarch/strcat.S: Likewise.
	* sysdeps/i386/i686/multiarch/strchr-sse2-bsf.S: Likewise.
	* sysdeps/i386/i686/multiarch/strchr-sse2.S: Likewise.
	* sysdeps/i386/i686/multiarch/strchr.S: Likewise.
	* sysdeps/i386/i686/multiarch/strcmp-sse4.S: Likewise.
	* sysdeps/i386/i686/multiarch/strcmp-ssse3.S: Likewise.
	* sysdeps/i386/i686/multiarch/strcmp.S: Likewise.
	* sysdeps/i386/i686/multiarch/strcpy-sse2.S: Likewise.
	* sysdeps/i386/i686/multiarch/strcpy-ssse3.S: Likewise.
	* sysdeps/i386/i686/multiarch/strcpy.S: Likewise.
	* sysdeps/i386/i686/multiarch/strcspn.S: Likewise.
	* sysdeps/i386/i686/multiarch/strlen-sse2-bsf.S: Likewise.
	* sysdeps/i386/i686/multiarch/strlen-sse2.S: Likewise.
	* sysdeps/i386/i686/multiarch/strlen.S: Likewise.
	* sysdeps/i386/i686/multiarch/strnlen.S: Likewise.
	* sysdeps/i386/i686/multiarch/strrchr-sse2-bsf.S: Likewise.
	* sysdeps/i386/i686/multiarch/strrchr-sse2.S: Likewise.
	* sysdeps/i386/i686/multiarch/strrchr.S: Likewise.
	* sysdeps/i386/i686/multiarch/strspn.S: Likewise.
	* sysdeps/i386/i686/multiarch/wcschr-c.c: Likewise.
	* sysdeps/i386/i686/multiarch/wcschr-sse2.S: Likewise.
	* sysdeps/i386/i686/multiarch/wcschr.S: Likewise.
	* sysdeps/i386/i686/multiarch/wcscmp-sse2.S: Likewise.
	* sysdeps/i386/i686/multiarch/wcscmp.S: Likewise.
	* sysdeps/i386/i686/multiarch/wcscpy-c.c: Likewise.
	* sysdeps/i386/i686/multiarch/wcscpy-ssse3.S: Likewise.
	* sysdeps/i386/i686/multiarch/wcscpy.S: Likewise.
	* sysdeps/i386/i686/multiarch/wcslen-c.c: Likewise.
	* sysdeps/i386/i686/multiarch/wcslen-sse2.S: Likewise.
	* sysdeps/i386/i686/multiarch/wcslen.S: Likewise.
	* sysdeps/i386/i686/multiarch/wcsrchr-c.c: Likewise.
	* sysdeps/i386/i686/multiarch/wcsrchr-sse2.S: Likewise.
	* sysdeps/i386/i686/multiarch/wcsrchr.S: Likewise.
	* sysdeps/i386/i686/multiarch/wmemcmp-c.c: Likewise.
	* sysdeps/i386/i686/multiarch/wmemcmp.S: Likewise.
	* sysdeps/ia64/fpu/libm-symbols.h: Likewise.
	* sysdeps/nptl/bits/libc-lock.h: Likewise.
	* sysdeps/nptl/bits/libc-lockP.h: Likewise.
	* sysdeps/nptl/bits/stdio-lock.h: Likewise.
	* sysdeps/posix/closedir.c: Likewise.
	* sysdeps/posix/opendir.c: Likewise.
	* sysdeps/posix/readdir.c: Likewise.
	* sysdeps/posix/rewinddir.c: Likewise.
	* sysdeps/powerpc/novmx-sigjmp.c: Likewise.
	* sysdeps/powerpc/powerpc32/__longjmp.S: Likewise.
	* sysdeps/powerpc/powerpc32/bsd-_setjmp.S: Likewise.
	* sysdeps/powerpc/powerpc32/fpu/__longjmp.S: Likewise.
	* sysdeps/powerpc/powerpc32/fpu/setjmp.S: Likewise.
	* sysdeps/powerpc/powerpc32/power4/multiarch/bzero.c: Likewise.
	* sysdeps/powerpc/powerpc32/power4/multiarch/memchr.c: Likewise.
	* sysdeps/powerpc/powerpc32/power4/multiarch/memcmp-ppc32.S: Likewise.
	* sysdeps/powerpc/powerpc32/power4/multiarch/memcmp.c: Likewise.
	* sysdeps/powerpc/powerpc32/power4/multiarch/memcpy-ppc32.S: Likewise.
	* sysdeps/powerpc/powerpc32/power4/multiarch/memcpy.c: Likewise.
	* sysdeps/powerpc/powerpc32/power4/multiarch/memmove.c: Likewise.
	* sysdeps/powerpc/powerpc32/power4/multiarch/mempcpy.c: Likewise.
	* sysdeps/powerpc/powerpc32/power4/multiarch/memrchr-ppc32.c: Likewise.
	* sysdeps/powerpc/powerpc32/power4/multiarch/memrchr.c: Likewise.
	* sysdeps/powerpc/powerpc32/power4/multiarch/memset-ppc32.S: Likewise.
	* sysdeps/powerpc/powerpc32/power4/multiarch/memset.c: Likewise.
	* sysdeps/powerpc/powerpc32/power4/multiarch/rawmemchr.c: Likewise.
	* sysdeps/powerpc/powerpc32/power4/multiarch/strcasecmp.c: Likewise.
	* sysdeps/powerpc/powerpc32/power4/multiarch/strcasecmp_l.c: Likewise.
	* sysdeps/powerpc/powerpc32/power4/multiarch/strchr.c: Likewise.
	* sysdeps/powerpc/powerpc32/power4/multiarch/strchrnul.c: Likewise.
	* sysdeps/powerpc/powerpc32/power4/multiarch/strlen-ppc32.S: Likewise.
	* sysdeps/powerpc/powerpc32/power4/multiarch/strlen.c: Likewise.
	* sysdeps/powerpc/powerpc32/power4/multiarch/strncase.c: Likewise.
	* sysdeps/powerpc/powerpc32/power4/multiarch/strncase_l.c: Likewise.
	* sysdeps/powerpc/powerpc32/power4/multiarch/strncmp-ppc32.S: Likewise.
	* sysdeps/powerpc/powerpc32/power4/multiarch/strncmp.c: Likewise.
	* sysdeps/powerpc/powerpc32/power4/multiarch/strnlen.c: Likewise.
	* sysdeps/powerpc/powerpc32/power4/multiarch/wcschr-ppc32.c: Likewise.
	* sysdeps/powerpc/powerpc32/power4/multiarch/wcschr.c: Likewise.
	* sysdeps/powerpc/powerpc32/power4/multiarch/wcscpy-ppc32.c: Likewise.
	* sysdeps/powerpc/powerpc32/power4/multiarch/wcscpy.c: Likewise.
	* sysdeps/powerpc/powerpc32/power4/multiarch/wcsrchr-ppc32.c: Likewise.
	* sysdeps/powerpc/powerpc32/power4/multiarch/wcsrchr.c: Likewise.
	* sysdeps/powerpc/powerpc32/power4/multiarch/wordcopy.c: Likewise.
	* sysdeps/powerpc/powerpc32/power6/memset.S: Likewise.
	* sysdeps/powerpc/powerpc32/setjmp.S: Likewise.
	* sysdeps/powerpc/powerpc64/__longjmp.S: Likewise.
	* sysdeps/powerpc/powerpc64/multiarch/bzero.c: Likewise.
	* sysdeps/powerpc/powerpc64/multiarch/memchr.c: Likewise.
	* sysdeps/powerpc/powerpc64/multiarch/memcmp-ppc64.c: Likewise.
	* sysdeps/powerpc/powerpc64/multiarch/memcmp.c: Likewise.
	* sysdeps/powerpc/powerpc64/multiarch/memcpy-ppc64.S: Likewise.
	* sysdeps/powerpc/powerpc64/multiarch/memcpy.c: Likewise.
	* sysdeps/powerpc/powerpc64/multiarch/memmove-ppc64.c: Likewise.
	* sysdeps/powerpc/powerpc64/multiarch/memmove.c: Likewise.
	* sysdeps/powerpc/powerpc64/multiarch/mempcpy.c: Likewise.
	* sysdeps/powerpc/powerpc64/multiarch/memrchr.c: Likewise.
	* sysdeps/powerpc/powerpc64/multiarch/memset-ppc64.S: Likewise.
	* sysdeps/powerpc/powerpc64/multiarch/memset.c: Likewise.
	* sysdeps/powerpc/powerpc64/multiarch/rawmemchr.c: Likewise.
	* sysdeps/powerpc/powerpc64/multiarch/stpcpy-ppc64.S: Likewise.
	* sysdeps/powerpc/powerpc64/multiarch/stpcpy.c: Likewise.
	* sysdeps/powerpc/powerpc64/multiarch/stpncpy.c: Likewise.
	* sysdeps/powerpc/powerpc64/multiarch/strcasecmp.c: Likewise.
	* sysdeps/powerpc/powerpc64/multiarch/strcasecmp_l.c: Likewise.
	* sysdeps/powerpc/powerpc64/multiarch/strcat.c: Likewise.
	* sysdeps/powerpc/powerpc64/multiarch/strchr.c: Likewise.
	* sysdeps/powerpc/powerpc64/multiarch/strchrnul.c: Likewise.
	* sysdeps/powerpc/powerpc64/multiarch/strcmp-ppc64.S: Likewise.
	* sysdeps/powerpc/powerpc64/multiarch/strcmp.c: Likewise.
	* sysdeps/powerpc/powerpc64/multiarch/strcpy-ppc64.S: Likewise.
	* sysdeps/powerpc/powerpc64/multiarch/strcpy.c: Likewise.
	* sysdeps/powerpc/powerpc64/multiarch/strcspn.c: Likewise.
	* sysdeps/powerpc/powerpc64/multiarch/strlen-ppc64.S: Likewise.
	* sysdeps/powerpc/powerpc64/multiarch/strlen.c: Likewise.
	* sysdeps/powerpc/powerpc64/multiarch/strncase.c: Likewise.
	* sysdeps/powerpc/powerpc64/multiarch/strncase_l.c: Likewise.
	* sysdeps/powerpc/powerpc64/multiarch/strncat.c: Likewise.
	* sysdeps/powerpc/powerpc64/multiarch/strncmp-ppc64.S: Likewise.
	* sysdeps/powerpc/powerpc64/multiarch/strncmp.c: Likewise.
	* sysdeps/powerpc/powerpc64/multiarch/strncpy-ppc64.c: Likewise.
	* sysdeps/powerpc/powerpc64/multiarch/strncpy.c: Likewise.
	* sysdeps/powerpc/powerpc64/multiarch/strnlen.c: Likewise.
	* sysdeps/powerpc/powerpc64/multiarch/strpbrk.c: Likewise.
	* sysdeps/powerpc/powerpc64/multiarch/strrchr-ppc64.c: Likewise.
	* sysdeps/powerpc/powerpc64/multiarch/strrchr.c: Likewise.
	* sysdeps/powerpc/powerpc64/multiarch/strspn-ppc64.c: Likewise.
	* sysdeps/powerpc/powerpc64/multiarch/strspn.c: Likewise.
	* sysdeps/powerpc/powerpc64/multiarch/wcschr.c: Likewise.
	* sysdeps/powerpc/powerpc64/multiarch/wcscpy.c: Likewise.
	* sysdeps/powerpc/powerpc64/multiarch/wcsrchr.c: Likewise.
	* sysdeps/powerpc/powerpc64/multiarch/wordcopy.c: Likewise.
	* sysdeps/powerpc/powerpc64/setjmp.S: Likewise.
	* sysdeps/s390/s390-32/multiarch/ifunc-resolve.c: Likewise.
	* sysdeps/s390/s390-32/multiarch/memcmp.S: Likewise.
	* sysdeps/s390/s390-32/multiarch/memcpy.S: Likewise.
	* sysdeps/s390/s390-32/multiarch/memset.S: Likewise.
	* sysdeps/s390/s390-64/multiarch/ifunc-resolve.c: Likewise.
	* sysdeps/s390/s390-64/multiarch/memcmp.S: Likewise.
	* sysdeps/s390/s390-64/multiarch/memcpy.S: Likewise.
	* sysdeps/s390/s390-64/multiarch/memset.S: Likewise.
	* sysdeps/sparc/sparc64/multiarch/memcpy-niagara1.S: Likewise.
	* sysdeps/sparc/sparc64/multiarch/memcpy-niagara2.S: Likewise.
	* sysdeps/sparc/sparc64/multiarch/memcpy-niagara4.S: Likewise.
	* sysdeps/sparc/sparc64/multiarch/memcpy-ultra3.S: Likewise.
	* sysdeps/sparc/sparc64/multiarch/memcpy.S: Likewise.
	* sysdeps/sparc/sparc64/multiarch/memset-niagara1.S: Likewise.
	* sysdeps/sparc/sparc64/multiarch/memset-niagara4.S: Likewise.
	* sysdeps/sparc/sparc64/multiarch/memset.S: Likewise.
	* sysdeps/unix/alpha/sysdep.S: Likewise.
	* sysdeps/unix/alpha/sysdep.h: Likewise.
	* sysdeps/unix/make-syscalls.sh: Likewise.
	* sysdeps/unix/sysv/linux/aarch64/sysdep-cancel.h: Likewise.
	* sysdeps/unix/sysv/linux/aarch64/sysdep.h: Likewise.
	* sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h: Likewise.
	* sysdeps/unix/sysv/linux/alpha/vfork.S: Likewise.
	* sysdeps/unix/sysv/linux/arm/sysdep-cancel.h: Likewise.
	* sysdeps/unix/sysv/linux/arm/sysdep.h: Likewise.
	* sysdeps/unix/sysv/linux/getpid.c: Likewise.
	* sysdeps/unix/sysv/linux/hppa/nptl/lowlevellock.h: Likewise.
	* sysdeps/unix/sysv/linux/hppa/nptl/sysdep-cancel.h: Likewise.
	* sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Likewise.
	* sysdeps/unix/sysv/linux/i386/lowlevellock.h: Likewise.
	* sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Likewise.
	* sysdeps/unix/sysv/linux/i386/sysdep.h: Likewise.
	* sysdeps/unix/sysv/linux/ia64/lowlevellock.h: Likewise.
	* sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h: Likewise.
	* sysdeps/unix/sysv/linux/ia64/sysdep.S: Likewise.
	* sysdeps/unix/sysv/linux/ia64/sysdep.h: Likewise.
	* sysdeps/unix/sysv/linux/lowlevellock-futex.h: Likewise.
	* sysdeps/unix/sysv/linux/m68k/bits/m68k-vdso.h: Likewise.
	* sysdeps/unix/sysv/linux/m68k/sysdep-cancel.h: Likewise.
	* sysdeps/unix/sysv/linux/m68k/sysdep.h: Likewise.
	* sysdeps/unix/sysv/linux/microblaze/lowlevellock.h: Likewise.
	* sysdeps/unix/sysv/linux/microblaze/sysdep-cancel.h: Likewise.
	* sysdeps/unix/sysv/linux/mips/mips64/sysdep-cancel.h: Likewise.
	* sysdeps/unix/sysv/linux/mips/sysdep-cancel.h: Likewise.
	* sysdeps/unix/sysv/linux/not-cancel.h: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h: Likewise.
	* sysdeps/unix/sysv/linux/s390/longjmp_chk.c: Likewise.
	* sysdeps/unix/sysv/linux/s390/lowlevellock.h: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/sysdep.S: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/sysdep.h: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/vfork.S: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-64/sysdep.S: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-64/vfork.S: Likewise.
	* sysdeps/unix/sysv/linux/sh/lowlevellock.S: Likewise.
	* sysdeps/unix/sysv/linux/sh/lowlevellock.h: Likewise.
	* sysdeps/unix/sysv/linux/sh/sysdep-cancel.h: Likewise.
	* sysdeps/unix/sysv/linux/sh/sysdep.h: Likewise.
	* sysdeps/unix/sysv/linux/sh/vfork.S: Likewise.
	* sysdeps/unix/sysv/linux/sparc/lowlevellock.h: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/brk.S: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h: Likewise.
	* sysdeps/unix/sysv/linux/tile/lowlevellock.h: Likewise.
	* sysdeps/unix/sysv/linux/tile/sysdep-cancel.h: Likewise.
	* sysdeps/unix/sysv/linux/tile/sysdep.h: Likewise.
	* sysdeps/unix/sysv/linux/tile/waitpid.S: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/sysdep.h: Likewise.
	* sysdeps/wordsize-32/symbol-hacks.h: Likewise.
	* sysdeps/x86_64/memcpy.S: Likewise.
	* sysdeps/x86_64/memmove.c: Likewise.
	* sysdeps/x86_64/memset.S: Likewise.
	* sysdeps/x86_64/multiarch/init-arch.h: Likewise.
	* sysdeps/x86_64/multiarch/memcmp-sse4.S: Likewise.
	* sysdeps/x86_64/multiarch/memcmp-ssse3.S: Likewise.
	* sysdeps/x86_64/multiarch/memcmp.S: Likewise.
	* sysdeps/x86_64/multiarch/memcpy-avx-unaligned.S: Likewise.
	* sysdeps/x86_64/multiarch/memcpy-ssse3-back.S: Likewise.
	* sysdeps/x86_64/multiarch/memcpy-ssse3.S: Likewise.
	* sysdeps/x86_64/multiarch/memcpy.S: Likewise.
	* sysdeps/x86_64/multiarch/memcpy_chk.S: Likewise.
	* sysdeps/x86_64/multiarch/memmove.c: Likewise.
	* sysdeps/x86_64/multiarch/mempcpy.S: Likewise.
	* sysdeps/x86_64/multiarch/mempcpy_chk.S: Likewise.
	* sysdeps/x86_64/multiarch/memset-avx2.S: Likewise.
	* sysdeps/x86_64/multiarch/memset.S: Likewise.
	* sysdeps/x86_64/multiarch/memset_chk.S: Likewise.
	* sysdeps/x86_64/multiarch/strcat-sse2-unaligned.S: Likewise.
	* sysdeps/x86_64/multiarch/strcat-ssse3.S: Likewise.
	* sysdeps/x86_64/multiarch/strcat.S: Likewise.
	* sysdeps/x86_64/multiarch/strchr-sse2-no-bsf.S: Likewise.
	* sysdeps/x86_64/multiarch/strchr.S: Likewise.
	* sysdeps/x86_64/multiarch/strcmp-ssse3.S: Likewise.
	* sysdeps/x86_64/multiarch/strcmp.S: Likewise.
	* sysdeps/x86_64/multiarch/strcpy-sse2-unaligned.S: Likewise.
	* sysdeps/x86_64/multiarch/strcpy-ssse3.S: Likewise.
	* sysdeps/x86_64/multiarch/strcpy.S: Likewise.
	* sysdeps/x86_64/multiarch/strcspn.S: Likewise.
	* sysdeps/x86_64/multiarch/strspn.S: Likewise.
	* sysdeps/x86_64/multiarch/wcscpy-c.c: Likewise.
	* sysdeps/x86_64/multiarch/wcscpy-ssse3.S: Likewise.
	* sysdeps/x86_64/multiarch/wcscpy.S: Likewise.
	* sysdeps/x86_64/multiarch/wmemcmp-c.c: Likewise.
	* sysdeps/x86_64/multiarch/wmemcmp.S: Likewise.
	* sysdeps/x86_64/strcmp.S: Likewise.
2014-11-24 15:03:45 +05:30
Siddhesh Poyarekar
a38484851a Remove IS_IN_rtld
Replace with IS_IN (rtld).  Generated code is unchanged on
x86_64.

        * elf/Makefile (CPPFLAGS-.os): Remove IS_IN_rtld.
        * elf/dl-open.c: Use IS_IN (rtld) instead if IS_IN_rtld.
        * elf/rtld-Rules: Likewise.
        * elf/setup-vdso.h: Likewise.
        * include/assert.h: Likewise.
        * include/bits/stdlib-float.h: Likewise.
        * include/errno.h: Likewise.
        * include/sys/stat.h: Likewise.
        * include/unistd.h: Likewise.
        * sysdeps/aarch64/setjmp.S: Likewise.
        * sysdeps/alpha/setjmp.S: Likewise.
        * sysdeps/arm/__longjmp.S: Likewise.
        * sysdeps/arm/aeabi_unwind_cpp_pr1.c: Likewise.
        * sysdeps/arm/setjmp.S: Likewise.
        * sysdeps/arm/sysdep.h: Likewise.
        * sysdeps/generic/_itoa.h: Likewise.
        * sysdeps/generic/dl-sysdep.h: Likewise.
        * sysdeps/generic/ldsodefs.h: Likewise.
        * sysdeps/i386/dl-tls.h: Likewise.
        * sysdeps/i386/setjmp.S: Likewise.
        * sysdeps/m68k/setjmp.c: Likewise.
        * sysdeps/mach/hurd/dl-execstack.c: Likewise.
        * sysdeps/mach/hurd/opendir.c: Likewise.
        * sysdeps/posix/getcwd.c: Likewise.
        * sysdeps/posix/opendir.c: Likewise.
        * sysdeps/posix/profil.c: Likewise.
        * sysdeps/powerpc/dl-procinfo.h: Likewise.
        * sysdeps/powerpc/powerpc32/fpu/__longjmp-common.S: Likewise.
        * sysdeps/powerpc/powerpc32/fpu/setjmp-common.S: Likewise.
        * sysdeps/powerpc/powerpc32/power4/multiarch/init-arch.h: Likewise.
        * sysdeps/powerpc/powerpc32/setjmp-common.S: Likewise.
        * sysdeps/powerpc/powerpc64/__longjmp-common.S: Likewise.
        * sysdeps/powerpc/powerpc64/setjmp-common.S: Likewise.
        * sysdeps/s390/dl-tls.h: Likewise.
        * sysdeps/s390/s390-32/setjmp.S: Likewise.
        * sysdeps/s390/s390-64/setjmp.S: Likewise.
        * sysdeps/sh/sh3/setjmp.S: Likewise.
        * sysdeps/sh/sh4/setjmp.S: Likewise.
        * sysdeps/unix/alpha/sysdep.h: Likewise.
        * sysdeps/unix/arm/sysdep.S: Likewise.
        * sysdeps/unix/i386/sysdep.S: Likewise.
        * sysdeps/unix/sysv/linux/aarch64/sysdep.h: Likewise.
        * sysdeps/unix/sysv/linux/getcwd.c: Likewise.
        * sysdeps/unix/sysv/linux/hppa/nptl/lowlevellock.h: Likewise.
        * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Likewise.
        * sysdeps/unix/sysv/linux/i386/sysdep.h: Likewise.
        * sysdeps/unix/sysv/linux/ia64/lowlevellock.h: Likewise.
        * sysdeps/unix/sysv/linux/ia64/setjmp.S: Likewise.
        * sysdeps/unix/sysv/linux/ia64/sysdep.h: Likewise.
        * sysdeps/unix/sysv/linux/lowlevellock-futex.h: Likewise.
        * sysdeps/unix/sysv/linux/m68k/bits/m68k-vdso.h: Likewise.
        * sysdeps/unix/sysv/linux/m68k/m68k-helpers.S: Likewise.
        * sysdeps/unix/sysv/linux/microblaze/lowlevellock.h: Likewise.
        * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Likewise.
        * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep.h: Likewise.
        * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep.h: Likewise.
        * sysdeps/unix/sysv/linux/s390/lowlevellock.h: Likewise.
        * sysdeps/unix/sysv/linux/s390/s390-32/sysdep.h: Likewise.
        * sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h: Likewise.
        * sysdeps/unix/sysv/linux/sh/lowlevellock.h: Likewise.
        * sysdeps/unix/sysv/linux/sh/sysdep.h: Likewise.
        * sysdeps/unix/sysv/linux/sparc/lowlevellock.h: Likewise.
        * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h: Likewise.
        * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h: Likewise.
        * sysdeps/unix/sysv/linux/tile/lowlevellock.h: Likewise.
        * sysdeps/unix/sysv/linux/tile/sysdep.h: Likewise.
        * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
        * sysdeps/unix/sysv/linux/x86_64/sysdep.h: Likewise.
        * sysdeps/unix/x86_64/sysdep.S: Likewise.
        * sysdeps/x86_64/setjmp.S: Likewise.
2014-11-24 11:41:48 +05:30
Siddhesh Poyarekar
ce9f10f7f0 Remove IS_IN_libpthread
Replace with IS_IN (libpthread).  Generated code unchanged on
x86_64.

	* nptl/lowlevellock.c: Use IS_IN instead of IS_IN_libpthread.
	* nptl/pthreadP.h: Likewise.
	* nptl_db/structs.def: Likewise.
	* sysdeps/arm/sysdep.h: Likewise.
	* sysdeps/nptl/bits/libc-lock.h: Likewise.
	* sysdeps/nptl/bits/libc-lockP.h: Likewise.
	* sysdeps/sparc/sparc32/lowlevellock.c: Likewise.
	* sysdeps/unix/alpha/sysdep.h: Likewise.
	* sysdeps/unix/sysv/linux/aarch64/sysdep-cancel.h: Likewise.
	* sysdeps/unix/sysv/linux/aarch64/sysdep.h: Likewise.
	* sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h: Likewise.
	* sysdeps/unix/sysv/linux/arm/sysdep-cancel.h: Likewise.
	* sysdeps/unix/sysv/linux/hppa/nptl/sysdep-cancel.h: Likewise.
	* sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Likewise.
	* sysdeps/unix/sysv/linux/i386/sysdep.h: Likewise.
	* sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h: Likewise.
	* sysdeps/unix/sysv/linux/ia64/sysdep.h: Likewise.
	* sysdeps/unix/sysv/linux/m68k/sysdep-cancel.h: Likewise.
	* sysdeps/unix/sysv/linux/microblaze/sysdep-cancel.h: Likewise.
	* sysdeps/unix/sysv/linux/mips/mips64/sysdep-cancel.h: Likewise.
	* sysdeps/unix/sysv/linux/mips/sysdep-cancel.h: Likewise.
	* sysdeps/unix/sysv/linux/not-cancel.h: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h: Likewise.
	* sysdeps/unix/sysv/linux/sh/sysdep-cancel.h: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h: Likewise.
	* sysdeps/unix/sysv/linux/tile/sysdep-cancel.h: Likewise.
	* sysdeps/unix/sysv/linux/tile/sysdep.h: Likewise.
	* sysdeps/unix/sysv/linux/tile/waitpid.S: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/cancellation.S: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h: Likewise.
2014-11-24 11:41:46 +05:30
Siddhesh Poyarekar
016afc75cd Remove IS_IN_librt
Replace with IS_IN (librt).  Generated code unchanged on x86_64

        * include/mqueue.h: Use IS_IN instead of IS_IN_librt.
        * nptl/pthreadP.h: Likewise.
        * sysdeps/unix/sysv/linux/aarch64/sysdep-cancel.h: Likewise.
        * sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h: Likewise.
        * sysdeps/unix/sysv/linux/arm/sysdep-cancel.h: Likewise.
        * sysdeps/unix/sysv/linux/hppa/nptl/sysdep-cancel.h: Likewise.
        * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Likewise.
        * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h: Likewise.
        * sysdeps/unix/sysv/linux/ia64/sysdep.h: Likewise.
        * sysdeps/unix/sysv/linux/m68k/sysdep-cancel.h: Likewise.
        * sysdeps/unix/sysv/linux/microblaze/sysdep-cancel.h: Likewise.
        * sysdeps/unix/sysv/linux/mips/mips64/sysdep-cancel.h: Likewise.
        * sysdeps/unix/sysv/linux/mips/sysdep-cancel.h: Likewise.
        * sysdeps/unix/sysv/linux/not-cancel.h: Likewise.
        * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h: Likewise.
        * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h: Likewise.
        * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h: Likewise.
        * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h: Likewise.
        * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h: Likewise.
        * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h: Likewise.
        * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h: Likewise.
        * sysdeps/unix/sysv/linux/tile/sysdep-cancel.h: Likewise.
        * sysdeps/unix/sysv/linux/tile/waitpid.S: Likewise.
        * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h: Likewise.
2014-11-24 11:41:45 +05:30
Carlos O'Donell
da53d6dbc2 Run check-localpltk/textrel/execstack over ld.so.
For maximum paranoia we run ld.so through the normal set
of tests for all of the shared libraries. This includes
running ld.so through check-localplt, check-textrel, and
check-execstack. While none of these should trigger any
failures given the way ld.so is built, it might possibly
fail if a developer does something wrong. This paranoia
was triggered by a discussion over the use of __strcpy
vs. strcpy [1] and if the symbol could leak and use the
libc.so version.

The check-localplt test fails right away because localplt.data
needs updating for all arches. By default we add 6 new symbols:
__tls_get_addr, __libc_memalign, malloc, calloc, realloc and
free. Other machines like i386, power, and s390 require some
different symbol sets e.g. ___tls_get_addr vs. __tls_get_addr
for i386.

Verified for i386
Verified for x86_64
Verified for ppc32
Verified for ppc64
Verified for ppc64le
Verified for arm
Verified for aarch64
Verified for s390
Verified for s390x
Guessed for alpha
Guessed for ia64
Guessed for m68k
Guessed for microblaze
Guessed for sparc32
Guessed for sparc64
Defaults for sh
Defaults for mips
Defaults for hppa
Defaults for tile

Machine manintainers notified to double check the data
used in localplt.data.

[1] https://sourceware.org/ml/libc-alpha/2014-10/msg00548.html
2014-11-06 15:48:44 -05:00
Joseph Myers
a4b3624d20 Move setfsgid/setfsuid definitions to syscalls.list (bug 14138).
Continuing the move of syscall definitions to syscalls.list, where the
removal of support for old kernel versions has made this possible,
this patch moves various definitions of setfsgid and setfsuid.

Tested for x86.

	[BZ #14138]
	* sysdeps/unix/sysv/linux/arm/setfsgid.c: Remove file.
	* sysdeps/unix/sysv/linux/arm/setfsuid.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/setfsgid.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/setfsuid.c: Likewise.
	* sysdeps/unix/sysv/linux/m68k/setfsgid.c: Likewise.
	* sysdeps/unix/sysv/linux/m68k/setfsuid.c: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/setfsgid.c: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/setfsuid.c: Likewise.
	* sysdeps/unix/sysv/linux/sh/setfsgid.c: Likewise.
	* sysdeps/unix/sysv/linux/sh/setfsuid.c: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/setfsgid.c: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/setfsuid.c: Likewise.
	* sysdeps/unix/sysv/linux/arm/syscalls.list (setfsgid): Add
	syscall.
	(setfsuid): Likewise.
	* sysdeps/unix/sysv/linux/i386/syscalls.list (setfsgid): Likewise.
	(setfsuid): Likewise.
	* sysdeps/unix/sysv/linux/m68k/syscalls.list (setfsgid): Likewise.
	(setfsuid): Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/syscalls.list (setfsgid):
	Likewise.
	(setfsuid): Likewise.
	* sysdeps/unix/sysv/linux/sh/syscalls.list (setfsgid): Likewise.
	(setfsuid): Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/syscalls.list (setfsgid):
	Likewise.
	(setfsuid): Likewise.
2014-10-27 12:24:42 +00:00
Joseph Myers
c8bc40386a Move get*id and getgroups definitions to syscalls.list (bug 14138).
Continuing the move of syscall definitions to syscalls.list, where the
removal of support for old kernel versions has made this possible,
this patch moves various definitions of get*id functions and
getgroups.  The previous C definitions were because of the transition
to 32-bit uids and gids.

Tested for x86.

	[BZ #14138]
	* sysdeps/unix/sysv/linux/arm/getegid.c: Remove file.
	* sysdeps/unix/sysv/linux/arm/geteuid.c: Likewise.
	* sysdeps/unix/sysv/linux/arm/getgid.c: Likewise.
	* sysdeps/unix/sysv/linux/arm/getgroups.c: Likewise.
	* sysdeps/unix/sysv/linux/arm/getresgid.c: Likewise.
	* sysdeps/unix/sysv/linux/arm/getresuid.c: Likewise.
	* sysdeps/unix/sysv/linux/arm/getuid.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/getegid.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/geteuid.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/getgid.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/getgroups.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/getresgid.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/getresuid.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/getuid.c: Likewise.
	* sysdeps/unix/sysv/linux/m68k/getegid.c: Likewise.
	* sysdeps/unix/sysv/linux/m68k/geteuid.c: Likewise.
	* sysdeps/unix/sysv/linux/m68k/getgid.c: Likewise.
	* sysdeps/unix/sysv/linux/m68k/getgroups.c: Likewise.
	* sysdeps/unix/sysv/linux/m68k/getresgid.c: Likewise.
	* sysdeps/unix/sysv/linux/m68k/getresuid.c: Likewise.
	* sysdeps/unix/sysv/linux/m68k/getuid.c: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/getegid.c: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/geteuid.c: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/getgid.c: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/getgroups.c: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/getresgid.c: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/getresuid.c: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/getuid.c: Likewise.
	* sysdeps/unix/sysv/linux/sh/getegid.c: Likewise.
	* sysdeps/unix/sysv/linux/sh/geteuid.c: Likewise.
	* sysdeps/unix/sysv/linux/sh/getgid.c: Likewise.
	* sysdeps/unix/sysv/linux/sh/getgroups.c: Likewise.
	* sysdeps/unix/sysv/linux/sh/getresgid.c: Likewise.
	* sysdeps/unix/sysv/linux/sh/getresuid.c: Likewise.
	* sysdeps/unix/sysv/linux/sh/getuid.c: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/getegid.c: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/geteuid.c: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/getgid.c: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/getgroups.c: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/getuid.c: Likewise.
	* sysdeps/unix/sysv/linux/arm/syscalls.list (getegid): Add
	syscall.
	(geteuid): Likewise.
	(getgid): Likewise.
	(getuid): Likewise.
	(getresgid): Likewise.
	(getresuid): Likewise.
	(getgroups): Likewise.
	* sysdeps/unix/sysv/linux/i386/syscalls.list (getegid): Likewise.
	(geteuid): Likewise.
	(getgid): Likewise.
	(getuid): Likewise.
	(getresgid): Likewise.
	(getresuid): Likewise.
	(getgroups): Likewise.
	* sysdeps/unix/sysv/linux/m68k/syscalls.list (getegid): Likewise.
	(geteuid): Likewise.
	(getgid): Likewise.
	(getuid): Likewise.
	(getresgid): Likewise.
	(getresuid): Likewise.
	(getgroups): Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/syscalls.list (getegid):
	Likewise.
	(geteuid): Likewise.
	(getgid): Likewise.
	(getuid): Likewise.
	(getresgid): Likewise.
	(getresuid): Likewise.
	(getgroups): Likewise.
	* sysdeps/unix/sysv/linux/sh/syscalls.list (getegid): Likewise.
	(geteuid): Likewise.
	(getgid): Likewise.
	(getuid): Likewise.
	(getresgid): Likewise.
	(getresuid): Likewise.
	(getgroups): Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/syscalls.list (getegid):
	Likewise.
	(geteuid): Likewise.
	(getgid): Likewise.
	(getuid): Likewise.
	(getgroups): Likewise.
2014-10-24 13:01:17 +00:00
Joseph Myers
48eb7a94e2 Move some chown / lchown / fchown definitions to syscalls.list (bug 14138).
Continuing the move of syscall definitions to syscalls.list, where the
removal of support for old kernel versions has made this possible,
this patch moves various definitions of chown, lchown and fchown.

In most cases the need for special syscalls.list entries (rather than
existing generic ones) is because these architectures use chown32,
lchown32 and fchown32 as syscall names.  Some architectures also have
symbol versioning compatibility for older versions of chown having
been equivalent to lchown.

The aliases specified for s390-32 had the effect of exporting
__chown@@GLIBC_2.1 (but not __chown@GLIBC_2.0) despite it not being
listed in Versions files.  (I'm not sure why versioned_symbol but not
compat_symbol were effective like that to create such __chown exports
in the absence of Versions entries.)  The natural way to preserve that
versioned export of __chown seems to be to add it in a Versions file,
so I did so.  (Maybe actually it should be a compat symbol,
__chown@GLIBC_2.1, unless there's a good reason for that export, but
this patch doesn't change anything there.)

Tested for x86.

	[BZ #14138]
	* sysdeps/unix/sysv/linux/i386/chown.c: Remove file.
	* sysdeps/unix/sysv/linux/i386/fchown.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/lchown.c: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/chown.c: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/fchown.c: Remove file.
	* sysdeps/unix/sysv/linux/s390/s390-32/lchown.c: Likewise.
	* sysdeps/unix/sysv/linux/sh/chown.c: Likewise.
	* sysdeps/unix/sysv/linux/sh/fchown.c: Likewise.
	* sysdeps/unix/sysv/linux/sh/lchown.c: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/chown.c: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/fchown.c: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/lchown.c: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/Versions (GLIBC_2.1): Add
	__chown.
	* sysdeps/unix/sysv/linux/i386/syscalls.list (chown): Add syscall.
	(lchown): Likewise.
	(fchown): Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/syscalls.list (chown):
	Likewise.
	(lchown): Likewise.
	(fchown): Likewise.
	* sysdeps/unix/sysv/linux/sh/syscalls.list (chown): Likewise.
	(lchown): Likewise.
	(fchown): Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/syscalls.list (chown):
	Likewise.
	(lchown): Likewise.
	(fchown): Likewise.
2014-10-24 12:59:23 +00:00
Joseph Myers
ba90e05052 Remove configuration name patterns from shlib-versions.
This patch removes the first column (patterns matching configuration
names) from shlib-versions, leaving shlib-versions entry selection
based purely on sysdeps directories.

An implication of this removal is that the default for any non-Linux
ports using NPTL will be the same SONAMEs for NPTL libraries as for
Linux (as those defaults, previously limited to .*-.*-linux.*, are
left in nptl/shlib-versions and nptl_db/shlib-versions).

Special host_os handling in configure.ac that was purely for
shlib-versions is removed.  (The host_os setting is still used for
libc-abis - see
<https://sourceware.org/ml/libc-alpha/2014-01/msg00375.html> regarding
that - but no entries there are affected by this change.)

Tested on x86_64 and x86 that the installed shared libraries are
unchanged by this patch.

	* scripts/soversions.awk: Do not handle configuration names.
	* Makeconfig ($(common-objpfx)soversions.i): Do not pass cpu,
	vendor and os variables to soversions.awk.
	* configure.ac: Do not modify gnu-* host_os.
	* configure: Regenerated
	* shlib-versions: Remove first column with configuration names.
	* nptl/shlib-versions: Likewise.
	* nptl_db/shlib-versions: Likewise.
	* sysdeps/hppa/shlib-versions: Likewise.
	* sysdeps/m68k/shlib-versions: Likewise.
	* sysdeps/mach/hurd/shlib-versions: Likewise.
	* sysdeps/unix/sysv/linux/aarch64/shlib-versions: Likewise.
	* sysdeps/unix/sysv/linux/alpha/shlib-versions: Likewise.
	* sysdeps/unix/sysv/linux/arm/shlib-versions: Likewise.
	* sysdeps/unix/sysv/linux/hppa/shlib-versions: Likewise.
	* sysdeps/unix/sysv/linux/ia64/shlib-versions: Likewise.
	* sysdeps/unix/sysv/linux/m68k/coldfire/shlib-versions: Likewise.
	* sysdeps/unix/sysv/linux/microblaze/shlib-versions: Likewise.
	* sysdeps/unix/sysv/linux/mips/shlib-versions: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/shlib-versions:
	Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-64/shlib-versions: Likewise.
	* sysdeps/unix/sysv/linux/sh/shlib-versions: Likewise.
	* sysdeps/unix/sysv/linux/shlib-versions: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/shlib-versions: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/shlib-versions: Likewise.
	* sysdeps/unix/sysv/linux/tile/shlib-versions: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/64/shlib-versions: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/x32/shlib-versions: Likewise.

libidn/ChangeLog:
	* shlib-versions: Remove first column with configuration names.
2014-09-12 12:28:47 +00:00
Joseph Myers
dc932a24d9 Move architecture-specific shlib-versions entries to sysdeps files.
This patch eliminates another way in which ex-ports and non-ex-ports
architectures differ, by moving architecture-specific entries from the
top-level shlib-versions file and that in nptl/ to appropriate sysdeps
directories.  As with my previous patch
<https://sourceware.org/ml/libc-alpha/2014-06/msg00949.html>, I do not
change the regular expressions used; even where the present
expressions seem more general, I believe they are in fact specific to
the chosen sysdeps directory, because any port that matches the
expression but not the sysdeps directory does not currently exist, and
so would use different symbol versions if added in future (and an
intended goal of these changes is to eliminate the first column in
shlib-versions completely rather than having two different mechanisms
in use for system-specific configuration).

Tested on x86_64 that this does not change the installed shared
libraries.  (x86_64 of course does not provide much test coverage for
this patch - what should be architecture-specific contents in
shlib-versions for x86_64 is currently abi-*-ld-soname Makefile
settings, until gnu/lib-names.h is generated more like gnu/stubs.h so
those can move back to shlib-versions.)

	* nptl/shlib-versions: Remove architecture-specific entries.
	Moved to files in sysdeps.
	* shlib-versions: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/shlib-versions: New
	file.
	* sysdeps/unix/sysv/linux/s390/s390-64/shlib-versions: Likewise.
	* sysdeps/unix/sysv/linux/sh/shlib-versions: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/shlib-versions: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/shlib-versions: Likewise.
2014-09-12 12:22:27 +00:00
Siddhesh Poyarekar
eb72478a28 Remove unnecessary uses of NOT_IN_libc
If a IS_IN_* macro is defined, then NOT_IN_libc is always defined,
except obviously for IS_IN_libc.  There's no need to check for both.
Verified on x86_64 and i686 that the source is unchanged.

       * include/libc-symbols.h: Remove unnecessary check for
       NOT_IN_libc.
       * nptl/pthreadP.h: Likewise.
       * sysdeps/aarch64/setjmp.S: Likewise.
       * sysdeps/alpha/setjmp.S: Likewise.
       * sysdeps/arm/sysdep.h: Likewise.
       * sysdeps/i386/setjmp.S: Likewise.
       * sysdeps/m68k/setjmp.c: Likewise.
       * sysdeps/posix/getcwd.c: Likewise.
       * sysdeps/powerpc/powerpc32/setjmp-common.S: Likewise.
       * sysdeps/powerpc/powerpc64/setjmp-common.S: Likewise.
       * sysdeps/s390/s390-32/setjmp.S: Likewise.
       * sysdeps/s390/s390-64/setjmp.S: Likewise.
       * sysdeps/sh/sh3/setjmp.S: Likewise.
       * sysdeps/sh/sh4/setjmp.S: Likewise.
       * sysdeps/unix/alpha/sysdep.h: Likewise.
       * sysdeps/unix/sysv/linux/aarch64/sysdep.h: Likewise.
       * sysdeps/unix/sysv/linux/i386/sysdep.h: Likewise.
       * sysdeps/unix/sysv/linux/ia64/setjmp.S: Likewise.
       * 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/s390/s390-32/sysdep.h: Likewise.
       * sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h: Likewise.
       * sysdeps/unix/sysv/linux/sh/sysdep.h: Likewise.
       * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h: Likewise.
       * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h: Likewise.
       * sysdeps/unix/sysv/linux/tile/sysdep.h: Likewise.
       * sysdeps/unix/sysv/linux/x86_64/sysdep.h: Likewise.
       * sysdeps/x86_64/setjmp.S: Likewise.
2014-08-21 10:26:46 +05:30
Roland McGrath
08192659bb Get rid of nptl/sysdeps/ entirely! 2014-07-07 09:28:38 -07:00
Roland McGrath
06d50baa34 SPARC: Consolidate nptl/ subdirectories under linux/... 2014-06-25 10:03:52 -07:00
Roland McGrath
4b88139b6f Move remaining SPARC code out of nptl/. 2014-06-20 17:13:47 -07:00
Joseph Myers
809fdf0d23 Remove __ASSUME_ATFCTS conditionals in sysdeps/unix/sysv/linux/.
This patch cleans up for __ASSUME_ATFCTS now always being true for the
supported Linux kernel versions by removing conditional code in
sysdeps/unix/sysv/linux.  Several fchownat.c files that were only
present because of differences in the fallback syscalls used
(depending on the architecture-specific names of chown-related
syscalls for 32-bit uids) are removed.  Files that looks like they
could be replaced by syscalls.list entries have the standard "Consider
moving to syscalls.list." comment (see bug 14138) added.  Conditionals
on the relevant __NR_* syscall numbers being defined are also removed,
since my analysis indicated that the relevant syscalls are always
defined for all relevant kernel versions using any affected file.
Much of the removed fallback code had unbounded stack allocations, so
this reduces the number of cases to consider for anyone reviewing uses
of alloca and VLAs in glibc.

There remain tests of __ASSUME_ATFCTS in io/openat.c (to determine
whether to define __have_atfcts) and sysdeps/posix/getcwd.c (which
also uses __have_atfcts); thus, the definition of __ASSUME_ATFCTS
remains in kernel-features.h.  The logical condition relevant there is
whether openat64_not_cancel_3 is known to work.  Hurd doesn't use this
version of getcwd at all, so the conditionals in getcwd.c are always
true in glibc.  However, this code is also used in gnulib.  So the
best way to deal with the conditionals there may be for gnulib people
to deal with merging all relevant changes in both directions between
the glibc and gnulib versions of this file, at the end of which the
openat conditionals should be in whatever form is best for gnulib, and
hardcoded in the _LIBC case to having openat supported.

Tested by comparing before-and-after disassembly of installed
(stripped) shared libraries, on x86_64 and x86.  On x86 the patch made
no change to the disassembly; on x86_64, the only changes were in
readlinkat, where formerly the return value from the readlinkat
syscall was stored in an int variable before being converted to
ssize_t for the return, and now the return value is returned directly
without truncation to int.  I think it's clearly correct not to
truncate the return value (although I also think the truncation would
not have been a user-visible bug because the kernel would never have
returned a value it could have affected).

	* include/fcntl.h (__atfct_seterrno): Remove prototype.
	(__atfct_seterrno_2): Likewise.
	* sysdeps/unix/sysv/linux/alpha/dl-fxstatat64.c: Do not include
	<kernel-features.h>.
	(__ASSUME_ATFCTS): Do not undefine and redefine.
	* sysdeps/unix/sysv/linux/alpha/fxstatat.c [__ASSUME_ATFCTS]
	(__have_atfcts): Remove conditional definition.
	(__fxstatat([__NR_fstatat64]: Make code unconditional.
	(__fxstatat) [!__ASSUME_ATFCTS]: Remove conditional code and code
	unreachable if [__ASSUME_ATFCTS].
	* sysdeps/unix/sysv/linux/dl-fxstatat64.c (__ASSUME_ATFCTS): Do
	not undefine and redefine.
	* sysdeps/unix/sysv/linux/faccessat.c: Do not include
	<kernel-features.h>.
	(faccessat) [__NR_faccessat]: Make code unconditional.
	(faccessat) [!__ASSUME_ATFCTS]: Remove conditional code.
	* sysdeps/unix/sysv/linux/fchmodat.c: Do not include
	<kernel-features.h>.
	(fchmodat) [__NR_fchmodat]: Make code unconditional.
	(fchmodat) [!__ASSUME_ATFCTS]: Remove conditional code.
	* sysdeps/unix/sysv/linux/fchownat.c: Do not include
	<kernel-features.h>.
	(fchownat) [__NR_fchownat]: Make code unconditional.
	(fchownat) [!__ASSUME_ATFCTS]: Remove conditional code.
	* sysdeps/unix/sysv/linux/futimesat.c: Do not include
	<kernel-features.h>.
	(futimesat) [__NR_futimesat]: Make code unconditional.
	(futimesat) [!__ASSUME_ATFCTS]: Remove conditional code.
	* sysdeps/unix/sysv/linux/fxstatat.c: Do not include
	<kernel-features.h>.
	(__fxstatat) [__NR_newfstatat]: Make code unconditional.
	(__fxstatat) [!__ASSUME_ATFCTS]: Remove conditional code.
	* sysdeps/unix/sysv/linux/fxstatat64.c: Do not include
	<kernel-features.h>.
	(__fxstatat64) [__NR_fstatat64]: Make code unconditional.
	(__fxstatat64) [!__ASSUME_ATFCTS]: Remove conditional code.
	* sysdeps/unix/sysv/linux/i386/fchownat.c: Remove file.
	* sysdeps/unix/sysv/linux/i386/fxstatat.c: Do not include
	<kernel-features.h>.
	(__fxstatat) [__NR_fstatat64]: Make code unconditional.
	(__fxstatat) [!__ASSUME_ATFCTS]: Remove conditional code.
	* sysdeps/unix/sysv/linux/linkat.c: Do not include
	<kernel-features.h>.
	(linkat) [__NR_linkat]: Make code unconditional.
	(linkat) [!__ASSUME_ATFCTS]: Remove conditional code.
	* sysdeps/unix/sysv/linux/m68k/fchownat.c: Remove file.
	* sysdeps/unix/sysv/linux/mips/mips64/fxstatat64.c: Do not include
	<kernel-features.h>.
	(__fxstatat64) [__NR_newfstatat]: Make code unconditional.
	(__fxstatat64) [!__ASSUME_ATFCTS]: Remove conditional code.
	* sysdeps/unix/sysv/linux/mkdirat.c: Do not include
	<kernel-features.h>.
	(mkdirat) [__NR_mkdirat]: Make code unconditional.
	(mkdirat) [!__ASSUME_ATFCTS]: Remove conditional code.
	* sysdeps/unix/sysv/linux/openat.c: Do not include
	<kernel-features.h>.
	[!__ASSUME_ATFCTS] (__atfct_seterrno): Remove function.
	[!__ASSUME_ATFCTS] (__have_atfcts): Remove variable.
	(OPENAT_NOT_CANCEL) [__NR_openat]: Make code unconditional.
	(OPENAT_NOT_CANCEL) [!__ASSUME_ATFCTS]: Remove conditional code.
	* sysdeps/unix/sysv/linux/powerpc/fchownat.c: Remove file.
	* sysdeps/unix/sysv/linux/readlinkat.c: Do not include
	<kernel-features.h>.
	(readlinkat) [__NR_readlinkat]: Make code unconditional.
	(readlinkat) [!__ASSUME_ATFCTS]: Remove conditional code.  Return
	result of INLINE_SYSCALL directly, not via int variable.
	* sysdeps/unix/sysv/linux/renameat.c: Do not include
	<kernel-features.h>.
	[!__ASSUME_ATFCTS] (__atfct_seterrno_2): Remove function.
	(renameat) [__NR_renameat]: Make code unconditional.
	(renameat) [!__ASSUME_ATFCTS]: Remove conditional code.
	* sysdeps/unix/sysv/linux/s390/s390-32/fchownat.c: Remove file.
	* sysdeps/unix/sysv/linux/sh/fchownat.c: Remove file.
	* sysdeps/unix/sysv/linux/sparc/sparc32/fchownat.c: Remove file.
	* sysdeps/unix/sysv/linux/sparc/sparc64/dl-fxstatat64.c
	(__ASSUME_ATFCTS): Do not undefine and redefine.
	* sysdeps/unix/sysv/linux/symlinkat.c: Do not include
	<kernel-features.h>.
	(symlinkat) [__NR_symlinkat]: Make code unconditional.
	(symlinkat) [!__ASSUME_ATFCTS]: Remove conditional code.
	* sysdeps/unix/sysv/linux/unlinkat.c: Do not include
	<kernel-features.h>.
	(unlinkat) [__NR_unlinkat]: Make code unconditional.
	(unlinkat) [!__ASSUME_ATFCTS]: Remove conditional code.
	* sysdeps/unix/sysv/linux/wordsize-64/dl-fxstatat64.c
	(__ASSUME_ATFCTS): Do not undefine and redefine.
	* sysdeps/unix/sysv/linux/wordsize-64/fxstatat.c: Do not include
	<kernel-features.h>.
	(__fxstatat) [__NR_newfstatat]: Make code unconditional.
	(__fxstatat) [!__ASSUME_ATFCTS]: Remove conditional code.
	* sysdeps/unix/sysv/linux/xmknodat.c: Do not include
	<kernel-features.h>.
	(__xmknodat) [__NR_mknodat]: Make code unconditional.
	(__xmknodat) [!__ASSUME_ATFCTS]: Remove conditional code.
2014-06-20 15:41:35 +00:00
David S. Miller
f6fdf53382 Consolidate sparc clone, fork, and vfork implementations.
* nptl/sysdeps/unix/sysv/linux/sparc/sparc32/clone.S: Delete.
	* nptl/sysdeps/unix/sysv/linux/sparc/sparc32/pt-vfork.S: Delete.
	* nptl/sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S: Moved ...
	* sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S: ... here.
	* nptl/sysdeps/unix/sysv/linux/sparc/sparc64/clone.S: Delete.
	* nptl/sysdeps/unix/sysv/linux/sparc/sparc64/pt-vfork.S: Delete.
	* nptl/sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S: Moved ...
	* sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S: ... here.
	* sysdeps/unix/sysv/linux/sparc/fork.S: Delete.
	* sysdeps/unix/sysv/linux/sparc/pt-vfork.S: New file.
	* sysdeps/unix/sysv/linux/sparc/sparc32/clone.S (__thread_start):
	Remove RESET_PID cpp guards.
	* sysdeps/unix/sysv/linux/sparc/sparc64/clone.S (__thread_start):
	Remove RESET_PID cpp guards.
	* sysdeps/unix/sysv/linux/sparc/vfork.S: Delete.
2014-06-13 14:47:53 -07:00
Allan McRae
d4697bc93d Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
Ondřej Bílka
d1d9eaf478 Use __glibc_reserved instead __unused. 2013-11-26 12:32:28 +01:00
Ondřej Bílka
382466e04e Fix typos. 2013-08-30 18:08:59 +02: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
Thomas Schwinge
572676160d New <math.h> macro named issignaling to check for a signaling NaN (sNaN).
It is based on draft TS 18661 and currently enabled as a GNU extension.
2013-04-02 13:51:02 +02:00
Siddhesh Poyarekar
ba384f6ed9 C++11 thread_local destructors support
This feature is specifically for the C++ compiler to offload calling
thread_local object destructors on thread program exit, to glibc.
This is to overcome the possible complication of destructors of
thread_local objects getting called after the DSO in which they're
defined is unloaded by the dynamic linker.  The DSO is marked as
'unloadable' if it has a constructed thread_local object and marked as
'unloadable' again when all the constructed thread_local objects
defined in it are destroyed.
2013-02-18 19:08:21 +05:30
Joseph Myers
2e8a5c8c46 Remove bp-semctl.h and CHECK_SEMCTL. 2013-01-31 22:59:04 +00:00
David S. Miller
8794a96418 Adjust sparc for Roland's multiarch sysdep directory changes.
* sysdeps/sparc/sparc32/sparcv9/fpu/unix/sysv/linux/multiarch/Implies:
	Move to...
	* sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/fpu/multiarch/Implies:
	Here.
2013-01-11 18:04:10 -08:00
Joseph Myers
568035b787 Update copyright notices with scripts/update-copyrights. 2013-01-02 19:05:09 +00:00
Roland McGrath
6e6249d0b4 BZ#14743: Move clock_* symbols from librt to libc. 2012-10-24 14:50:46 -07:00
Florian Weimer
84b3fd8407 Rename __secure_getenv to secure_getenv 2012-07-25 19:46:22 +02:00
Joseph Myers
0f48659e36 Move localplt baselines to sysdeps directories. 2012-07-20 19:20:34 +00:00
Joseph Myers
bd29910a8a Move c++-types baselines to sysdeps directories. 2012-07-17 14:44:06 +00:00
Joseph Myers
ea32bcdd3d Add default-abi definitions for powerpc, s390 and sparc. 2012-06-01 21:19:28 +00:00
Joseph Myers
21708942c9 Remove pre-2.4 Linux kernel support. 2012-05-25 19:19:30 +00:00
David S. Miller
f1158bd1a5 Remove some sparc cob-webs leftover after Joseph's recent changes.
* sysdeps/unix/sysv/linux/sparc/sparc32/sigaction.c
	(__libc_sigaction): Remove unused local variables.
2012-05-23 21:47:03 -07:00
Richard Henderson
c7683a6d02 Add <sys/auxv.h> and getauxval. 2012-05-20 10:40:35 -07:00
Joseph Myers
ffb7875d03 Remove pre-2.2 Linux kernel support. 2012-05-14 14:11:02 +00:00
David S. Miller
8dbd5d7b90 Move abilist files into sysdep dirs.
* Makerules (%.abilist): Add vpath on sysdep_dirs.
	(check-abi-%): Remove AWK script prerequisite and explicit
	abilist directory.
	(check-abi): Rewrite to just diff the symlist with the abilist.
	(config-tls, config-abi-config): Delete, no longer used.
	(update-abi-%): Remove AWK script and explicit abilist directory.
	(update-abi): Rewrite to simply compare and conditionally copy the
	symlist and the sysdep abilist file.  Remove update-abi-config
	checks.
	* abilist/ld.abilist: Remove.
	* abilist/libBrokenLocale.abilist: Remove.
	* abilist/libanl.abilist: Remove.
	* abilist/libcrypt.abilist: Remove.
	* abilist/libdl.abilist: Remove.
	* abilist/librt.abilist: Remove.
	* abilist/libthread_db.abilist: Remove.
	* abilist/libutil.abilist: Remove.
	* scripts/extract-abilist.awk: Remove.
	* scripts/merge-abilist.awk: Remove.
	* sysdeps/generic/libcidn.abilist: New file.
	* sysdeps/generic/libnss_compat.abilist: New file.
	* sysdeps/generic/libnss_db.abilist: New file.
	* sysdeps/generic/libnss_dns.abilist: New file.
	* sysdeps/generic/libnss_files.abilist: New file.
	* sysdeps/generic/libnss_hesiod.abilist: New file.
	* sysdeps/generic/libnss_nis.abilist: New file.
	* sysdeps/generic/libnss_nisplus.abilist: New file.
	* sysdeps/unix/sysv/linux/i386/nptl/ld.abilist: New file.
	* sysdeps/unix/sysv/linux/i386/nptl/libanl.abilist: New file.
	* sysdeps/unix/sysv/linux/i386/nptl/libBrokenLocale.abilist: New
	file.
	* sysdeps/unix/sysv/linux/i386/nptl/libc.abilist: New file.
	* sysdeps/unix/sysv/linux/i386/nptl/libcrypt.abilist: New file.
	* sysdeps/unix/sysv/linux/i386/nptl/libdl.abilist: New file.
	* sysdeps/unix/sysv/linux/i386/nptl/libm.abilist: New file.
	* sysdeps/unix/sysv/linux/i386/nptl/libnsl.abilist: New file.
	* sysdeps/unix/sysv/linux/i386/nptl/libpthread.abilist: New file.
	* sysdeps/unix/sysv/linux/i386/nptl/libresolv.abilist: New file.
	* sysdeps/unix/sysv/linux/i386/nptl/librt.abilist: New file.
	* sysdeps/unix/sysv/linux/i386/nptl/libthread_db.abilist: New
	file.
	* sysdeps/unix/sysv/linux/i386/nptl/libutil.abilist: New file.
	* sysdeps/unix/sysv/linux/x86_64/nptl/ld.abilist: New file.
	* sysdeps/unix/sysv/linux/x86_64/nptl/libanl.abilist: New file.
	* sysdeps/unix/sysv/linux/x86_64/nptl/libBrokenLocale.abilist: New
	file.
	* sysdeps/unix/sysv/linux/x86_64/nptl/libc.abilist: New file.
	* sysdeps/unix/sysv/linux/x86_64/nptl/libcrypt.abilist: New file.
	* sysdeps/unix/sysv/linux/x86_64/nptl/libdl.abilist: New file.
	* sysdeps/unix/sysv/linux/x86_64/nptl/libm.abilist: New file.
	* sysdeps/unix/sysv/linux/x86_64/nptl/libnsl.abilist: New file.
	* sysdeps/unix/sysv/linux/x86_64/nptl/libpthread.abilist: New
	file.
	* sysdeps/unix/sysv/linux/x86_64/nptl/libresolv.abilist: New file.
	* sysdeps/unix/sysv/linux/x86_64/nptl/librt.abilist: New file.
	* sysdeps/unix/sysv/linux/x86_64/nptl/libthread_db.abilist: New
	file.
	* sysdeps/unix/sysv/linux/x86_64/nptl/libutil.abilist: New file.
	* sysdeps/unix/sysv/linux/powerpc/powercp32/fpu/nptl/ld.abilist:
	New file.
	* sysdeps/unix/sysv/linux/powerpc/powercp32/fpu/nptl/libanl.abilist:
	New file.
	* sysdeps/unix/sysv/linux/powerpc/powercp32/fpu/nptl/libBrokenLocale.abilist:
	New file.
	* sysdeps/unix/sysv/linux/powerpc/powercp32/fpu/nptl/libc.abilist:
	New file.
	* sysdeps/unix/sysv/linux/powerpc/powercp32/fpu/nptl/libcrypt.abilist:
	New file.
	* sysdeps/unix/sysv/linux/powerpc/powercp32/fpu/nptl/libdl.abilist:
	New file.
	* sysdeps/unix/sysv/linux/powerpc/powercp32/fpu/nptl/libm.abilist:
	New file.
	* sysdeps/unix/sysv/linux/powerpc/powercp32/fpu/nptl/libnsl.abilist:
	New file.
	* sysdeps/unix/sysv/linux/powerpc/powercp32/fpu/nptl/libpthread.abilist:
	New file.
	* sysdeps/unix/sysv/linux/powerpc/powercp32/fpu/nptl/libresolv.abilist:
	New file.
	* sysdeps/unix/sysv/linux/powerpc/powercp32/fpu/nptl/librt.abilist:
	New file.
	* sysdeps/unix/sysv/linux/powerpc/powercp32/fpu/nptl/libthread_db.abilist:
	New file.
	* sysdeps/unix/sysv/linux/powerpc/powercp32/fpu/nptl/libutil.abilist:
	New file.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/ld.abilist: New
	file.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libanl.abilist:
	New file.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libBrokenLocale.abilist:
	New file.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libc.abilist: New
	file.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libcrypt.abilist:
	New file.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libdl.abilist:
	New file.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libm.abilist: New
	file.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libnsl.abilist:
	New file.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libpthread.abilist:
	New file.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libresolv.abilist:
	New file.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/librt.abilist:
	New file.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libthread_db.abilist:
	New file.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libutil.abilist:
	New file.
	* sysdeps/unix/sysv/linux/s390/s390-32/nptl/ld.abilist: New file.
	* sysdeps/unix/sysv/linux/s390/s390-32/nptl/libanl.abilist: New
	file.
	* sysdeps/unix/sysv/linux/s390/s390-32/nptl/libBrokenLocale.abilist:
	New file.
	* sysdeps/unix/sysv/linux/s390/s390-32/nptl/libc.abilist: New
	file.
	* sysdeps/unix/sysv/linux/s390/s390-32/nptl/libcrypt.abilist: New
	file.
	* sysdeps/unix/sysv/linux/s390/s390-32/nptl/libdl.abilist: New
	file.
	* sysdeps/unix/sysv/linux/s390/s390-32/nptl/libm.abilist: New
	file.
	* sysdeps/unix/sysv/linux/s390/s390-32/nptl/libnsl.abilist: New
	file.
	* sysdeps/unix/sysv/linux/s390/s390-32/nptl/libpthread.abilist:
	New file.
	* sysdeps/unix/sysv/linux/s390/s390-32/nptl/libresolv.abilist: New
	file.
	* sysdeps/unix/sysv/linux/s390/s390-32/nptl/librt.abilist: New
	file.
	* sysdeps/unix/sysv/linux/s390/s390-32/nptl/libthread_db.abilist:
	New file.
	* sysdeps/unix/sysv/linux/s390/s390-32/nptl/libutil.abilist: New
	file.
	* sysdeps/unix/sysv/linux/s390/s390-64/nptl/ld.abilist: New file.
	* sysdeps/unix/sysv/linux/s390/s390-64/nptl/libanl.abilist: New
	file.
	* sysdeps/unix/sysv/linux/s390/s390-64/nptl/libBrokenLocale.abilist:
	New file.
	* sysdeps/unix/sysv/linux/s390/s390-64/nptl/libc.abilist: New
	file.
	* sysdeps/unix/sysv/linux/s390/s390-64/nptl/libcrypt.abilist: New
	file.
	* sysdeps/unix/sysv/linux/s390/s390-64/nptl/libdl.abilist: New
	file.
	* sysdeps/unix/sysv/linux/s390/s390-64/nptl/libm.abilist: New
	file.
	* sysdeps/unix/sysv/linux/s390/s390-64/nptl/libnsl.abilist: New
	file.
	* sysdeps/unix/sysv/linux/s390/s390-64/nptl/libpthread.abilist:
	New file.
	* sysdeps/unix/sysv/linux/s390/s390-64/nptl/libresolv.abilist: New
	file.
	* sysdeps/unix/sysv/linux/s390/s390-64/nptl/librt.abilist: New
	file.
	* sysdeps/unix/sysv/linux/s390/s390-64/nptl/libthread_db.abilist:
	New file.
	* sysdeps/unix/sysv/linux/s390/s390-64/nptl/libutil.abilist: New
	file.
	* sysdeps/unix/sysv/linux/sh/nptl/ld.abilist: New file.
	* sysdeps/unix/sysv/linux/sh/nptl/libanl.abilist: New file.
	* sysdeps/unix/sysv/linux/sh/nptl/libBrokenLocale.abilist: New
	file.
	* sysdeps/unix/sysv/linux/sh/nptl/libc.abilist: New file.
	* sysdeps/unix/sysv/linux/sh/nptl/libcrypt.abilist: New file.
	* sysdeps/unix/sysv/linux/sh/nptl/libdl.abilist: New file.
	* sysdeps/unix/sysv/linux/sh/nptl/libm.abilist: New file.
	* sysdeps/unix/sysv/linux/sh/nptl/libnsl.abilist: New file.
	* sysdeps/unix/sysv/linux/sh/nptl/libpthread.abilist: New file.
	* sysdeps/unix/sysv/linux/sh/nptl/libresolv.abilist: New file.
	* sysdeps/unix/sysv/linux/sh/nptl/librt.abilist: New file.
	* sysdeps/unix/sysv/linux/sh/nptl/libthread_db.abilist: New file.
	* sysdeps/unix/sysv/linux/sh/nptl/libutil.abilist: New file.
	* sysdeps/unix/sysv/linux/sparc/sparc32/nptl/ld.abilist: New file.
	* sysdeps/unix/sysv/linux/sparc/sparc32/nptl/libanl.abilist: New
	file.
	* sysdeps/unix/sysv/linux/sparc/sparc32/nptl/libBrokenLocale.abilist:
	New file.
	* sysdeps/unix/sysv/linux/sparc/sparc32/nptl/libc.abilist: New
	file.
	* sysdeps/unix/sysv/linux/sparc/sparc32/nptl/libcrypt.abilist: New
	file.
	* sysdeps/unix/sysv/linux/sparc/sparc32/nptl/libdl.abilist: New
	file.
	* sysdeps/unix/sysv/linux/sparc/sparc32/nptl/libm.abilist: New
	file.
	* sysdeps/unix/sysv/linux/sparc/sparc32/nptl/libnsl.abilist: New
	file.
	* sysdeps/unix/sysv/linux/sparc/sparc32/nptl/libpthread.abilist:
	New file.
	* sysdeps/unix/sysv/linux/sparc/sparc32/nptl/libresolv.abilist:
	New file.
	* sysdeps/unix/sysv/linux/sparc/sparc32/nptl/librt.abilist: New
	file.
	* sysdeps/unix/sysv/linux/sparc/sparc32/nptl/libthread_db.abilist:
	New file.
	* sysdeps/unix/sysv/linux/sparc/sparc32/nptl/libutil.abilist: New
	file.
	* sysdeps/unix/sysv/linux/sparc/sparc64/nptl/ld.abilist: New file.
	* sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libanl.abilist: New
	file.
	* sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libBrokenLocale.abilist:
	New file.
	* sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libc.abilist: New
	file.
	* sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libcrypt.abilist: New
	file.
	* sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libdl.abilist: New
	file.
	* sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libm.abilist: New
	file.
	* sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libnsl.abilist: New
	file.
	* sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libpthread.abilist:
	New file.
	* sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libresolv.abilist:
	New file.
	* sysdeps/unix/sysv/linux/sparc/sparc64/nptl/librt.abilist: New
	file.
	* sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libthread_db.abilist:
	New file.
	* sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libutil.abilist: New
	file.
2012-04-28 04:36:51 -04:00
David S. Miller
aab39a094e Delete everything under sysdeps/unix/sparc/
* sysdeps/unix/sparc/brk.S: Delete.
	* sysdeps/unix/sparc/dl-brk.S: Delete.
	* sysdeps/unix/sparc/pipe.S: Delete.
	* sysdeps/unix/sparc/sysdep.S: Delete.
	* sysdeps/unix/sparc/sysdep.h: Delete.
	* sysdeps/unix/sparc/vfork.S: Delete.
	* sysdeps/sparc/sysdep.h (SPARC_PIC_THUNK, SPARC_PIC_REG,
	SPARC_PIC_REG_LEAF, ENTRY, END, LOC): Define.
	* sysdeps/unix/sysv/linux/sparc/sysdep.h (ret, ret_NOERRNO,
	ret_ERRVAL, r0, r1, MOVE): Define.
	(JUMPTARGET): Remove.
	* sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h: Don't include
	sysdeps/unix/sparc/sysdep.h
	(ENTRY, END): Remove.
	* sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h: Likewise.
2012-04-25 11:52:31 -07:00
H.J. Lu
eb96ffb07d Move stdio-common/_itoa.h to sysdeps/generic 2012-03-20 16:00:23 -07:00
David S. Miller
3c96908397 Kill sparc32 specific __getpagesize, unneeded.
* sysdeps/unix/sysv/linux/sparc/sparc32/getpagesize.c: Delete.
2012-03-01 23:30:55 -08:00
David S. Miller
53362a4b0f Remove sparc binutils GOTDATA checks in lieu of new minimum version requirement.
* sysdeps/sparc/crti.S: Remove HAVE_BINUTILS_GOTDATA checks.
	* sysdeps/sparc/sparc32/dl-machine.h: Likewise.
	* sysdeps/sparc/sparc32/elf/start.S: Likewise.
	* sysdeps/sparc/sparc32/fpu/w_sqrt.S: Likewise.
	* sysdeps/sparc/sparc32/fpu/w_sqrtf.S: Likewise.
	* sysdeps/sparc/sparc32/sparcv9/fpu/w_sqrt.S: Likewise.
	* sysdeps/sparc/sparc32/sparcv9/fpu/w_sqrtf.S: Likewise.
	* sysdeps/sparc/sparc64/dl-machine.h: Likewise.
	* sysdeps/sparc/sparc64/elf/start.S: Likewise.
	* sysdeps/sparc/sparc64/fpu/w_sqrt.S: Likewise.
	* sysdeps/sparc/sparc64/fpu/w_sqrtf.S: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/____longjmp_chk.S: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/____longjmp_chk.S: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/brk.S: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h: Likewise.
	* config.h.in (HAVE_BINUTILS_GOTDATA): Delete.
	* sysdeps/sparc/elf/configure.in: Remove binutils GOTDATA checks.
	* sysdeps/sparc/elf/configure: Regenerated.
2012-03-01 15:04:16 -08:00
David S. Miller
c0e70b2543 Tweak sparc32 longjmp to not store a dummy frame pointer onto the stack.
* sysdeps/sparc/sparc32/__longjmp.S: Unwind in the 'thread' path
	using a normal save/restore sequence, rather than allocating a
	dummy stack frame just to store a frame pointer and restore.
	* sysdeps/unix/sysv/linux/sparc/sparc32/____longjmp_chk.S: Likewise.
2012-02-20 20:50:14 -08:00
David S. Miller
3d2b3019e0 Use sparc GOTDATA relocations whenever possible.
* sysdeps/sparc/crti.S: Try to use GOTDATA relocs.
	* sysdeps/sparc/sparc32/dl-machine.h (RTLD_START): Likewise.
	* sysdeps/sparc/sparc32/elf/start.S: Likewise.
	* sysdeps/sparc/sparc64/dl-machine.h (RTLD_START): Likewise.
	* sysdeps/sparc/sparc64/elf/start.S: Likewise.
	* sysdeps/sparc/sparc64/multiarch/memcpy.S: Likewise.
	* sysdeps/sparc/sparc64/multiarch/memset.S: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/____longjmp_chk.S: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h
	(SYSCALL_ERROR_HANDLER): Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/____longjmp_chk.S: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/brk.S: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h
	(SYSCALL_ERROR_HANDLER): Likewise.
2012-02-20 17:51:53 -08:00
David S. Miller
dd54084dd9 Rework sparc PIC macros so crt{i,n}.S can use them too.
* sysdeps/unix/sparc/sysdep.h (SPARC_PIC_THUNK): New macro.
	(SETUP_PIC_REG): Use SPARC_PIC_THUNK and don't save and restore
	%o7 across the call.
	(SETUP_PIC_REG_LEAF): Do %o7 save/restore in this new macro
	instead.
	* sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h: Use
	SETUP_PIC_REG_LEAF.
	* sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h: Likewise.
	* sysdeps/sparc/crti.S: Use SETUP_PIC_REG.
	* sysdeps/sparc/crtn.S: Likewise.
2012-02-18 22:31:42 -08:00
Paul Eggert
59ba27a63a Replace FSF snail mail address with URLs. 2012-02-09 23:18:22 +00:00
Ulrich Drepper
a784e50247 Remove pre-ISO C support
No more __const.
2012-01-07 23:57:22 -05:00
Ulrich Drepper
d063d16433 Remove support for !USE___THREAD 2011-09-10 16:50:28 -04:00
David S. Miller
15c95c5d1a Fixes and optimizations for 32-bit sparc fabs*(). 2011-09-05 10:06:15 -07:00
David S. Miller
3ba575169a Fix sparc localplt testcase failures. 2011-08-31 17:30:41 -07:00
David S. Miller
25ad0df13b Bug fixes for ____longjmp_chk on sparc. 2011-08-22 16:53:57 -07:00
Andreas Schwab
e24f0a8b9e Add support for fanotify_mark on sparc32 and s390 2010-09-20 06:58:15 -07:00
Ulrich Drepper
c08fb0d7bb Add support for prlimit and prlimit64 on Linux. 2010-08-11 11:18:52 -07:00
David S. Miller
34a407de96 sparc: Fix 32-bit makecontext arg passing.
test-makecontext3 fails because we fill in the argument
stack slots past the 5th using the wrong index.
2010-02-20 13:48:07 -08:00
David S. Miller
a0902db9fe Add ____longjmp_chk for sparc
tst-longjmp_chk passes, tst-longjmp_chk2 fails but that is because
of some limitations of kernel signal delivery on sparc that I need
to fix, it has nothing to do with the longjmp_chk implementation.

(The problem with tst-longjmp_chk2 is that it tries to do a stack
 fault SIGSEGV within a stack fault SIGSEGV , and the Linux kernel
 will refuse to setup the signal stack and deliver the signal if the
 register windows can't be written out to the stack first)
2009-10-14 14:57:16 +02:00
Jakub Jelinek
1f3615a1c9 Add missing export of fallocate64 on 32-bit platforms.
Due to a pasto the fallocate64 interface, introduced in glibc 2.10,
isn't exported for 32-bit Linux platforms.  It is too late for this
now so exported them for glibc 2.11.
2009-05-15 21:00:09 -07:00
Jakub Jelinek
86746abb84 * sysdeps/unix/sysv/linux/sparc/sparc32/setcontext.S: Use
HIDDEN_JUMPTARGET. 
* sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h 
(__SYSCALL_CLOBBERS): Remove %g* registers. 
* sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h 
(__SYSCALL_CLOBBERS): Likewise. 
* scripts/data/localplt-sparc-linux-gnu.data: New file. 
* scripts/data/localplt-sparc64-linux-gnu.data: Likewise.
2008-05-08  David S. Miller  <davem@davemloft.net>

	* sysdeps/unix/sysv/linux/sparc/sparc32/setcontext.S: Use
	HIDDEN_JUMPTARGET.
	* sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h
	(__SYSCALL_CLOBBERS): Remove %g* registers.
	* sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h
	(__SYSCALL_CLOBBERS): Likewise.
	* scripts/data/localplt-sparc-linux-gnu.data: New file.
	* scripts/data/localplt-sparc64-linux-gnu.data: Likewise.
2008-05-21 09:29:07 +00:00
Jakub Jelinek
5e6f34c2a0 * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h
(CALL_ERRNO_LOCATION): Define. 
(__SYSCALL_STRING, __CLONE_SYSCALL_STRING): Use it. 
* sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h 
(CALL_ERRNO_LOCATION): Define. 
(__SYSCALL_STRING, __CLONE_SYSCALL_STRING): Use it. 
* sysdeps/unix/sysv/linux/sparc/sparc64/brk.S (__brk): Use 
HIDDEN_JUMPTARGET for __errno_location call in libc.so.
2008-05-21  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h
	(CALL_ERRNO_LOCATION): Define.
	(__SYSCALL_STRING, __CLONE_SYSCALL_STRING): Use it.
	* sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h
	(CALL_ERRNO_LOCATION): Define.
	(__SYSCALL_STRING, __CLONE_SYSCALL_STRING): Use it.
	* sysdeps/unix/sysv/linux/sparc/sparc64/brk.S (__brk): Use
	HIDDEN_JUMPTARGET for __errno_location call in libc.so.
2008-05-21 08:48:21 +00:00
Jakub Jelinek
ed8f38ba44 * sysdeps/unix/sysv/linux/sparc/sparc32/sigcontextinfo.h
(FIRST_FRAME_POINTER): Define. 
* sysdeps/sparc/sparc64/backtrace.c: New file.
2008-05-20  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/unix/sysv/linux/sparc/sparc32/sigcontextinfo.h
	(FIRST_FRAME_POINTER): Define.

2008-05-09  David S. Miller  <davem@davemloft.net>

	* sysdeps/sparc/sparc64/backtrace.c: New file.
2008-05-20 19:23:00 +00:00
Jakub Jelinek
a86a7a3946 * sysdeps/unix/sysv/linux/sparc/sparc32/ucontext_i.sym: New file.
* sysdeps/unix/sysv/linux/sparc/sparc32/Makefile [$(subdir) = stdlib]: 
(gen-as-const-headers): Add it. 
* sysdeps/unix/sysv/linux/sparc/sparc32/getcontext.S: New file. 
* sysdeps/unix/sysv/linux/sparc/sparc32/makecontext.c: Likewise. 
* sysdeps/unix/sysv/linux/sparc/sparc32/setcontext.S: Likewise. 
* sysdeps/unix/sysv/linux/sparc/sparc32/swapcontext.S: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/ucontext_i.sym: New file.
	* sysdeps/unix/sysv/linux/sparc/sparc32/Makefile [$(subdir) = stdlib]:
	(gen-as-const-headers): Add it.
	* sysdeps/unix/sysv/linux/sparc/sparc32/getcontext.S: New file.
	* sysdeps/unix/sysv/linux/sparc/sparc32/makecontext.c: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/setcontext.S: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/swapcontext.S: Likewise.
2008-05-05 09:34:18 +00:00
Jakub Jelinek
4ce349e559 * sysdeps/unix/sysv/linux/sparc/sparc32/syscall.S: Add support for
six system call parameters. 
* sysdeps/unix/sysv/linux/sparc/sparc64/syscall.S: Likewise.
2008-05-01  David S. Miller  <davem@davemloft.net>

	* sysdeps/unix/sysv/linux/sparc/sparc32/syscall.S: Add support for
	six system call parameters.
	* sysdeps/unix/sysv/linux/sparc/sparc64/syscall.S: Likewise.
2008-05-05 09:17:00 +00:00
Jakub Jelinek
006805680f * sysdeps/sparc/sparc32/elf/start.S: Remove cfi_* markup.
* sysdeps/sparc/sparc64/elf/start.S: Likewise. 
* sysdeps/unix/sysv/linux/sparc/sparc32/clone.S (__thread_start): Likewise. 
* sysdeps/unix/sysv/linux/sparc/sparc64/clone.S (__thread_start): Likewise.
	* sysdeps/sparc/sparc32/elf/start.S: Remove cfi_* markup.
	* sysdeps/sparc/sparc64/elf/start.S: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/clone.S (__thread_start): Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/clone.S (__thread_start): Likewise.
2007-09-18 19:29:44 +00:00
Jakub Jelinek
91ddd9c448 * sysdeps/unix/sysv/linux/sparc/sparc32/clone.S (__clone):
If the syscall fails, set errno to the actual returned error number 
rather than EINVAL. 
* sysdeps/unix/sysv/linux/sparc/sparc64/clone.S (__clone): If 
arguments are incorrect, set errno to EINVAL, if the syscall 
fails, set errno to the actual returned error number.
	* sysdeps/unix/sysv/linux/sparc/sparc32/clone.S (__clone):
	If the syscall fails, set errno to the actual returned error number
	rather than EINVAL.
	* sysdeps/unix/sysv/linux/sparc/sparc64/clone.S (__clone): If
	arguments are incorrect, set errno to EINVAL, if the syscall
	fails, set errno to the actual returned error number.
2007-08-16 19:44:26 +00:00
Jakub Jelinek
467d1345e0 * sysdeps/sparc/sparc32/dl-machine.h (elf_machine_runtime_setup): No
need to check GLRO(dl_hwcap) & HWCAP_SPARC_FLUSH on sparcv9. 
(sparc_fixup_plt): Add do_flush argument instead of figuring whether 
flush should be used or not inside of the function. 
(elf_machine_fixup_plt, elf_machine_rela): Adjust caller.
	* sysdeps/unix/sysv/linux/sparc/sparc32/clone.S (__clone,
	__thread_start): Use HIDDEN_JUMPTARGET.
	* sysdeps/unix/sysv/linux/sparc/sparc64/clone.S (__clone,
	__thread_start): Likewise.
	* sysdeps/unix/sysv/linux/sparc/sysdep.h (JUMPTARGET): Define.
nptl/
	* sysdeps/unix/sysv/linux/lowlevellock.c: Comment fix.
	* sysdeps/unix/sysv/linux/sparc/sparc32/lowlevellock.c
	(__lll_timedwait_tid): Pass LLL_SHARED as 4th argument to
	lll_futex_timed_wait.
	* sysdeps/sparc/sparc32/dl-machine.h (elf_machine_runtime_setup): No
	need to check GLRO(dl_hwcap) & HWCAP_SPARC_FLUSH on sparcv9.
	(sparc_fixup_plt): Add do_flush argument instead of figuring whether
	flush should be used or not inside of the function.
	(elf_machine_fixup_plt, elf_machine_rela): Adjust caller.

	* sysdeps/unix/sysv/linux/sparc/sparc32/clone.S (__clone,
	__thread_start): Use HIDDEN_JUMPTARGET.
	* sysdeps/unix/sysv/linux/sparc/sparc64/clone.S (__clone,
	__thread_start): Likewise.
	* sysdeps/unix/sysv/linux/sparc/sysdep.h (JUMPTARGET): Define.
2007-08-14 19:59:35 +00:00
Ulrich Drepper
f1122ec3ae [BZ #3252, BZ #3253]
2006-09-25  Jakub Jelinek  <jakub@redhat.com>
	[BZ #3252]
	* sysdeps/unix/sysv/linux/powerpc/fchownat.c (fchownat): Handle only
	fchownat syscall and __ASSUME_LCHOWN_SYSCALL case inline, call
	__{,l}chown to handle the rest.
	* sysdeps/unix/sysv/linux/i386/fchownat.c (fchownat): Handle only
	fchownat syscall and __ASSUME_32BITUIDS case inline, call
	__{,l}chown to handle the rest.
	* sysdeps/unix/sysv/linux/sparc/sparc32/fchownat.c: Include
	i386/fchownat.c.
	* sysdeps/unix/sysv/linux/s390/s390-32/fchownat.c: Likewise.
	* sysdeps/unix/sysv/linux/sh/fchownat.c: Likewise.

	[BZ #3253]
	* posix/glob.c (glob_in_dir): Don't alloca one struct globlink at a
	time, rather allocate increasingly bigger arrays of pointers, if
	possible with alloca, if too large with malloc.

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

	* sysdeps/powerpc/fpu/libm-test-ulps: Updated.

	* sysdeps/ieee754/ldbl-128/s_lrintl.c (__lrintl): Fix 2 typos.
2006-09-25 15:33:09 +00:00
Roland McGrath
043cee3700 * shlib-versions: Use sparc64.*- for CPU patterns. 2006-03-06 01:34:09 +00:00
Roland McGrath
016080606c * sysdeps/unix/sysv/linux/powerpc/powerpc64/umount.c: Include x86_64
umount.c rather than hppa umount.c.
	* sysdeps/unix/sysv/linux/sparc/sparc32/chown.c: Include sh chown.c
	rather than m68k chown.c.
	* sysdeps/unix/sysv/linux/sparc/sparc32/fchownat.c: Include sh
	fchownat.c rather than m68k fchownat.c.
	* sysdeps/unix/sysv/linux/sh/chown.c: Copy over from m68k chown.c.
	* sysdeps/unix/sysv/linux/sh/fchownat.c: Copy over from m68k
	fchownat.c.
	* sysdeps/unix/sysv/linux/x86_64/brk.c: Copy over from hppa brk.c.
	* sysdeps/unix/sysv/linux/x86_64/umount.c: Copy over from hppa
	umount.c.
2006-02-28 19:07:44 +00:00
Roland McGrath
10c6e7097f * configure.in: Use sparc/sparc32/sparcv9/sparcv9b in place
of sparc/sparc32/sparcv9b.
	* configure: Regenerated.
	* sysdeps/sparc/sparc32/sparcv9b/Implies: File removed.
	* sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9b/Implies: File removed.
2006-02-25 03:37:24 +00:00
Roland McGrath
fe0b1e854a * sysdeps/unix/sysv/linux/sparc/sparc64/dl-procinfo.c: Moved to ...
* sysdeps/sparc/dl-procinfo.c: ... here, new file.
	* sysdeps/unix/sysv/linux/sparc/sparc64/dl-procinfo.h: Moved to ...
	* sysdeps/sparc/dl-procinfo.h: ... here, new file.
	(HWCAP_IMPORTANT): Include HWCAP_SPARC_V9 when [__WORDSIZE__ != 64].
	* sysdeps/unix/sysv/linux/sparc/sparc32/dl-procinfo.c: File removed.
	* sysdeps/unix/sysv/linux/sparc/sparc32/dl-procinfo.h: File removed.

2006-02-18  Joseph S. Myers  <joseph@codesourcery.com>

	* soft-fp/single.h (SFtype): Define.
	(union _FP_UNION_S): Use it.
	* soft-fp/double.h (DFtype): Define.
	(union _FP_UNION_D): Use it.
	* soft-fp/extended.h (XFtype): Define.
	(union _FP_UNION_E): Use it.
	* soft-fp/quad.h (TFtype): Define.
	(union _FP_UNION_Q): Use it.
	* soft-fp/soft-fp.h: Add _LIBC conditionals.
	(SI_BITS, DI_BITS): Define.
	* soft-fp/op-common.h (_FP_DECL): Add __attribute__((unused)) for
	X##_c.
	(_FP_CMP_EQ): Use parentheses for && inside ||.
	(_FP_TO_INT): Use statement expressions in conditional controlling
	constant shift.
	(_FP_FROM_INT): Likewise.  Take unsigned type as argument.
	* soft-fp/op-2.h (_FP_FRAC_SLL_2, _FP_FRAC_SRL_2, _FP_FRAC_SRST_2,
	_FP_FRAC_SRS_2, _FP_FRAC_ASSEMBLE_2): Use statement expressions in
	conditional controlling possibly constant shift.
	(_FP_FRAC_SRST_2, _FP_FRAC_SRS_2): Avoid left shift by exactly
	_FP_W_TYPE_SIZE.
	(_FP_FRAC_GT_2, _FP_FRAC_GE_2): Use parentheses for && inside ||.
	* soft-fp/op-4.h (_FP_FRAC_SRST_4): Avoid left shift by exactly
	_FP_W_TYPE_SIZE.
	(__FP_FRAC_ADD_3, __FP_FRAC_ADD_4, __FP_FRAC_SUB_3,
	__FP_FRAC_SUB_4): Use _FP_W_TYPE for carry flags.
	* soft-fp/op-8.h (_FP_FRAC_SRS_8): Avoid left shift by exactly
	_FP_W_TYPE_SIZE.
	* soft-fp/floatdidf.c: Pass unsigned type and macro for type size.
	* soft-fp/floatdisf.c: Likewise.
	* soft-fp/floatditf.c: Likewise.
	* soft-fp/floatsidf.c: Likewise.
	* soft-fp/floatsisf.c: Likewise.
	* soft-fp/floatsitf.c: Likewise.
	* soft-fp/floatundidf.c: Likewise.
	* soft-fp/floatundisf.c: Likewise.
	* soft-fp/floatunditf.c: Likewise.
	* soft-fp/floatunsidf.c: Likewise.
	* soft-fp/floatunsisf.c: Likewise.
	* soft-fp/floatunsitf.c: Likewise.
	* soft-fp/fixdfdi.c: Pass macro for type size.
	* soft-fp/fixdfsi.c: Likewise.
	* soft-fp/fixsfdi.c: Likewise.
	* soft-fp/fixsfsi.c: Likewise.
	* soft-fp/fixtfdi.c: Likewise.
	* soft-fp/fixtfsi.c: Likewise.
	* soft-fp/fixunsdfdi.c: Likewise.
	* soft-fp/fixunsdfsi.c: Likewise.
	* soft-fp/fixunssfdi.c: Likewise.
	* soft-fp/fixunssfsi.c: Likewise.
	* soft-fp/fixunstfdi.c: Likewise.
	* soft-fp/fixunstfsi.c: Likewise.
	* sysdeps/alpha/soft-fp/ots_cvtqux.c: Pass unsigned type.
	* sysdeps/alpha/soft-fp/ots_cvtqx.c: Likewise.
	* sysdeps/powerpc/soft-fp/q_itoq.c: Likewise.
	* sysdeps/powerpc/soft-fp/q_lltoq.c: Likewise.
	* sysdeps/powerpc/soft-fp/q_ulltoq.c: Likewise.
	* sysdeps/powerpc/soft-fp/q_utoq.c: Likewise.
	* sysdeps/sparc/sparc32/soft-fp/q_itoq.c: Likewise.
	* sysdeps/sparc/sparc32/soft-fp/q_lltoq.c: Likewise.
	* sysdeps/sparc/sparc32/soft-fp/q_ulltoq.c: Likewise.
	* sysdeps/sparc/sparc32/soft-fp/q_utoq.c: Likewise.
	* sysdeps/sparc/sparc64/soft-fp/qp_itoq.c: Likewise.
	* sysdeps/sparc/sparc64/soft-fp/qp_uitoq.c: Likewise.
	* sysdeps/sparc/sparc64/soft-fp/qp_uxtoq.c: Likewise.
	* sysdeps/sparc/sparc64/soft-fp/qp_xtoq.c: Likewise.
	* soft-fp/adddf3.c: Use typedefs for argument and return types.
        * soft-fp/addsf3.c: Likewise.
        * soft-fp/addtf3.c: Likewise.
        * soft-fp/divdf3.c: Likewise.
        * soft-fp/divsf3.c: Likewise.
        * soft-fp/divtf3.c: Likewise.
        * soft-fp/eqdf2.c: Likewise.
        * soft-fp/eqsf2.c: Likewise.
        * soft-fp/eqtf2.c: Likewise.
        * soft-fp/extenddftf2.c: Likewise.
        * soft-fp/extendsfdf2.c: Likewise.
        * soft-fp/extendsftf2.c: Likewise.
        * soft-fp/fixdfdi.c: Likewise.
        * soft-fp/fixdfsi.c: Likewise.
        * soft-fp/fixsfdi.c: Likewise.
        * soft-fp/fixsfsi.c: Likewise.
        * soft-fp/fixtfdi.c: Likewise.
        * soft-fp/fixtfsi.c: Likewise.
        * soft-fp/fixunsdfdi.c: Likewise.
        * soft-fp/fixunsdfsi.c: Likewise.
        * soft-fp/fixunssfdi.c: Likewise.
        * soft-fp/fixunssfsi.c: Likewise.
        * soft-fp/fixunstfdi.c: Likewise.
        * soft-fp/fixunstfsi.c: Likewise.
        * soft-fp/floatdidf.c: Likewise.
        * soft-fp/floatdisf.c: Likewise.
        * soft-fp/floatditf.c: Likewise.
        * soft-fp/floatsidf.c: Likewise.
        * soft-fp/floatsisf.c: Likewise.
        * soft-fp/floatsitf.c: Likewise.
        * soft-fp/floatundidf.c: Likewise.
        * soft-fp/floatundisf.c: Likewise.
        * soft-fp/floatunditf.c: Likewise.
        * soft-fp/floatunsidf.c: Likewise.
        * soft-fp/floatunsisf.c: Likewise.
        * soft-fp/floatunsitf.c: Likewise.
        * soft-fp/gedf2.c: Likewise.
        * soft-fp/gesf2.c: Likewise.
        * soft-fp/getf2.c: Likewise.
        * soft-fp/ledf2.c: Likewise.
        * soft-fp/lesf2.c: Likewise.
        * soft-fp/letf2.c: Likewise.
        * soft-fp/muldf3.c: Likewise.
        * soft-fp/mulsf3.c: Likewise.
        * soft-fp/multf3.c: Likewise.
        * soft-fp/negdf2.c: Likewise.
        * soft-fp/negsf2.c: Likewise.
        * soft-fp/negtf2.c: Likewise.
        * soft-fp/sqrtdf2.c: Likewise.
        * soft-fp/sqrtsf2.c: Likewise.
        * soft-fp/sqrttf2.c: Likewise.
        * soft-fp/subdf3.c: Likewise.
        * soft-fp/subsf3.c: Likewise.
        * soft-fp/subtf3.c: Likewise.
        * soft-fp/truncdfsf2.c: Likewise.
        * soft-fp/trunctfdf2.c: Likewise.
        * soft-fp/trunctfsf2.c: Likewise.
        * soft-fp/unorddf2.c: Likewise.
        * soft-fp/unordsf2.c: Likewise.
        * soft-fp/unordtf2.c: Likewise.

2006-02-09  Joseph S. Myers  <joseph@codesourcery.com>

	* soft-fp/op-common.h (_FP_UNPACK_SEMIRAW): Define.
	(_FP_OVERFLOW_SEMIRAW): Likewise.
	(_FP_CHECK_SIGNAN_SEMIRAW): Likewise.
	(_FP_CHOOSENAN_SEMIRAW): Likewise.
	(_FP_EXP_NORMAL): Likewise.
	(_FP_PACK_SEMIRAW): Likewise.
	(_FP_ADD_INTERNAL): Rewrite to operate on semi-raw value.
	(_FP_SUB): Likewise.
	(_FP_TO_INT): Rewrite to operate on raw values.  Don't set INVALID
	exception for conversions where most negative representable
	integer is correct truncated value, but do set INEXACT for such
	conversions where appropriate.  Don't always left-shift for
	converting to a wider integer.
	(_FP_FROM_INT): Rewrite to yield raw value.  Correct shift for
	integers with one more bits than (mantissa + guard) bits for the
	floating point format.  Don't use __FP_FRAC_SRS_1 for shifting
	integers that may be wider than _FP_W_TYPE_SIZE.
	(FP_CONV): Don't define.
	(FP_EXTEND): Define.
	(FP_TRUNC): Likewise.
	* soft-fp/op-1.h (_FP_FRAC_SRST_1, __FP_FRAC_SRST_1): Define.
	(_FP_FRAC_CONV_1_1): Don't define.
	(_FP_FRAC_COPY_1_1): Define.
	* soft-fp/op-2.h (_FP_FRAC_SRST_2): Define.
	(_FP_FRAC_CONV_1_2, _FP_FRAC_CONV_2_1): Don't define.
	(_FP_FRAC_COPY_1_2, _FP_FRAC_COPY_2_1): Define.
	* soft-fp/op-4.h (_FP_FRAC_SRST_4): Define.
	(_FP_FRAC_SRS_4): Define based on _FP_FRAC_SRST_4.
	(_FP_FRAC_CONV_1_4, _FP_FRAC_CONV_2_4): Don't define.
	(_FP_FRAC_COPY_1_4, _FP_FRAC_COPY_2_4): Define.
	(_FP_FRAC_CONV_4_1, _FP_FRAC_CONV_4_2): Don't define.
	(_FP_FRAC_COPY_4_1, _FP_FRAC_COPY_4_2): Define.
	* soft-fp/single.h (_FP_FRACTBITS_S): Define.
	(_FP_FRACXBITS_S): Define in terms of _FP_FRACXBITS_S.
	(_FP_WFRACXBITS_S): Likewise.
	(_FP_QNANBIT_SH_S, _FP_IMPLBIT_SH_S): Define.
	(FP_UNPACK_SEMIRAW_S, FP_UNPACK_SEMIRAW_SP): Define.
	(FP_PACK_SEMIRAW_S, FP_PACK_SEMIRAW_SP): Define.
	* soft-fp/double.h (_FP_QNANBIT_SH_D, _FP_IMPLBIT_SH_D): Define.
	(FP_UNPACK_SEMIRAW_D, FP_UNPACK_SEMIRAW_D): Define
	(FP_PACK_SEMIRAW_D, FP_PACK_SEMIRAW_DP): Define.
	* soft-fp/extended.h (_FP_QNANBIT_SH_E, _FP_IMPLBIT_SH_E): Define.
	(FP_UNPACK_EP): Correct typo.
	(FP_UNPACK_SEMIRAW_E, FP_UNPACK_SEMIRAW_EP): Define.
	(FP_PACK_SEMIRAW_E, FP_PACK_SEMIRAW_EP): Define.
	* soft-fp/quad.h (_FP_QNANBIT_SH_Q, _FP_IMPLBIT_SH_Q): Define.
	(FP_UNPACK_SEMIRAW_Q, FP_UNPACK_SEMIRAW_QP): Define.
	(FP_PACK_SEMIRAW_Q, FP_PACK_SEMIRAW_QP): Define.
	* soft-fp/fixdfdi.c: Use unsigned type for result of conversion.
	* soft-fp/fixdfsi.c: Likewise.
	* soft-fp/fixsfdi.c: Likewise.
	* soft-fp/fixsfsi.c: Likewise.
	* soft-fp/fixtfdi.c: Likewise.
	* soft-fp/fixtfsi.c: Likewise.
	* sysdeps/alpha/soft-fp/ots_cvtxq.c: Likewise.
	* sysdeps/alpha/soft-fp/ots_nintxq.c: Likewise.
	* sysdeps/powerpc/soft-fp/q_qtoi.c: Likewise.
	* sysdeps/powerpc/soft-fp/q_qtoll.c: Likewise.
	* sysdeps/sparc/sparc32/soft-fp/q_qtoi.c: Likewise.
	* sysdeps/sparc/sparc32/soft-fp/q_qtoll.c: Likewise.
	* sysdeps/sparc/sparc64/soft-fp/qp_qtoi.c: Likewise.
	* sysdeps/sparc/sparc64/soft-fp/qp_qtox.c: Likewise.
	* soft-fp/adddf3.c: Update for changed soft-fp interfaces.
	* soft-fp/addsf3.c: Likewise.
	* soft-fp/addtf3.c: Likewise.
	* soft-fp/extenddftf2.c: Likewise.
	* soft-fp/extendsfdf2.c: Likewise.
	* soft-fp/extendsftf2.c: Likewise.
	* soft-fp/fixdfdi.c: Likewise.
	* soft-fp/fixdfsi.c: Likewise.
	* soft-fp/fixsfdi.c: Likewise.
	* soft-fp/fixsfsi.c: Likewise.
	* soft-fp/fixtfdi.c: Likewise.
	* soft-fp/fixtfsi.c: Likewise.
	* soft-fp/fixunsdfdi.c: Likewise.
	* soft-fp/fixunsdfsi.c: Likewise.
	* soft-fp/fixunssfdi.c: Likewise.
	* soft-fp/fixunssfsi.c: Likewise.
	* soft-fp/fixunstfdi.c: Likewise.
	* soft-fp/fixunstfsi.c: Likewise.
	* soft-fp/floatdidf.c: Likewise.
	* soft-fp/floatdisf.c: Likewise.
	* soft-fp/floatditf.c: Likewise.
	* soft-fp/floatsidf.c: Likewise.
	* soft-fp/floatsisf.c: Likewise.
	* soft-fp/floatsitf.c: Likewise.
	* soft-fp/floatundidf.c: Likewise.
	* soft-fp/floatundisf.c: Likewise.
	* soft-fp/floatunditf.c: Likewise.
	* soft-fp/floatunsidf.c: Likewise.
	* soft-fp/floatunsisf.c: Likewise.
	* soft-fp/floatunsitf.c: Likewise.
	* soft-fp/subdf3.c: Likewise.
	* soft-fp/subsf3.c: Likewise.
	* soft-fp/subtf3.c: Likewise.
	* soft-fp/truncdfsf2.c: Likewise.
	* soft-fp/trunctfdf2.c: Likewise.
	* soft-fp/trunctfsf2.c: Likewise.
	* sysdeps/alpha/soft-fp/ots_add.c: Likewise.
	* sysdeps/alpha/soft-fp/ots_cvtqux.c: Likewise.
	* sysdeps/alpha/soft-fp/ots_cvtqx.c: Likewise.
	* sysdeps/alpha/soft-fp/ots_cvttx.c: Likewise.
	* sysdeps/alpha/soft-fp/ots_cvtxq.c: Likewise.
	* sysdeps/alpha/soft-fp/ots_cvtxt.c: Likewise.
	* sysdeps/alpha/soft-fp/ots_nintxq.c: Likewise.
	* sysdeps/alpha/soft-fp/ots_sub.c: Likewise.
	* sysdeps/powerpc/soft-fp/q_add.c: Likewise.
	* sysdeps/powerpc/soft-fp/q_dtoq.c: Likewise.
	* sysdeps/powerpc/soft-fp/q_itoq.c: Likewise.
	* sysdeps/powerpc/soft-fp/q_lltoq.c: Likewise.
	* sysdeps/powerpc/soft-fp/q_qtod.c: Likewise.
	* sysdeps/powerpc/soft-fp/q_qtoi.c: Likewise.
	* sysdeps/powerpc/soft-fp/q_qtoll.c: Likewise.
	* sysdeps/powerpc/soft-fp/q_qtos.c: Likewise.
	* sysdeps/powerpc/soft-fp/q_qtou.c: Likewise.
	* sysdeps/powerpc/soft-fp/q_qtoull.c: Likewise.
	* sysdeps/powerpc/soft-fp/q_stoq.c: Likewise.
	* sysdeps/powerpc/soft-fp/q_sub.c: Likewise.
	* sysdeps/powerpc/soft-fp/q_ulltoq.c: Likewise.
	* sysdeps/powerpc/soft-fp/q_utoq.c: Likewise.
	* sysdeps/sparc/sparc32/soft-fp/q_add.c: Likewise.
	* sysdeps/sparc/sparc32/soft-fp/q_dtoq.c: Likewise.
	* sysdeps/sparc/sparc32/soft-fp/q_itoq.c: Likewise.
	* sysdeps/sparc/sparc32/soft-fp/q_lltoq.c: Likewise.
	* sysdeps/sparc/sparc32/soft-fp/q_qtod.c: Likewise.
	* sysdeps/sparc/sparc32/soft-fp/q_qtoi.c: Likewise.
	* sysdeps/sparc/sparc32/soft-fp/q_qtoll.c: Likewise.
	* sysdeps/sparc/sparc32/soft-fp/q_qtos.c: Likewise.
	* sysdeps/sparc/sparc32/soft-fp/q_qtou.c: Likewise.
	* sysdeps/sparc/sparc32/soft-fp/q_qtoull.c: Likewise.
	* sysdeps/sparc/sparc32/soft-fp/q_stoq.c: Likewise.
	* sysdeps/sparc/sparc32/soft-fp/q_sub.c: Likewise.
	* sysdeps/sparc/sparc32/soft-fp/q_ulltoq.c: Likewise.
	* sysdeps/sparc/sparc32/soft-fp/q_utoq.c: Likewise.
	* sysdeps/sparc/sparc64/soft-fp/qp_add.c: Likewise.
	* sysdeps/sparc/sparc64/soft-fp/qp_dtoq.c: Likewise.
	* sysdeps/sparc/sparc64/soft-fp/qp_itoq.c: Likewise.
	* sysdeps/sparc/sparc64/soft-fp/qp_qtod.c: Likewise.
	* sysdeps/sparc/sparc64/soft-fp/qp_qtoi.c: Likewise.
	* sysdeps/sparc/sparc64/soft-fp/qp_qtos.c: Likewise.
	* sysdeps/sparc/sparc64/soft-fp/qp_qtoui.c: Likewise.
	* sysdeps/sparc/sparc64/soft-fp/qp_qtoux.c: Likewise.
	* sysdeps/sparc/sparc64/soft-fp/qp_qtox.c: Likewise.
	* sysdeps/sparc/sparc64/soft-fp/qp_stoq.c: Likewise.
	* sysdeps/sparc/sparc64/soft-fp/qp_sub.c: Likewise.
	* sysdeps/sparc/sparc64/soft-fp/qp_uitoq.c: Likewise.
	* sysdeps/sparc/sparc64/soft-fp/qp_uxtoq.c: Likewise.
	* sysdeps/sparc/sparc64/soft-fp/qp_xtoq.c: Likewise.
2006-02-25 01:29:59 +00:00
Roland McGrath
fea3f995bd * math/divtc3.c: New file.
* math/multc3.c: New file.
	* sysdeps/unix/sysv/linux/sparc/sparc32/Makefile
	[$(subdir) = math] (libm-routines): Add multc3, divtc3.

	* sysdeps/unix/sysv/linux/sparc/sparc32/fpu/Implies: New file.
	* sysdeps/sparc/sparc32/fpu/s_fabsl.c: Include math.h and
	math_ldbl_opt.h.
	(fabsl): Use long_double_symbol instead of weak_alias.
	* sysdeps/sparc/sparc32/fpu/s_fabs.c: Include math.h and
	math_ldbl_opt.h.
	[LONG_DOUBLE_COMPAT] (fabsl): Add compat_symbol.

2006-01-31  Martin Schwidefsky	<schwidefsky@de.ibm.com>
	    Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/unix/sysv/linux/s390/Implies: New file.
	* sysdeps/unix/sysv/linux/s390/fpu/Implies: New file.
	* sysdeps/unix/sysv/linux/s390/nldbl-abi.h: New file.
	* sysdeps/s390/fpu/bits/mathinline.h (signbitl, sqrtl): New inlines.
	* sysdeps/s390/bits/mathdef.h: New file.
	* sysdeps/s390/fpu/e_sqrtl.c: New file.
	* sysdeps/s390/s390-32/bits/wordsize.h (__LONG_DOUBLE_MATH_OPTIONAL,
	__NO_LONG_DOUBLE_MATH): Define.
	* sysdeps/s390/s390-64/bits/wordsize.h: Likewise.
	* sysdeps/s390/Implies: Add ieee754/ldbl-128.
	* sysdeps/s390/ldbl2mpn.c: File removed.
	* sysdeps/s390/fpu/libm-test-ulps: Updated.

2006-01-31  Roland McGrath  <roland@redhat.com>

	* sysdeps/alpha/fpu/bits/mathdef.h: Moved to ...
	* sysdeps/alpha/bits/mathdef.h: ... here.
	* sysdeps/i386/fpu/bits/mathdef.h: Moved to ...
	* sysdeps/i386/bits/mathdef.h: ... here.
	* sysdeps/mips/fpu/bits/mathdef.h: Moved to ...
	* sysdeps/mips/bits/mathdef.h: ... here.
	* sysdeps/m68k/fpu/bits/mathdef.h: Moved to ...
	* sysdeps/m68k/bits/mathdef.h: ... here.
	* sysdeps/powerpc/fpu/bits/mathdef.h: Moved to ...
	* sysdeps/powerpc/bits/mathdef.h: ... here.
	* sysdeps/sparc/fpu/bits/mathdef.h: Moved to ...
	* sysdeps/sparc/bits/mathdef.h: ... here.
	* sysdeps/ia64/fpu/bits/mathdef.h: Moved to ...
	* sysdeps/ia64/bits/mathdef.h: ... here.
	* sysdeps/sh/sh4/fpu/bits/mathdef.h: Moved to ...
	* sysdeps/sh/sh4/bits/mathdef.h: ... here.
	* sysdeps/x86_64/fpu/bits/mathdef.h: Moved to ...
	* sysdeps/x86_64/bits/mathdef.h: ... here.

2006-01-31  Jakub Jelinek  <jakub@redhat.com>
2006-02-01 03:02:06 +00:00
Roland McGrath
5241204980 * sysdeps/unix/sysv/linux/sparc/sparc32/nldbl-abi.h: New file.
* sysdeps/ieee754/ldbl-opt/math_ldbl_opt.h: #include <nldbl-abi.h>
	to define LONG_DOUBLE_COMPAT_VERSION.  Use that in place of
	NLDBL_VERSION.
	* sysdeps/ieee754/ldbl-opt/Versions: Include <nldbl-abi.h>.
	* sysdeps/unix/sysv/linux/sparc/sparc32/Versions: Revert last change.
2006-01-14 12:32:50 +00:00
Roland McGrath
c6251f036c * math/math.h [__NO_LONG_DOUBLE_MATH] (__nldbl_nexttowardf): New
prototype.
	(nexttowardf): Redirect to __nldbl_nexttowardf.
	(nexttoward): Redirect to nextafter.
	(__MATHDECL_2, __MATHDECL_1): Redirect *l functions to
	non-*l versions if __LONG_DOUBLE_MATH_OPTIONAL and
	__NO_LONG_DOUBLE_MATH.
	* math/complex.h (__MATHDECL_1): Likewise.
	* math/bits/mathcalls.h (nexttoward): Don't prototype if
	__LDBL_COMPAT.
	* misc/sys/cdefs.h: Include <bits/wordsize.h>.
	(__LDBL_COMPAT, __LDBL_REDIR1, __LDBL_REDIR, __LDBL_REDIR1_NTH,
	__LDBL_REDIR_NTH, __LDBL_REDIR_DECL): New macros.

	* libio/bits/stdio-ldbl.h: New file.
	* libio/Makefile (headers): Add it.
	* libio/stdio.h [__LDBL_COMPAT]: #include it.
	* libio/bits/libio-ldbl.h: New file.
	* libio/Makefile (headers): Add it.
	* libio/libio.h [__LDBL_COMPAT]: #include it.
	* libio/libioP.h: Include <math_ldbl_opt.h>.
	* include/wchar.h (__fwprintf, __vfwprintf): Fix commented out
	attribute.
	(__vfwprintf_chk): New prototype.  Add libc_hidden_proto.
	* wcsmbs/bits/wchar-ldbl.h: New file.
	* wcsmbs/Makefile (headers): Add it.
	* wcsmbs/wchar.h [__LDBL_COMPAT]: #include it.
	* wcsmbs/bits/wchar2.h (__vswprintf_alias): Removed.
	(vswprintf): Define as a macro rather than inline function.
	* stdio-common/bits/printf-ldbl.h: New file.
	* stdio-common/Makefile (headers): Add it.
	* stdio-common/printf.h [__LDBL_COMPAT]: #include it.
	* libio/fwprintf.c: Include libioP.h.
	(fwprintf): Use ldbl_weak_alias instead of weak_alias.
	* libio/fwscanf.c: Include libioP.h.
	(fwscanf): Rename to __fwscanf and add ldbl_strong_alias.
	* libio/iovdprintf.c (vdprintf): Use ldbl_weak_alias instead of
	weak_alias.
	* libio/iovsprintf.c (_IO_vsprintf): Rename to __IO_vsprintf,
	add ldbl_strong_alias and use INTDEF2 instead of INTDEF.
	(vsprintf): Use ldbl_weak_alias instead of weak_alias.
	* libio/iovsscanf.c (__vsscanf, vsscanf): Use ldbl_weak_alias
	instead of weak_alias.
	* libio/iovswscanf.c (vswscanf): Rename to __vswscanf,
	add ldbl_strong_alias and use ldbl_hidden_def instead of
	libc_hidden_def.
	* libio/obprintf.c (obstack_printf, obstack_vprintf): Use
	ldbl_weak_alias instead of weak_alias.
	* libio/swprintf.c: Include libioP.h.
	(swprintf): Rename to __swprintf and add ldbl_strong_alias.
	* libio/swscanf.c: Include libioP.h.
	(swscanf): Rename to __swscanf and add ldbl_strong_alias.
	* libio/vasprintf.c (vasprintf): Use ldbl_weak_alias instead of
	weak_alias.
	* libio/vscanf.c (vscanf): Use ldbl_weak_alias instead of
	weak_alias.
	* libio/vsnprintf.c (__vsnprintf, vsnprintf): Use ldbl_weak_alias
	instead of weak_alias.
	* libio/vswprintf.c (__vswprintf): Remove alias.
	(vswprintf): Use ldbl_weak_alias instead of weak_alias.
	* libio/vwprintf.c: Include libioP.h.
	(vwprintf): Rename to __vwprintf and add ldbl_strong_alias.
	* libio/vwscanf.c (vwscanf): Rename to __vwscanf and add
	ldbl_strong_alias.
	* libio/wprintf.c: Include libioP.h.
	(wprintf): Rename to __wprintf and add ldbl_strong_alias.
	* libio/wscanf.c: Include libioP.h.
	(wscanf): Rename to __wscanf and add ldbl_strong_alias.
	* stdio-common/asprintf.c (__asprintf): Rename to ___asprintf, add
	ldbl_strong_alias and use INTDEF2 instead of INTDEF.
	(asprintf): Use ldbl_weak_alias instead of weak_alias.
	* stdio-common/dprintf.c (dprintf): Rename to __dprintf, add
	ldbl_strong_alias and use ldbl_hidden_def instead of
	libc_hidden_def.
	* stdio-common/fprintf.c: Include libioP.h.
	(fprintf): Rename to __fprintf, add ldbl_strong_alias and
	use ldbl_hidden_def instead of libc_hidden_def.
	(_IO_fprintf): Use ldbl_weak_alias instead of weak_alias.
	* stdio-common/fscanf.c: Include libioP.h.
	(fscanf): Rename to __fscanf and add ldbl_strong_alias.
	* stdio-common/printf.c: Include libioP.h.
	(printf): Rename to __printf and add ldbl_strong_alias.
	(_IO_printf): Use ldbl_strong_alias instead of strong_alias.
	* stdio-common/printf_fp.c (__printf_fp): Rename to __printf_fp, add
	ldbl_strong_alias and use ldbl_hidden_def instead of
	libc_hidden_def.
	* stdio-common/printf_size.c (printf_size): Rename to __printf_size
	and add ldbl_strong_alias.
	* stdio-common/scanf.c (scanf): Rename to __scanf and add
	ldbl_strong_alias.
	* stdio-common/snprintf.c (snprintf): Use ldbl_weak_alias instead of
	weak_alias.
	* stdio-common/sprintf.c (sprintf): Rename to __sprintf, add
	ldbl_strong_alias and use ldbl_hidden_def instead of
	libc_hidden_def.
	(_IO_sprintf): Use ldbl_strong_alias instead of strong_alias.
	* stdio-common/sscanf.c: Include libioP.h instead of iolibio.h.
	(sscanf): Rename to __sscanf and add ldbl_strong_alias.
	* stdio-common/vfprintf.c (vfprintf): Define to
	_IO_vfprintf_internal.  Use ldbl_strong_alias instead.  Use
	ldbl_hidden_def instead of libc_hidden_def.
	(_IO_vfprintf_internal): Clear is_long_double if __ldbl_is_dbl,
	handle the argument as double if it is non-zero.
	(vfwprintf): Use ldbl_weak_alias instead of weak_alias.
	(_IO_vfprintf): Add ldbl_strong_alias.
	* stdio-common/vfscanf.c (_IO_vfscanf): Rename to
	_IO_vfscanf_internal, don't use strtold if __ldbl_is_dbl, add
	ldbl_strong_alias.
	(vfwscanf): Use ldbl_weak_alias instead of weak_alias.
	(__vfscanf): Rename to ___vfscanf, add ldbl_strong_alias and
	use ldbl_hidden_def instead of libc_hidden_def.
	(vfscanf): Use ldbl_weak_alias instead of weak_alias.
	* stdio-common/vprintf.c: Include libioP.h.
	(vprintf): Rename to __vprintf and add ldbl_strong_alias.
	* debug/fprintf_chk.c (__fprintf_chk): Rename to ___fprintf_chk
	and add ldbl_strong_alias.
	* debug/printf_chk.c (__printf_chk): Rename to ___printf_chk
	and add ldbl_strong_alias.
	* debug/snprintf_chk.c: Include libioP.h.
	(__snprintf_chk): Rename to ___snprintf_chk and add ldbl_strong_alias.
	* debug/sprintf_chk.c: Include libioP.h.
	(__sprintf_chk): Rename to ___sprintf_chk and add ldbl_strong_alias.
	* debug/vfprintf_chk.c (__vfprintf_chk): Rename to ___vfprintf_chk,
	add ldbl_strong_alias and use ldbl_hidden_def instead of
	libc_hidden_def.
	* debug/vfwprintf_chk.c (__vfwprintf_chk): Add libc_hidden_def.
	* debug/vprintf_chk.c (__vprintf_chk): Rename to ___vprintf_chk
	and add ldbl_strong_alias.
	* debug/vsnprintf_chk.c (__vsnprintf_chk): Rename to ___vsnprintf_chk,
	add ldbl_strong_alias and use ldbl_hidden_def instead of
	libc_hidden_def.
	* debug/vsprintf_chk.c (__vsprintf_chk): Rename to ___vsprintf_chk,
	add ldbl_strong_alias and use ldbl_hidden_def instead of
	libc_hidden_def.

	* stdlib/stdlib.h (strtold): Don't define inline if [!__LDBL_COMPAT].
	* wcsmbs/wchar.h (wcstold): Likewise.
	* stdlib/strtod_l.c: Include math_ldbl_opt.h.
	(____STRTOF_INTERNAL): Define.
	(INTERNAL (__STRTOF)): Rename to ____STRTOF_INTERNAL.
	(__STRTOF): Call ____STRTOF_INTERNAL instead.
	[LONG_DOUBLE_COMPAT] (strtold_l, wcstold_l, __strtold_l, __wcstold_l):
	Add compatibility symbols.
	* stdlib/strtod.c: Include math_ldbl_opt.h.
	[LONG_DOUBLE_COMPAT] (strtold, wcstold, __strtold_internal,
	__wcstold_internal): Add compatibility symbols.
	* stdlib/strtold.c: Include bits/wordsize.h, wchar.h.
	(NEW, NEW1): Define.
	(__new_strtold, __new_wcstold): New prototypes.
	(____new_strtold_internal, ____new_wcstold_internal): Likewise.
	Add libc_hidden_proto.
	(STRTOF): Define to NEW (*told).
	[__LONG_DOUBLE_MATH_OPTIONAL] (wcstold, strtold): Add
	long_double_symbol.
	[__LONG_DOUBLE_MATH_OPTIONAL] (__wcstold_internal,
	__strtold_internal): Likewise. Add libc_hidden_ver.

	* stdlib/bits/stdlib-ldbl.h: New file.
	* stdlib/Makefile (headers): Add it.
	* stdlib/stdlib.h [__LDBL_COMPAT]: #include it.
	* include/stdlib.h (ecvt_r, fcvt_r, qecvt_r, qfcvt_r): Remove
	libc_hidden_proto.
	(__ecvt, __fcvt, __gcvt, __ecvt_r, __fcvt_r, __qecvt, __qfcvt,
	__qgcvt, __qecvt_r, __qfcvt_r): New prototypes.
	* misc/efgcvt_r.c: Include shlib-compat.h.
	(LONG_DOUBLE_CVT): Define.
	(__APPEND, __APPEND2): Define.
	(*fcvt_r): Use __APPEND instead of APPEND.  Remove libc_hidden_def.
	(*ecvt_r): Likewise.
	(cvt_symbol): Define.  Use it on fcvt_r and ecvt_r.
	* misc/efgcvt.c: Include shlib-compat.h.
	(LONG_DOUBLE_CVT): Define.
	(__APPEND, __APPEND2): Define.
	(fcvt): Use __APPEND instead of APPEND.  Remove libc_hidden_def.
	(ecvt, gcvt): Likewise.
	(cvt_symbol): Define.  Use it on fcvt, ecvt and gcvt.

	* stdlib/bits/monetary-ldbl.h: New file.
	* stdlib/Makefile (headers): Add it.
	* stdlib/monetary.h [__LDBL_COMPAT]: #include it.
	* stdlib/strfmon.c: Include math_ldbl_opt.h.
	(strfmon): Rename to __strfmon and add ldbl_strong_alias.
	* stdlib/strfmon_l.c: Remove all traces of [!USE_IN_LIBIO].
	(__vstrfmon_l): Don't set is_long_double if __ldbl_is_dbl.
	(__strfmon_l): Rename to ___strfmon_l and add ldbl_strong_alias.
	(strfmon_l): Use ldbl_weak_alias instead of weak_alias.

	* misc/bits/syslog-ldbl.h: New file.
	* misc/Makefile (headers): Add it.
	* misc/sys/syslog.h [__LDBL_COMPAT]: #include it.
	* misc/syslog.c: Include math_ldbl_opt.h.
	(syslog): Rename to __syslog and add ldbl_strong_alias,
	use ldbl_hidden_def instead of libc_hidden_def.
	(vsyslog): Rename to __vsyslog and add ldbl_strong_alias,
	use ldbl_hidden_def instead of libc_hidden_def.

	* sysdeps/generic/math_ldbl_opt.h: New file.
	* math/w_j1l.c (j1l, y1l): Rename to __ prefixed variants.
	Add weak_alias.
	* math/w_j0l.c (j0l, y0l): Likewise.
	* math/w_jnl.c (jnl, ynl): Likewise.
	* sysdeps/ieee754/ldbl-96/s_nexttoward.c
	(__nexttowardl): Remove strong_alias.
	(nexttowardl): Remove weak_alias.
	* sysdeps/ieee754/ldbl-96/s_erfl.c
	(__erfl, __erfcl): Remove strong_alias.
	(erfl, erfcl): Remove weak_alias.

	* sysdeps/ieee754/ldbl-64-128/s_asinhl.c: New file.
	* sysdeps/ieee754/ldbl-64-128/s_atanl.c: New file.
	* sysdeps/ieee754/ldbl-64-128/s_cbrtl.c: New file.
	* sysdeps/ieee754/ldbl-64-128/s_ceill.c: New file.
	* sysdeps/ieee754/ldbl-64-128/s_copysignl.c: New file.
	* sysdeps/ieee754/ldbl-64-128/s_cosl.c: New file.
	* sysdeps/ieee754/ldbl-64-128/s_erfl.c: New file.
	* sysdeps/ieee754/ldbl-64-128/s_expm1l.c: New file.
	* sysdeps/ieee754/ldbl-64-128/s_fabsl.c: New file.
	* sysdeps/ieee754/ldbl-64-128/s_finitel.c: New file.
	* sysdeps/ieee754/ldbl-64-128/s_floorl.c: New file.
	* sysdeps/ieee754/ldbl-64-128/s_fpclassifyl.c: New file.
	* sysdeps/ieee754/ldbl-64-128/s_frexpl.c: New file.
	* sysdeps/ieee754/ldbl-64-128/s_ilogbl.c: New file.
	* sysdeps/ieee754/ldbl-64-128/s_isinfl.c: New file.
	* sysdeps/ieee754/ldbl-64-128/s_isnanl.c: New file.
	* sysdeps/ieee754/ldbl-64-128/s_llrintl.c: New file.
	* sysdeps/ieee754/ldbl-64-128/s_llroundl.c: New file.
	* sysdeps/ieee754/ldbl-64-128/s_log1pl.c: New file.
	* sysdeps/ieee754/ldbl-64-128/s_logbl.c: New file.
	* sysdeps/ieee754/ldbl-64-128/s_lrintl.c: New file.
	* sysdeps/ieee754/ldbl-64-128/s_lroundl.c: New file.
	* sysdeps/ieee754/ldbl-64-128/s_modfl.c: New file.
	* sysdeps/ieee754/ldbl-64-128/s_nearbyintl.c: New file.
	* sysdeps/ieee754/ldbl-64-128/s_nextafterl.c: New file.
	* sysdeps/ieee754/ldbl-64-128/s_nexttoward.c: New file.
	* sysdeps/ieee754/ldbl-64-128/s_nexttowardf.c: New file.
	* sysdeps/ieee754/ldbl-64-128/s_nexttowardfd.c: New file.
	* sysdeps/ieee754/ldbl-64-128/s_remquol.c: New file.
	* sysdeps/ieee754/ldbl-64-128/s_rintl.c: New file.
	* sysdeps/ieee754/ldbl-64-128/s_roundl.c: New file.
	* sysdeps/ieee754/ldbl-64-128/s_scalblnl.c: New file.
	* sysdeps/ieee754/ldbl-64-128/s_scalbnl.c: New file.
	* sysdeps/ieee754/ldbl-64-128/s_signbitl.c: New file.
	* sysdeps/ieee754/ldbl-64-128/s_sincosl.c: New file.
	* sysdeps/ieee754/ldbl-64-128/s_sinl.c: New file.
	* sysdeps/ieee754/ldbl-64-128/s_tanhl.c: New file.
	* sysdeps/ieee754/ldbl-64-128/s_tanl.c: New file.
	* sysdeps/ieee754/ldbl-64-128/s_truncl.c: New file.
	* sysdeps/ieee754/ldbl-64-128/strtold_l.c: New file.
	* sysdeps/ieee754/ldbl-64-128/w_expl.c: New file.
	* sysdeps/ieee754/ldbl-opt/configure.in: New file.
	* sysdeps/ieee754/ldbl-opt/configure: New file.
	* sysdeps/ieee754/ldbl-opt/Makefile: New file.
	* sysdeps/ieee754/ldbl-opt/Versions: New file.
	* sysdeps/ieee754/ldbl-opt/cabs.c: New file.
	* sysdeps/ieee754/ldbl-opt/cabsl.c: New file.
	* sysdeps/ieee754/ldbl-opt/carg.c: New file.
	* sysdeps/ieee754/ldbl-opt/cargl.c: New file.
	* sysdeps/ieee754/ldbl-opt/cimag.c: New file.
	* sysdeps/ieee754/ldbl-opt/cimagl.c: New file.
	* sysdeps/ieee754/ldbl-opt/conj.c: New file.
	* sysdeps/ieee754/ldbl-opt/conjl.c: New file.
	* sysdeps/ieee754/ldbl-opt/creal.c: New file.
	* sysdeps/ieee754/ldbl-opt/creall.c: New file.
	* sysdeps/ieee754/ldbl-opt/math_ldbl_opt.c: New file.
	* sysdeps/ieee754/ldbl-opt/math_ldbl_opt.h: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-acos.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-acosh.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-asin.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-asinh.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-asprintf.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-atan.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-atan2.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-atanh.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-cabs.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-cacos.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-cacosh.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-carg.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-casin.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-casinh.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-catan.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-catanh.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-cbrt.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-ccos.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-ccosh.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-ceil.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-cexp.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-cimag.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-clog.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-clog10.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-compat.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-compat.h: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-conj.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-copysign.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-cos.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-cosh.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-cpow.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-cproj.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-creal.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-csin.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-csinh.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-csqrt.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-ctan.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-ctanh.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-dprintf.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-drem.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-erf.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-erfc.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-exp.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-exp10.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-exp2.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-expm1.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-fabs.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-fdim.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-finite.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-floor.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-fma.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-fmax.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-fmin.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-fmod.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-fprintf.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-fprintf_chk.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-frexp.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-fscanf.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-fwprintf.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-fwprintf_chk.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-fwscanf.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-gamma.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-hypot.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-ilogb.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-iovfscanf.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-isinf.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-isnan.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-j0.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-j1.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-jn.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-ldexp.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-lgamma.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-lgamma_r.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-llrint.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-llround.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-log.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-log10.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-log1p.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-log2.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-logb.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-lrint.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-lround.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-modf.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-nan.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-nearbyint.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-nextafter.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-nexttoward.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-nexttowardf.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-obstack_printf.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-obstack_vprintf.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-pow.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-pow10.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-printf.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-printf_chk.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-printf_fp.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-printf_size.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-qecvt.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-qecvt_r.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-qfcvt.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-qfcvt_r.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-qgcvt.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-remainder.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-remquo.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-rint.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-round.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-scalb.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-scalbln.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-scalbn.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-scanf.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-signbit.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-significand.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-sin.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-sincos.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-sinh.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-snprintf.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-snprintf_chk.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-sprintf.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-sprintf_chk.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-sqrt.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-sscanf.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-strfmon.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-strfmon_l.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-strtold.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-strtold_l.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-strtoldint.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-swprintf.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-swprintf_chk.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-swscanf.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-syslog.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-syslog_chk.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-tan.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-tanh.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-tgamma.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-trunc.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-vasprintf.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-vdprintf.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-vfprintf.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-vfprintf_chk.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-vfscanf.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-vfwprintf.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-vfwprintf_chk.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-vfwscanf.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-vprintf.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-vprintf_chk.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-vscanf.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-vsnprintf.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-vsnprintf_chk.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-vsprintf.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-vsprintf_chk.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-vsscanf.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-vswprintf.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-vswprintf_chk.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-vswscanf.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-vsyslog.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-vsyslog_chk.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-vwprintf.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-vwprintf_chk.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-vwscanf.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-wcstold.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-wcstold_l.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-wcstoldint.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-wprintf.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-wprintf_chk.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-wscanf.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-y0.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-y1.c: New file.
	* sysdeps/ieee754/ldbl-opt/nldbl-yn.c: New file.
	* sysdeps/ieee754/ldbl-opt/s_asinh.c: New file.
	* sysdeps/ieee754/ldbl-opt/s_atan.c: New file.
	* sysdeps/ieee754/ldbl-opt/s_cacos.c: New file.
	* sysdeps/ieee754/ldbl-opt/s_cacosh.c: New file.
	* sysdeps/ieee754/ldbl-opt/s_cacoshl.c: New file.
	* sysdeps/ieee754/ldbl-opt/s_cacosl.c: New file.
	* sysdeps/ieee754/ldbl-opt/s_casin.c: New file.
	* sysdeps/ieee754/ldbl-opt/s_casinh.c: New file.
	* sysdeps/ieee754/ldbl-opt/s_casinhl.c: New file.
	* sysdeps/ieee754/ldbl-opt/s_casinl.c: New file.
	* sysdeps/ieee754/ldbl-opt/s_catan.c: New file.
	* sysdeps/ieee754/ldbl-opt/s_catanh.c: New file.
	* sysdeps/ieee754/ldbl-opt/s_catanhl.c: New file.
	* sysdeps/ieee754/ldbl-opt/s_catanl.c: New file.
	* sysdeps/ieee754/ldbl-opt/s_cbrt.c: New file.
	* sysdeps/ieee754/ldbl-opt/s_ccos.c: New file.
	* sysdeps/ieee754/ldbl-opt/s_ccosh.c: New file.
	* sysdeps/ieee754/ldbl-opt/s_ccoshl.c: New file.
	* sysdeps/ieee754/ldbl-opt/s_ccosl.c: New file.
	* sysdeps/ieee754/ldbl-opt/s_ceil.c: New file.
	* sysdeps/ieee754/ldbl-opt/s_cexp.c: New file.
	* sysdeps/ieee754/ldbl-opt/s_cexpl.c: New file.
	* sysdeps/ieee754/ldbl-opt/s_clog.c: New file.
	* sysdeps/ieee754/ldbl-opt/s_clog10.c: New file.
	* sysdeps/ieee754/ldbl-opt/s_clog10l.c: New file.
	* sysdeps/ieee754/ldbl-opt/s_clogl.c: New file.
	* sysdeps/ieee754/ldbl-opt/s_copysign.c: New file.
	* sysdeps/ieee754/ldbl-opt/s_cpow.c: New file.
	* sysdeps/ieee754/ldbl-opt/s_cpowl.c: New file.
	* sysdeps/ieee754/ldbl-opt/s_cproj.c: New file.
	* sysdeps/ieee754/ldbl-opt/s_cprojl.c: New file.
	* sysdeps/ieee754/ldbl-opt/s_csin.c: New file.
	* sysdeps/ieee754/ldbl-opt/s_csinh.c: New file.
	* sysdeps/ieee754/ldbl-opt/s_csinhl.c: New file.
	* sysdeps/ieee754/ldbl-opt/s_csinl.c: New file.
	* sysdeps/ieee754/ldbl-opt/s_csqrt.c: New file.
	* sysdeps/ieee754/ldbl-opt/s_csqrtl.c: New file.
	* sysdeps/ieee754/ldbl-opt/s_ctan.c: New file.
	* sysdeps/ieee754/ldbl-opt/s_ctanh.c: New file.
	* sysdeps/ieee754/ldbl-opt/s_ctanhl.c: New file.
	* sysdeps/ieee754/ldbl-opt/s_ctanl.c: New file.
	* sysdeps/ieee754/ldbl-opt/s_erf.c: New file.
	* sysdeps/ieee754/ldbl-opt/s_expm1.c: New file.
	* sysdeps/ieee754/ldbl-opt/s_fabs.c: New file.
	* sysdeps/ieee754/ldbl-opt/s_fdim.c: New file.
	* sysdeps/ieee754/ldbl-opt/s_fdiml.c: New file.
	* sysdeps/ieee754/ldbl-opt/s_finite.c: New file.
	* sysdeps/ieee754/ldbl-opt/s_floor.c: New file.
	* sysdeps/ieee754/ldbl-opt/s_fma.c: New file.
	* sysdeps/ieee754/ldbl-opt/s_fmal.c: New file.
	* sysdeps/ieee754/ldbl-opt/s_fmax.c: New file.
	* sysdeps/ieee754/ldbl-opt/s_fmaxl.c: New file.
	* sysdeps/ieee754/ldbl-opt/s_fmin.c: New file.
	* sysdeps/ieee754/ldbl-opt/s_fminl.c: New file.
	* sysdeps/ieee754/ldbl-opt/s_frexp.c: New file.
	* sysdeps/ieee754/ldbl-opt/s_ilogb.c: New file.
	* sysdeps/ieee754/ldbl-opt/s_isinf.c: New file.
	* sysdeps/ieee754/ldbl-opt/s_isnan.c: New file.
	* sysdeps/ieee754/ldbl-opt/s_ldexp.c: New file.
	* sysdeps/ieee754/ldbl-opt/s_ldexpl.c: New file.
	* sysdeps/ieee754/ldbl-opt/s_llrint.c: New file.
	* sysdeps/ieee754/ldbl-opt/s_llround.c: New file.
	* sysdeps/ieee754/ldbl-opt/s_log1p.c: New file.
	* sysdeps/ieee754/ldbl-opt/s_logb.c: New file.
	* sysdeps/ieee754/ldbl-opt/s_lrint.c: New file.
	* sysdeps/ieee754/ldbl-opt/s_lround.c: New file.
	* sysdeps/ieee754/ldbl-opt/s_modf.c: New file.
	* sysdeps/ieee754/ldbl-opt/s_nan.c: New file.
	* sysdeps/ieee754/ldbl-opt/s_nanl.c: New file.
	* sysdeps/ieee754/ldbl-opt/s_nearbyint.c: New file.
	* sysdeps/ieee754/ldbl-opt/s_nextafter.c: New file.
	* sysdeps/ieee754/ldbl-opt/s_remquo.c: New file.
	* sysdeps/ieee754/ldbl-opt/s_rint.c: New file.
	* sysdeps/ieee754/ldbl-opt/s_round.c: New file.
	* sysdeps/ieee754/ldbl-opt/s_scalbln.c: New file.
	* sysdeps/ieee754/ldbl-opt/s_scalbn.c: New file.
	* sysdeps/ieee754/ldbl-opt/s_significand.c: New file.
	* sysdeps/ieee754/ldbl-opt/s_significandl.c: New file.
	* sysdeps/ieee754/ldbl-opt/s_sin.c: New file.
	* sysdeps/ieee754/ldbl-opt/s_sincos.c: New file.
	* sysdeps/ieee754/ldbl-opt/s_tan.c: New file.
	* sysdeps/ieee754/ldbl-opt/s_tanh.c: New file.
	* sysdeps/ieee754/ldbl-opt/s_trunc.c: New file.
	* sysdeps/ieee754/ldbl-opt/w_acos.c: New file.
	* sysdeps/ieee754/ldbl-opt/w_acosh.c: New file.
	* sysdeps/ieee754/ldbl-opt/w_acoshl.c: New file.
	* sysdeps/ieee754/ldbl-opt/w_acosl.c: New file.
	* sysdeps/ieee754/ldbl-opt/w_asin.c: New file.
	* sysdeps/ieee754/ldbl-opt/w_asinl.c: New file.
	* sysdeps/ieee754/ldbl-opt/w_atan2.c: New file.
	* sysdeps/ieee754/ldbl-opt/w_atan2l.c: New file.
	* sysdeps/ieee754/ldbl-opt/w_atanh.c: New file.
	* sysdeps/ieee754/ldbl-opt/w_atanhl.c: New file.
	* sysdeps/ieee754/ldbl-opt/w_cosh.c: New file.
	* sysdeps/ieee754/ldbl-opt/w_coshl.c: New file.
	* sysdeps/ieee754/ldbl-opt/w_drem.c: New file.
	* sysdeps/ieee754/ldbl-opt/w_dreml.c: New file.
	* sysdeps/ieee754/ldbl-opt/w_exp.c: New file.
	* sysdeps/ieee754/ldbl-opt/w_exp10.c: New file.
	* sysdeps/ieee754/ldbl-opt/w_exp10l.c: New file.
	* sysdeps/ieee754/ldbl-opt/w_fmod.c: New file.
	* sysdeps/ieee754/ldbl-opt/w_fmodl.c: New file.
	* sysdeps/ieee754/ldbl-opt/w_hypot.c: New file.
	* sysdeps/ieee754/ldbl-opt/w_hypotl.c: New file.
	* sysdeps/ieee754/ldbl-opt/w_j0.c: New file.
	* sysdeps/ieee754/ldbl-opt/w_j0l.c: New file.
	* sysdeps/ieee754/ldbl-opt/w_j1.c: New file.
	* sysdeps/ieee754/ldbl-opt/w_j1l.c: New file.
	* sysdeps/ieee754/ldbl-opt/w_jn.c: New file.
	* sysdeps/ieee754/ldbl-opt/w_jnl.c: New file.
	* sysdeps/ieee754/ldbl-opt/w_lgamma.c: New file.
	* sysdeps/ieee754/ldbl-opt/w_lgamma_r.c: New file.
	* sysdeps/ieee754/ldbl-opt/w_lgammal.c: New file.
	* sysdeps/ieee754/ldbl-opt/w_lgammal_r.c: New file.
	* sysdeps/ieee754/ldbl-opt/w_log.c: New file.
	* sysdeps/ieee754/ldbl-opt/w_log10.c: New file.
	* sysdeps/ieee754/ldbl-opt/w_log10l.c: New file.
	* sysdeps/ieee754/ldbl-opt/w_log2.c: New file.
	* sysdeps/ieee754/ldbl-opt/w_log2l.c: New file.
	* sysdeps/ieee754/ldbl-opt/w_logl.c: New file.
	* sysdeps/ieee754/ldbl-opt/w_pow.c: New file.
	* sysdeps/ieee754/ldbl-opt/w_powl.c: New file.
	* sysdeps/ieee754/ldbl-opt/w_remainder.c: New file.
	* sysdeps/ieee754/ldbl-opt/w_remainderl.c: New file.
	* sysdeps/ieee754/ldbl-opt/w_scalb.c: New file.
	* sysdeps/ieee754/ldbl-opt/w_scalbl.c: New file.
	* sysdeps/ieee754/ldbl-opt/w_sinh.c: New file.
	* sysdeps/ieee754/ldbl-opt/w_sinhl.c: New file.
	* sysdeps/ieee754/ldbl-opt/w_sqrt.c: New file.
	* sysdeps/ieee754/ldbl-opt/w_sqrtl.c: New file.
	* sysdeps/ieee754/ldbl-opt/w_tgamma.c: New file.
	* sysdeps/ieee754/ldbl-opt/w_tgammal.c: New file.

	* sysdeps/unix/sysv/linux/sparc/bits/wordsize.h: New file.
	* sysdeps/unix/sysv/linux/sparc/sparc32/Implies: New file.
	* sysdeps/sparc/sparc32/Implies: Move ldbl-128 first and flt-32
	after dbl-64.
	* sysdeps/unix/sysv/linux/sparc/sparc32/Versions (NLDBL_VERSION):
	%define this to to GLIBC_2.4.
	* sysdeps/sparc/sparc32/fpu/e_sqrtl.c: New file.
	* sysdeps/sparc/sparc32/fpu/s_fabs.c: New file.
	* sysdeps/sparc/sparc32/fpu/s_fabsf.S: New file.
	* sysdeps/sparc/sparc32/fpu/s_fabsl.c: New file.
	* sysdeps/sparc/sparc32/soft-fp/q_qtoui.c: Removed.
	* sysdeps/sparc/sparc32/soft-fp/q_qtoux.c: Removed.
	* sysdeps/sparc/sparc32/soft-fp/q_qtox.c: Removed.
	* sysdeps/sparc/sparc32/soft-fp/q_uitoq.c: Removed.
	* sysdeps/sparc/sparc32/soft-fp/q_uxtoq.c: Removed.
	* sysdeps/sparc/sparc32/soft-fp/q_xtoq.c: Removed.
	* sysdeps/sparc/sparc32/soft-fp/q_lltoq.c: New file.
	* sysdeps/sparc/sparc32/soft-fp/q_qtoll.c: New file.
	* sysdeps/sparc/sparc32/soft-fp/q_qtou.c: New file.
	* sysdeps/sparc/sparc32/soft-fp/q_qtoull.c: New file.
	* sysdeps/sparc/sparc32/soft-fp/q_ulltoq.c: New file.
	* sysdeps/sparc/sparc32/soft-fp/q_utoq.c: New file.
	* sysdeps/sparc/sparc32/soft-fp/Versions: New file.
	* sysdeps/sparc/fpu/bits/mathinline.h (__unordered_cmp,
	__unordered_v9cmp): Define differently depending on
	-m32 -mlong-double-{64,128}.
	(__signbitl, sqrtl, __ieee754_sqrtl): New inlines.
	* sysdeps/sparc/fpu/bits/mathdef.h (__NO_LONG_DOUBLE_MATH): Remove.
	* sysdeps/sparc/sparc32/soft-fp/Makefile (sparc32-quad-routines):
	Set.
	(sysdep-routines): Add sparc32-quad-routines.
	* sysdeps/sparc/sparc32/soft-fp/sfp-machine.h: Include stdlib.h.
	(FP_HANDLE_EXCEPTIONS): Call ___Q_simulate_exceptions as a normal
	function.
	* sysdeps/sparc/sparc32/soft-fp/q_sqrt.c (__ieee754_sqrtl): New
	alias to _Q_sqrt.
	* sysdeps/sparc/sparc32/soft-fp/q_div.c (_Q_div): Fix a typo.
	* sysdeps/sparc/sparc64/soft-fp/sfp-machine.h: Include stdlib.h.
	* sysdeps/sparc/sparc32/fpu/libm-test-ulps: Update.

	* libio/libio.h (_IO_vfscanf, _IO_vfprintf): Remove __THROW.
	(_IO_vfwscanf, _IO_vfwprintf): Likewise.
	* libio/libioP.h (_IO_vdprintf): Likewise.
2006-01-14 12:10:44 +00:00
Roland McGrath
6ddd37a4b3 * sysdeps/unix/sysv/linux/alpha/adjtime.c: Use <> instead of "" in
#include for kernel-features.h.
	* sysdeps/unix/sysv/linux/alpha/dl-sysdep.c: Likewise.
	* sysdeps/unix/sysv/linux/alpha/fraiseexcpt.c: Likewise.
	* sysdeps/unix/sysv/linux/alpha/getitimer.S: Likewise.
	* sysdeps/unix/sysv/linux/alpha/getrusage.S: Likewise.
	* sysdeps/unix/sysv/linux/alpha/gettimeofday.S: Likewise.
	* sysdeps/unix/sysv/linux/alpha/msgctl.c: Likewise.
	* sysdeps/unix/sysv/linux/alpha/select.S: Likewise.
	* sysdeps/unix/sysv/linux/alpha/semctl.c: Likewise.
	* sysdeps/unix/sysv/linux/alpha/setitimer.S: Likewise.
	* sysdeps/unix/sysv/linux/alpha/settimeofday.S: Likewise.
	* sysdeps/unix/sysv/linux/alpha/shmctl.c: Likewise.
	* sysdeps/unix/sysv/linux/alpha/utimes.S: Likewise.
	* sysdeps/unix/sysv/linux/alpha/wait4.S: Likewise.
	* sysdeps/unix/sysv/linux/alpha/xstatconv.h: Likewise.
	* sysdeps/unix/sysv/linux/check_pf.c: Likewise.
	* sysdeps/unix/sysv/linux/clock_getcpuclockid.c: Likewise.
	* sysdeps/unix/sysv/linux/clock_getres.c: Likewise.
	* sysdeps/unix/sysv/linux/clock_gettime.c: Likewise.
	* sysdeps/unix/sysv/linux/clock_nanosleep.c: Likewise.
	* sysdeps/unix/sysv/linux/clock_settime.c: Likewise.
	* sysdeps/unix/sysv/linux/dl-execstack.c: Likewise.
	* sysdeps/unix/sysv/linux/dl-osinfo.h: Likewise.
	* sysdeps/unix/sysv/linux/dl-sysdep.c: Likewise.
	* sysdeps/unix/sysv/linux/fstatvfs64.c: Likewise.
	* sysdeps/unix/sysv/linux/ftruncate64.c: Likewise.
	* sysdeps/unix/sysv/linux/futimes.c: Likewise.
	* sysdeps/unix/sysv/linux/futimesat.c: Likewise.
	* sysdeps/unix/sysv/linux/fxstat64.c: Likewise.
	* sysdeps/unix/sysv/linux/fxstatat64.c: Likewise.
	* sysdeps/unix/sysv/linux/getcwd.c: Likewise.
	* sysdeps/unix/sysv/linux/getdents.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/chown.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/fchown.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/fchownat.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/fcntl.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/fxstat.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/fxstatat.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/getegid.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/geteuid.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/getgid.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/mmap.S: Likewise.
	* sysdeps/unix/sysv/linux/i386/mmap64.S: Likewise.
	* sysdeps/unix/sysv/linux/i386/msgctl.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/posix_fadvise64.S: Likewise.
	* sysdeps/unix/sysv/linux/i386/semctl.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/setegid.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/seteuid.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/setuid.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/shmctl.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/xstat.c: Likewise.
	* sysdeps/unix/sysv/linux/ifreq.c: Likewise.
	* sysdeps/unix/sysv/linux/ldsodefs.h: Likewise.
	* sysdeps/unix/sysv/linux/lxstat64.c: Likewise.
	* sysdeps/unix/sysv/linux/m68k/chown.c: Likewise.
	* sysdeps/unix/sysv/linux/m68k/fchownat.c: Likewise.
	* sysdeps/unix/sysv/linux/mips/ftruncate64.c: Likewise.
	* sysdeps/unix/sysv/linux/mips/sigaction.c: Likewise.
	* sysdeps/unix/sysv/linux/mips/truncate64.c: Likewise.
	* sysdeps/unix/sysv/linux/mmap64.c: Likewise.
	* sysdeps/unix/sysv/linux/msgctl.c: Likewise.
	* sysdeps/unix/sysv/linux/netlinkaccess.h: Likewise.
	* sysdeps/unix/sysv/linux/opendir.c: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/dl-sysdep.c: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/fe_nomask.c: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/ftruncate64.c: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/pread.c: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/pread64.c: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/pwrite.c: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/pwrite64.c: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/truncate64.c: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/fe_nomask.c: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/getcontext.S: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/makecontext.S: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/pread.c: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/pread64.c: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/pwrite.c: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/pwrite64.c: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/setcontext.S: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/swapcontext.S: Likewise.
	* sysdeps/unix/sysv/linux/pread.c: Likewise.
	* sysdeps/unix/sysv/linux/pread64.c: Likewise.
	* sysdeps/unix/sysv/linux/prof-freq.c: Likewise.
	* sysdeps/unix/sysv/linux/pwrite.c: Likewise.
	* sysdeps/unix/sysv/linux/pwrite64.c: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/chown.c: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/fchownat.c: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/lchown.c: Likewise.
	* sysdeps/unix/sysv/linux/semctl.c: Likewise.
	* sysdeps/unix/sysv/linux/setegid.c: Likewise.
	* sysdeps/unix/sysv/linux/seteuid.c: Likewise.
	* sysdeps/unix/sysv/linux/shmctl.c: Likewise.
	* sysdeps/unix/sysv/linux/sigaction.c: Likewise.
	* sysdeps/unix/sysv/linux/sigpending.c: Likewise.
	* sysdeps/unix/sysv/linux/sigprocmask.c: Likewise.
	* sysdeps/unix/sysv/linux/sigsuspend.c: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/semctl.c: Likewise.
	* sysdeps/unix/sysv/linux/statvfs64.c: Likewise.
	* sysdeps/unix/sysv/linux/syslog.c: Likewise.
	* sysdeps/unix/sysv/linux/testrtsig.h: Likewise.
	* sysdeps/unix/sysv/linux/truncate64.c: Likewise.
	* sysdeps/unix/sysv/linux/utimes.c: Likewise.
	* sysdeps/unix/sysv/linux/xstat64.c: Likewise.
	* sysdeps/unix/sysv/linux/xstatconv.h: Likewise.
2006-01-08 08:21:40 +00:00
Roland McGrath
9de06f3c77 * po/.cvsignore: List libc.pot.files, and not any .pot names.
* manual/maint.texi (Porting): Don't mention Dist files.
	* sysdeps/alpha/soft-fp/Dist: File removed.
	* sysdeps/alpha/Dist: File removed.
	* sysdeps/i386/i686/Dist: File removed.
	* sysdeps/i386/soft-fp/Dist: File removed.
	* sysdeps/i386/Dist: File removed.
	* sysdeps/mips/soft-fp/Dist: File removed.
	* sysdeps/mips/mips64/soft-fp/Dist: File removed.
	* sysdeps/mips/mips64/Dist: File removed.
	* sysdeps/mips/Dist: File removed.
	* sysdeps/wordsize-32/Dist: File removed.
	* sysdeps/m68k/fpu/switch/Dist: File removed.
	* sysdeps/m68k/fpu/Dist: File removed.
	* sysdeps/powerpc/powerpc64/Dist: File removed.
	* sysdeps/powerpc/soft-fp/Dist: File removed.
	* sysdeps/powerpc/powerpc32/fpu/Dist: File removed.
	* sysdeps/powerpc/powerpc32/Dist: File removed.
	* sysdeps/powerpc/fpu/Dist: File removed.
	* sysdeps/powerpc/Dist: File removed.
	* sysdeps/unix/common/Dist: File removed.
	* sysdeps/unix/bsd/bsd4.4/Dist: File removed.
	* sysdeps/unix/bsd/Dist: File removed.
	* sysdeps/unix/sysv/linux/alpha/Dist: File removed.
	* sysdeps/unix/sysv/linux/i386/Dist: File removed.
	* sysdeps/unix/sysv/linux/mips/mips64/Dist: File removed.
	* sysdeps/unix/sysv/linux/mips/Dist: File removed.
	* sysdeps/unix/sysv/linux/m68k/Dist: File removed.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/Dist: File removed.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/Dist: File removed.
	* sysdeps/unix/sysv/linux/powerpc/aix/Dist: File removed.
	* sysdeps/unix/sysv/linux/powerpc/Dist: File removed.
	* sysdeps/unix/sysv/linux/sparc/sparc32/Dist: File removed.
	* sysdeps/unix/sysv/linux/sparc/sparc64/Dist: File removed.
	* sysdeps/unix/sysv/linux/sparc/Dist: File removed.
	* sysdeps/unix/sysv/linux/ia64/Dist: File removed.
	* sysdeps/unix/sysv/linux/s390/s390-64/Dist: File removed.
	* sysdeps/unix/sysv/linux/s390/Dist: File removed.
	* sysdeps/unix/sysv/linux/s390/s390-32/Dist: File removed.
	* sysdeps/unix/sysv/linux/sh/Dist: File removed.
	* sysdeps/unix/sysv/linux/x86_64/Dist: File removed.
	* sysdeps/unix/sysv/linux/hppa/Dist: File removed.
	* sysdeps/unix/sysv/linux/Dist: File removed.
	* sysdeps/unix/sysv/Dist: File removed.
	* sysdeps/unix/Dist: File removed.
	* sysdeps/generic/Dist: File removed.
	* sysdeps/sparc/sparc32/soft-fp/Dist: File removed.
	* sysdeps/sparc/sparc32/sparcv9/Dist: File removed.
	* sysdeps/sparc/sparc32/sparcv8/Dist: File removed.
	* sysdeps/sparc/sparc32/Dist: File removed.
	* sysdeps/sparc/sparc64/soft-fp/Dist: File removed.
	* sysdeps/sparc/sparc64/Dist: File removed.
	* sysdeps/sparc/Dist: File removed.
	* sysdeps/gnu/Dist: File removed.
	* sysdeps/ia64/fpu/Dist: File removed.
	* sysdeps/ia64/Dist: File removed.
	* sysdeps/mach/mips/Dist: File removed.
	* sysdeps/mach/hurd/alpha/Dist: File removed.
	* sysdeps/mach/hurd/i386/Dist: File removed.
	* sysdeps/mach/hurd/mips/Dist: File removed.
	* sysdeps/mach/hurd/powerpc/Dist: File removed.
	* sysdeps/mach/hurd/Dist: File removed.
	* sysdeps/s390/s390-64/Dist: File removed.
	* sysdeps/s390/Dist: File removed.
	* sysdeps/s390/s390-32/Dist: File removed.
	* sysdeps/sh/Dist: File removed.
	* sysdeps/posix/Dist: File removed.
	* sysdeps/ieee754/dbl-64/Dist: File removed.
	* sysdeps/ieee754/ldbl-128/Dist: File removed.
	* sysdeps/ieee754/flt-32/Dist: File removed.
	* sysdeps/ieee754/Dist: File removed.
	* sysdeps/x86_64/soft-fp/Dist: File removed.
	* sysdeps/x86_64/Dist: File removed.
	* sysdeps/hppa/Dist: File removed.

	* Makerules (common-clean): Don't remove distinfo file.
	($(objpfx)distinfo): Target removed.
	* manual/Makefile (mostlyclean): Don't remove distinfo file.
	(glibc-targets): Remove echo-distinfo.

	* scripts/list-sources.sh: New file.
	* Makefile (TAGS): New target.
	* po/Makefile (libc.pot, libc.pot.files): New targets.
	* Makeconfig (XGETTEXT): New variable.
	* Makerules ($(..)po/%.pot): Rule removed.
	(TAGS): Target removed.
	* Rules (subdir_TAGS): Target removed.
	* MakeTAGS: File removed.

	* Makefile (iconvdata/% localedata/% po/% manual/%): Depend on FORCE.
	* Makeconfig ($(all-Depend-files)): New targets with no-op commands.
2006-01-08 06:46:10 +00:00
Ulrich Drepper
305bb37e1e * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h (PTR_MANGLE,
PTR_MANGLE2, PTR_DEMANGLE, PTR_DEMANGLE2): Define.
	* sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h (PTR_MANGLE,
	PTR_MANGLE2, PTR_DEMANGLE, PTR_DEMANGLE2): Define.
	* sysdeps/unix/sysv/linux/sparc/bits/setjmp.h [__WORDSIZE == 64]
	(_JMPBUF_UNWINDS): Don't demangle uc_mcontext.mc_fp.
	* sysdeps/sparc/sparc32/setjmp.S (__sigsetjmp): Mangle %fp, %sp
	and %o7.
	* sysdeps/sparc/sparc32/__longjmp.S (__longjmp): Demangle %fp, %sp
	and %o7.

2006-01-02  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/unix/sysv/linux/s390/s390-32/sysdep.h (PTR_MANGLE2):
	Define.
	* sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h (PTR_MANGLE2):
	Likewise.
	* sysdeps/s390/s390-32/__longjmp.c (__longjmp): Demangle also %r15.
	* sysdeps/s390/s390-64/__longjmp.c (__longjmp): Likewise.
	* sysdeps/s390/s390-32/setjmp.S (__sigsetjmp): Mangle also %r15.
	* sysdeps/s390/s390-32/elf/setjmp.S (__sigsetjmp): Likewise.
	* sysdeps/s390/s390-64/setjmp.S (__sigsetjmp): Likewise.
	* sysdeps/s390/s390-64/elf/setjmp.S (__sigsetjmp): Likewise.

	* sysdeps/s390/bits/setjmp.h (__jmp_buf): Add __s390_jmp_buf
	struct tag to make C++ happy.

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

	* posix/Makefile ($(objpfx)annexc.out): Move -I.. to the end of
	the include list.
2006-01-02 20:57:43 +00:00
Ulrich Drepper
8b4f159823 * sysdeps/unix/sysv/linux/sigaction.c: If WRAPPER_INCLUDE is defined,
include the named file.
	* sysdeps/unix/sysv/linux/sparc/sparc32/sigaction.c: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/sigaction.c: Likewise.
	* sysdeps/unix/sysv/linux/ia64/sigaction.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/sigaction.c: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-64/sigaction.c: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/sigaction.c: Likewise.
2005-12-29 16:34:57 +00:00
Ulrich Drepper
00c2b3b91d [BZ #1978]
2005-12-16  Thorsten Kukuk  <kukuk@suse.de>
	[BZ #1978]
	* sysdeps/unix/sysv/linux/internal_statvfs.c (__statvfs_getflags):
	Map more filesystem types to a string.
	* sysdeps/unix/sysv/linux/linux_fsinfo.h: Add SYSFS_MAGIC.

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

	* locale/Makefile (programs/%-kw.h): Run $(GPERF) inside of the
	programs subdirectory.

	* sysdeps/powerpc/powerpc32/__longjmp-common.S (__longjmp): Use
	PTR_DEMANGLE for PC if defined.
	* sysdeps/powerpc/powerpc64/__longjmp-common.S (__longjmp):
	Likewise.
	* sysdeps/unix/sysv/linux/ia64/__longjmp.S (__longjmp): Likewise.
	* sysdeps/s390/s390-32/__longjmp.c (__longjmp): Xor %r14 with
	THREAD_GET_POINTER_GUARD () if PTR_DEMANGLE is defined.
	* sysdeps/s390/s390-64/__longjmp.c (__longjmp): Likewise.
	* sysdeps/powerpc/powerpc32/setjmp-common.S (__sigsetjmp): Use
	PTR_MANGLE for PC if defined.
	* sysdeps/powerpc/powerpc64/setjmp-common.S (__sigsetjmp): Likewise.
	* sysdeps/s390/s390-32/setjmp.S (__sigsetjmp): Likewise.
	Avoid call to __sigjmp_save if IS_IN_rtld.
	* sysdeps/s390/s390-32/elf/setjmp.S (__sigsetjmp): Likewise.
	* sysdeps/s390/s390-64/setjmp.S (__sigsetjmp): Likewise.
	* sysdeps/s390/s390-64/elf/setjmp.S (__sigsetjmp): Likewise.
	* sysdeps/unix/sysv/linux/ia64/setjmp.S (__sigsetjmp): Likewise.
	* sysdeps/unix/sysv/linux/ia64/sysdep.h (PTR_MANGLE, PTR_DEMANGLE):
	Define.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep.h: Include tls.h.
	(PTR_MANGLE, PTR_DEMANGLE): Define.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep.h: Include tls.h
	(PTR_MANGLE, PTR_DEMANGLE): Define.
	* sysdeps/unix/sysv/linux/s390/s390-32/sysdep.h: Include tls.h.
	(PTR_MANGLE, PTR_DEMANGLE): Define.
	(SYSCALL_ERROR_HANDLER): Add missing semicolons.
	* sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h: Include tls.h.
	(PTR_MANGLE, PTR_DEMANGLE): Define.
	* sysdeps/unix/sysv/linux/s390/s390-64/socket.S (__socket): Add
	SYSCALL_ERROR_HANDLER.

2005-12-19  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/unix/sysv/linux/sparc/sparc32/socket.S: Handle NO_WEAK_ALIAS.
	* sysdeps/unix/sysv/linux/sparc/sparc64/socket.S: Likewise.
	Patch by Clint Adams.

2005-12-16  Martin Schwidefsky  <schwidefsky@de.ibm.com>

	* sysdeps/unix/sysv/linux/s390/sys/user.h: Copy struct user and
	dependent definitions from the kernel header to sys/user.h and
	remove the #include of asm/user.h.
2005-12-20 07:21:59 +00:00
Ulrich Drepper
26cec518ac * io/Makefile (routines): Add fstatat, fstatat64, fxstatat, fxstatat64,
fchownat, and unlinkat.
	(static-only-routines): Add fstatat and fstatat64.
	(tests): Add tst-unlinkat, tst-fstatat, tst-futimesat, tst-renameat,
	and tst-fchownat.
	* io/Versions [GLIBC_2.4]: Add fchownat, __fxstatat, __fxstatat64,
	and unlinkat.
	* io/fcntl.h: Define AT_FDCWD, AT_SYMLINK_NOFOLLOW, and AT_REMOVEDIR.
	* io/fstatat.c: New file.
	* io/fstatat64.c: New file.
	* io/sys/stat.h: Declare fstatat, fstatat64, __fxstatat, __fxstatat64
	and define fstatat and fstatat64 inline functions.
	* libio/stdio.h: Declare renameat.
	* misc/Makefile (routines): Add futimesat.
	* misc/Versions [GLIBC_2.4]: Add futimesat.
	* posix/unistd.h: Declare fchownat and unlinkat.
	* stdio-common/Makefile (routines): Add renameat.
	* stdio-common/Versions [GLIBC_2.4]: Add renameat.
	* sysdeps/generic/fchownat.c: New file.
	* sysdeps/generic/futimesat.c: New file.
	* sysdeps/generic/fxstatat.c: New file.
	* sysdeps/generic/fxstatat64.c: New file.
	* sysdeps/generic/renameat.c: New file.
	* sysdeps/generic/unlinkat.c: New file.
	* sysdeps/unix/sysv/linux/fchownat.c: New file.
	* sysdeps/unix/sysv/linux/futimesat.c: New file.
	* sysdeps/unix/sysv/linux/fxstatat.c: New file.
	* sysdeps/unix/sysv/linux/fxstatat64.c: New file.
	* sysdeps/unix/sysv/linux/renameat.c: New file.
	* sysdeps/unix/sysv/linux/unlinkat.c: New file.
	* sysdeps/unix/sysv/linux/alpha/fxstatat.c: New file.
	* sysdeps/unix/sysv/linux/i386/fchownat.c: New file.
	* sysdeps/unix/sysv/linux/i386/fxstatat.c: New file.
	* sysdeps/unix/sysv/linux/m68k/fchownat.c: New file.
	* sysdeps/unix/sysv/linux/m68k/fxstatat.c: New file.
	* sysdeps/unix/sysv/linux/powerpc/fchownat.c: New file.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/fxstatat.c: New file.
	* sysdeps/unix/sysv/linux/s390/s390-32/fchownat.c: New file.
	* sysdeps/unix/sysv/linux/s390/s390-32/fxstatat.c: New file.
	* sysdeps/unix/sysv/linux/sh/fchownat.c: New file.
	* sysdeps/unix/sysv/linux/sh/fxstatat.c: New file.
	* sysdeps/unix/sysv/linux/sparc/sparc32/fchownat.c: New file.
	* sysdeps/unix/sysv/linux/sparc/sparc32/fxstatat.c: New file.
	* sysdeps/unix/sysv/linux/sparc/sparc64/fxstatat.c: New file.
	* sysdeps/unix/sysv/linux/wordsize-64/fxstatat.c: New file.
	* sysdeps/unix/sysv/linux/wordsize-64/fxstatat64.c: New file.
	* time/sys/time.h: Declare futimesat.
	* include/fcntl.h: Declare __atfct_seterrno.
	* sysdeps/unix/sysv/linux/openat.c (__atfct_seterrno): New function.
	Split out from openat code and called.
	(do_test): Allow openat to fail with ENOSYS.  Handle AT_FDCWD.
	* sysdeps/generic/openat.c: Handle AT_FDCWD.
	* sysdeps/generic/openat64.c: Likewise.
	* io/tst-unlinkat.c: New file.
	* io/tst-fstatat.c: New file.
	* io/tst-futimesat.c: New file.
	* io/tst-renameat.c: New file.
	* io/tst-fchownat.c: New file.
	* io/tst-openat.c: Don't fail if openat is not implemented.

	* sysdeps/unix/sysv/linux/powerpc/chown.c: Don't provide backward
	compatibility code if new kernel is guaranteed.

	* time/sys/time.h: Add a few nonnull attributes.
2005-11-11 20:02:07 +00:00
Roland McGrath
3b2e2ede43 [BZ #1037]
2005-06-27  Jakub Jelinek  <jj@ultra.linux.cz>
	[BZ #1037]
	* sysdeps/unix/sysv/linux/sparc/sparc32/Makefile: -mv8 is deprecated,
	use -mcpu=v8.
2005-07-02 22:40:34 +00:00
Ulrich Drepper
1ab18a5bfb Add space inf weak_alias use. 2005-05-26 14:30:51 +00:00
Ulrich Drepper
edac0e8f44 Add sparc64 TLS and NPTL support.
* elf/tls-macros.h: Add Sparc64 defines.
	* sysdeps/sparc/sparc64/dl-machine.h (sparc64_fixup_plt): Mark as
	always_inline.
	(elf_machine_fixup_plt): Likewise.
	(elf_machine_rela): Handle TLS relocations.
	(elf_machine_type_cleaa): Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h
	(SYSCALL_ERROR_HANDLER_ENTRY): Use sethi/or for GOT reloc.
	It does not always fit in R_SPARC_GOT13 when building -fPIC.
	Also, add TLS handling.
	* sysdeps/unix/sysv/linux/configure.in (arch_minimum_kernel):
	Increase it to 2.4.21 for sparc64.
	* sysdeps/unix/sysv/linux/sparc/sparc32/clone.S: NULL terminate
	backtrace by zero'ing out %fp.  Store away flags, func_ptr,
	and func_arg in global registers not local registers.
	* sysdeps/unix/sysv/linux/sparc/sparc64/clone.S: Handle PTID, TLS,
	and CTID arguments properly.  Add RESET_PID handling.
	* sysdeps/unix/sysv/linux/sparc/sparc64/pause.c: Rework so that we
	do not invoke __sigprocmask().  We can always assume rt signals
	are present on sparc64, so just do an inline syscall.

2005-04-13  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/sparc/sparc64/dl-machine.h: Add dl_machine_h multiple
	inclusion guard for the first half of the header.
	(elf_machine_type_class, ELF_MACHINE_JMP_SLOT, ELF_MACHINE_NO_REL,
	ELF_MACHINE_PLTREL_OVERLAP, elf_machine_runtime_setup,
	elf_machine_relplt, DL_STACK_END, RTLD_START): Move into the
	#ifndef dl_machine_h guarded part of the header.
2005-04-14 21:46:37 +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
e853ea00f3 Update.
2004-12-16  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/unix/sysv/linux/sparc/sparc32/clone.S (__clone): 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/sparc/sparc64/sysdep.h
	(SYSCALL_ERROR_HANDLER): If RTLD_PRIVATE_ERRNO, use rtld_errno
	instead of errno.
	* sysdeps/unix/sysv/linux/sparc/sparc64/socket.S: Include
	sysdep-cancel.h instead of sysdep.h.  Handle cancellation.
	* sysdeps/sparc/sparc64/fpu/libm-test-ulps: Regenerate.

	* sysdeps/ieee754/ldbl-128/e_expl.c: Include stdlib.h.
2004-12-16 16:49:39 +00:00
Roland McGrath
96c82b3fee 2004-10-04 Roland McGrath <roland@redhat.com>
* include/errno.h [RTLD_PRIVATE_ERRNO] (errno): Rename the real symbol
	to rtld_errno.
	* sysdeps/generic/errno.c [RTLD_PRIVATE_ERRNO] (rtld_errno): Define it,
	and don't define any other errno names.
	* sysdeps/unix/alpha/sysdep.h [RTLD_PRIVATE_ERRNO]: Use rtld_errno in
	place of errno.
	* sysdeps/unix/i386/sysdep.S: Likewise.
	* sysdeps/unix/sysv/linux/i386/sysdep.h: Likewise.
	* sysdeps/unix/sysv/linux/ia64/sysdep.S: Likewise.
	* sysdeps/unix/sysv/linux/m68k/sysdep.h: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/sysdep.S: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/sysdep.h: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-64/sysdep.S: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h: Likewise.
	* sysdeps/unix/sysv/linux/sh/sysdep.h: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/sysdep.h: Likewise.
	* sysdeps/unix/x86_64/sysdep.S: Likewise.
2004-10-04 20:59:38 +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
d40eb37aad [BZ #40]
Update.
2004-05-15  Petter Reinholdtsen  <pere@hungry.com>

	* locale/iso-3166.def: Remove YUGOSLAVIA and insert "SERBIA AND
	MONTENEGRO" which have taken over the code 819.  Patch from
	Danilo Segan. [BZ #40]

2004-05-15  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h
	(SYSCALL_ERROR_HANDLER): Rename __sparc.get_pic.l7 to
	__sparc_get_pic_l7.

2004-05-15  Joseph S. Myers  <jsm@polyomino.org.uk>

	* catgets/gencat.c: Update bug reporting instructions.
	* csu/version.c: Likewise.
	* debug/catchsegv.sh: Likewise.
	* debug/pcprofiledump.c: Likewise.
	* debug/xtrace.sh: Likewise.
	* elf/ldd.bash.in: Likewise.
	* iconv/iconv_prog.c: Likewise.
	* iconv/iconvconfig.c: Likewise.
	* locale/programs/locale.c: Likewise.
	* locale/programs/localedef.c: Likewise.
	* login/programs/pt_chown.c: Likewise.
	* malloc/memusage.sh: Likewise.
	* malloc/memusagestat.c: Likewise.
	* malloc/mtrace.pl: Likewise.
	* manual/crypt.texi: Likewise.
	* manual/install.texi: Likewise.
	* nss/makedb.c: Likewise.

2004-05-14  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/sparc/sparc32/dl-machine.h (elf_machine_rela): Only
	CHECK_STATIC_TLS if sym != NULL.
	* sysdeps/sh/dl-machine.h (elf_machine_rela): Likewise.
	* sysdeps/i386/dl-machine.h (elf_machine_rela): Likewise.

2004-05-12  Andreas Schwab  <schwab@suse.de>

	* posix/regex_internal.c (build_wcs_buffer): Also set pstr->mbs
	when translating.

2004-05-13  H.J. Lu  <hongjiu.lu@intel.com>

	* Rules (xtests): Depend on tests.
2004-05-17 18:59:35 +00:00
Ulrich Drepper
61645263d4 Update.
2004-03-22  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/unix/sysv/linux/sparc/sparc32/getpagesize.c
	(__getpagesize): Avoid warning about writing into read-only memory.

	* string/Makefile (routines): Add xpg-strerror.
	* string/string.h (strerror_r): If __USE_XOPEN2K but not __USE_GNU,
	redirect strerror_r to __xpg_strerror_r.
	* string/Versions (libc): Add __xpg_strerror_r@@GLIBC_2.3.4.
	* sysdeps/generic/xpg-strerror.c: New file.
	* sysdeps/mach/xpg-strerror.c: New file.
2004-03-22 19:54:06 +00:00
Ulrich Drepper
d3a4a571c4 Update.
2004-03-10  Jakub Jelinek  <jakub@redhat.com>

	* include/libc-symbols.h [__ASSEMBLY__] (compat_text_section,
	compat_data_section): Define.
	* sysdeps/unix/sysv/linux/alpha/adjtime.c (ADJTIME): Add
	attribute_compat_text_section.
	* sysdeps/unix/sysv/linux/alpha/wordexp.c (__old_wordexp): Likewise.
	* sysdeps/unix/sysv/linux/alpha/oldglob.c (__old_glob,
	__old_globfree): Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/chown.c (__chown_is_lchown):
	Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/posix_fadvise64.c
	(__posix_fadvise64_l32): Likewise.
	* sysdeps/unix/sysv/linux/msgctl.c (__old_msgctl): Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/posix_fadvise64.c
	(__posix_fadvise64_l32): Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/semctl.c (__old_semctl):
	Likewise.
	* sysdeps/unix/sysv/linux/semctl.c (__old_semctl): Likewise.
	* sysdeps/unix/sysv/linux/posix_fadvise64.c (__posix_fadvise64_l32):
	Likewise.
	* sysdeps/unix/sysv/linux/shmctl.c (__old_shmctl): Likewise.
	* hurd/compat-20.c (_hurd_proc_init_compat_20): Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext.S
	(__swapcontext, __novec_swapcontext): Use END instead of PSEUDO_END.
	(__novec_swapcontext, __swapcontext_stub): Add compat_text_section.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/makecontext.S
	(__makecontext_stub): Likewise.
	(__novec_makecontext): Likewise.  Fix name in END () to match
	function name.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext.S
	(__setcontext): Use END instead of PSEUDO_END.
	(__novec_setcontext): Add compat_text_section.  Use END instead of
	PSEUDO_END, fix the name in END () to match function name.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/getcontext.S
	(__getcontext, __novec_getcontext): Use END instead of PSEUDO_END.
	(__novec_getcontext, __getcontext_stub): Add compat_text_section.

2004-03-10  Kaz Kojima  <kkojima@rr.iij4u.or.jp>

	* sysdeps/sh/dl-machine.h: Don't use GL macro if not appropriate.
	(COPY_UNALIGNED_WORD): Remove cast used as lvalue.

2004-03-10  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/i386/dl-procinfo.h (HWCAP_IMPORTANT): Remove mmx, add sse2.
2004-03-10 19:28:58 +00:00
Ulrich Drepper
c31e278f86 Update.
2004-03-07  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/generic/ldsodefs.h: Move _dl_initial_searclist,
	_dl_hp_timing_overhead, _dl_init_all_dirs, and the content of
	dl-procinfo.c from _rtld_global to _rtld_global_ro.
	* elf/rtld.c: Adjust initializer for _rtld_global_ro.
	* elf/dl-close.c: Use GLRO instead of GL where appropriate.
	* elf/dl-libc.c: Likewise.
	* elf/dl-load.c: Likewise.
	* sysdeps/i386/dl-procinfo.h: Likewise.
	* sysdeps/i386/i686/hp-timing.h: Likewise.
	* sysdeps/ia64/hp-timing.h: Likewise.
	* sysdeps/sparc/sparc32/sparcv9/hp-timing.h: Likewise.
	* sysdeps/sparc/sparc64/hp-timing.h: Likewise.
	* sysdeps/unix/sysv/linux/arm/dl-procinfo.h: Likewise.
	* sysdeps/unix/sysv/linux/i386/dl-procinfo.h: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/dl-procinfo.h: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/dl-procinfo.h: Likewise.
2004-03-07 08:39:57 +00:00
Ulrich Drepper
154d10bdf1 Update.
* elf/Versions: Remove functions which are not exported anymore.
	* dlfcn/dlerror.c: Call ld.so functions through GLSO.
	* dlfcn/dlinfo.c: Likewise.
	* elf/dl-close.c: Likewise.
	* elf/dl-libc.c: Likewise.
	* elf/dl-open.c: Likewise.
	* elf/dl-sym.c: Likewise.
	* sysdeps/generic/libc-start.c: Likewise.
	* elf/dl-debug.c: Remove *_internal definition.  Don't use INTUSE for
	functions which are not exported anymore.
	* elf/dl-deps.c: Likewise.
	* elf/dl-dst.h: Likewise.
	* elf/dl-error.c: Likewise.
	* elf/dl-fini.c: Likewise.
	* elf/dl-init.c: Likewise.
	* elf/dl-load.c: Likewise.
	* elf/dl-lookup.c: Likewise.
	* elf/dl-misc.c: Likewise.
	* elf/dl-profile.c: Likewise.
	* elf/dl-profstub.c: Likewise.
	* elf/dl-reloc.c: Likewise.
	* elf/dl-runtime.c: Likewise.
	* elf/dl-version.c: Likewise.
	* elf/do-lookup.h: Likewise.
	* include/dlfcn.h: Likewise.
	* sysdeps/generic/dl-cache.c: Likewise.
	* sysdeps/generic/dl-fptr.c: Likewise.
	* sysdeps/generic/dl-origin.c: Likewise.
	* sysdeps/generic/dl-sysdep.c: Likewise.
	* sysdeps/generic/dl-tls.c: Likewise.
	* sysdeps/generic/ldsodefs.h: Likewise.
	* sysdeps/i386/dl-tls.h: Likewise.
	* sysdeps/unix/sysv/linux/dl-origin.c: Likewise.
	* elf/rtld.c: Likewise.  Export function though _rtld_global_ro.

	* generic/dl-fptr.c: Likewise.
	* mach/hurd/dl-sysdep.c: Likewise.
	* unix/sysv/linux/ia64/dl-static.c: Likewise.
	* unix/sysv/linux/ia64/getpagesize.c: Likewise.
	* unix/sysv/linux/m68k/getpagesize.c: Likewise.
	* unix/sysv/linux/sparc/sparc32/getpagesize.c: Likewise.
2004-03-06 08:19:29 +00:00
Ulrich Drepper
b5bc52efe7 Update.
2003-08-30  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/generic/sysdep.h (cfi_window_save, CFI_WINDOW_SAVE): Define.
	* sysdeps/unix/sysv/linux/sparc/bits/setjmp.h: Allow file to be
	included multiple times.
	* sysdeps/unix/sysv/linux/sparc/sparc32/clone.S (__clone): Pass
	ptid, tls, ctid arguments to the kernel.
	* sysdeps/unix/sysv/linux/sparc/sparc32/getpagesize.c (__getpagesize):
	Use INTERNAL_SYSCALL instead of __syscall_getpagesize.
	* sysdeps/unix/sysv/linux/sparc/sparc32/sigaction.c
	(__libc_sigaction): Use INLINE_SYSCALL instead of
	__syscall_rt_sigaction.
	* sysdeps/unix/sysv/linux/sparc/sparc32/syscalls.list
	(__syscall_getgroups, __syscall_getpagesize, __syscall__llseek,
	__syscall_setfsgid, __syscall_setfsuid, __syscall_setgid,
	__syscall_setgroups, __syscall_setregid, __syscall_setreuid,
	__syscall_ipc, __syscall_setuid, __syscall_rt_sigaction,
	__syscall_rt_sigpending, __syscall_rt_sigprocmask,
	__syscall_rt_sigqueueinfo, __syscall_rt_sigsuspend,
	__syscall_rt_sigtimedwait): Remove unneeded syscall stubs.
	* sysdeps/unix/sysv/linux/sparc/sparc32/Makefile (sysdep_routines):
	Remove rt_sigsuspend, rt_sigprocmask, rt_sigtimedwait,
	rt_sigqueueinfo, rt_sigaction and rt_sigpending.
	* sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h
	(__CLONE_SYSCALL_STRING): Define.
	* sysdeps/unix/sysv/linux/sparc/sparc32/socket.S (__socket): Add
	CFI directives.
	* sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h
	(__CLONE_SYSCALL_STRING): Define.
 	* sysdeps/unix/sysv/linux/sparc/sysdep.h (INLINE_CLONE_SYSCALL):
	Define.
	* sysdeps/unix/sysv/linux/sparc/system.c: New file.

	* sunrpc/rpc/clnt.h: Remove a few __THROW.
	* sunrpc/Makefile (CFLAGS-auth_unix.c): Add -fexceptions.
	(CFLAGS-key_call.c): Likewise.
	(CFLAGS-pmap_rmt.c): Likewise.
	* sunrpc/rpc/auth.h: Remove serveral __THROW.

	(CFLAGS-rcmd.c): Likewise.
2003-08-31 17:24:25 +00:00
Ulrich Drepper
a49daee2ef Update.
* login/programs/utmpdump.c (print_entry): Cast tv_usec to long
	to match format string.
	* sysdeps/unix/sysv/linux/sparc/sparc32/semctl.c (union semun): Add
	__old_buf.
	(__new_semctl): Shut up warning.
	* sysdeps/unix/sysv/linux/sparc/sparc32/dl-procinfo.h
	(_dl_string_hwcap): Add __attribute__ ((always_inline)).

2003-08-26  Jakub Jelinek  <jakub@redhat.com>
2003-08-27 04:03:12 +00:00
Ulrich Drepper
089d05d5c2 Update.
2003-08-22  Ulrich Drepper  <drepper@redhat.com>

	* io/fcntl.h (posix_fallocate): Change type of third parameter to
	off_t.
	(posix_fallocate64): Change type of third parameter to off64_t.
	* sysdeps/generic/posix_fallocate.c: Adjust for type change.
	* sysdeps/posix/posix_fallocate.c: Likewise.
	* sysdeps/generic/posix_fallocate64.c: Likewise.
	* sysdeps/posix/posix_fallocate64.c: Likewise.  Add compatibility
	code for 32-bit platforms.
	* sysdeps/unix/sysv/linux/i386/Versions: Add new version for
	posix_fallocate64.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/Versions: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/Versions: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/Versions: Likewise.
2003-08-22 18:11:32 +00:00
Ulrich Drepper
137ffcdc6e Update.
2003-08-16  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/powerpc/powerpc32/sysdep.h (PSEUDO_ERRVAL,
	PSEUDO_RET_ERRVAL, ret_ERRVAL, PSEUDO_END_ERRVAL): Define.
	* sysdeps/powerpc/powerpc64/sysdep.h (PSEUDO_ERRVAL,
	PSEUDO_RET_ERRVAL, ret_ERRVAL, PSEUDO_END_ERRVAL): Define.
	* sysdeps/unix/alpha/sysdep.h (PSEUDO_ERRVAL,
	ret_ERRVAL, PSEUDO_END_ERRVAL): Define.
	* sysdeps/unix/mips/sysdep.h (PSEUDO_ERRVAL,
	ret_ERRVAL, PSEUDO_END_ERRVAL): Define.
	* sysdeps/unix/sparc/sysdep.h (PSEUDO_ERRVAL,
	ret_ERRVAL): Define.
	* sysdeps/unix/sysv/linux/s390/s390-32/sysdep.h (PSEUDO_ERRVAL,
	PSEUDO_END_ERRVAL, ret_ERRVAL): Define.
	* sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h (PSEUDO_ERRVAL,
	PSEUDO_END_ERRVAL, ret_ERRVAL): Define.
	* sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h (PSEUDO_ERRVAL):
	Define.
	* sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h (PSEUDO_ERRVAL,
	PSEUDO_END_ERRVAL, ret_ERRVAL): Define.
	* sysdeps/unix/sysdep.h (PSEUDO_END_ERRVAL): Define.

	* sysdeps/unix/sysv/linux/syscalls.list (posix_fadvise64,
	posix_fadvise64_64): Remove.
	* sysdeps/unix/sysv/linux/alpha/syscalls.list (posix_fadvise64): Add
	V flag.
	* sysdeps/unix/sysv/linux/ia64/syscalls.list (posix_fadvise64):
	Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/syscalls.list
	(posix_fadvise64): Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-64/syscalls.list
	(posix_fadvise64): Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list
	(posix_fadvise64): Likewise.
	* sysdeps/unix/sysv/linux/x86_64/syscalls.list (posix_fadvise64):
	Likewise.
	* sysdeps/unix/sysv/linux/i386/posix_fadvise64_64.S: Moved to...
	* sysdeps/unix/sysv/linux/i386/posix_fadvise64.S: ...here.
	(__posix_fadvise64_l64): Fix a typo in fadvise64 syscall invocation.
	(__posix_fadvise64_l32): New function.
	* sysdeps/unix/sysv/linux/i386/Makefile: Revert last change.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/Versions (libc): Export
	posix_fadvise64@@GLIBC_2.3.3.
	* sysdeps/unix/sysv/linux/s390/s390-32/Versions (libc): Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/Versions (libc): Likewise.
	* sysdeps/unix/sysv/linux/posix_fadvise.c (posix_fadvise): Return
	error value.
	* sysdeps/unix/sysv/linux/posix_fadvise64.c: New file.

	* sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h
	(SYSCALL_ERROR_HANDLER): Use TLS errno/__libc_errno if USE___THREAD.

2003-08-15  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/sparc/sparc32/dl-machine.h (WEAKADDR): Remove.
	(elf_machine_matches_host): Remove weak extern stuff.
	Use GL(dl_hwcap) unconditionally and GL(dl_hwcap_mask) if SHARED.
	(elf_machine_runtime_setup, sparc_fixup_plt): Remove weak extern
	stuff.  Use GL(dl_hwcap) unconditionally.
2003-08-17 00:37:19 +00:00
Ulrich Drepper
11bf8ce1d6 Update.
2003-07-22  H.J. Lu  <hongjiu.lu@intel.com>

	* elf/dl-support.c (_dl_hwcap): New variable.
	(_dl_aux_init): Initialize GL(dl_hwcap) for static binaries.

	* sysdeps/i386/fpu/fclrexcpt.c: Include <unistd.h>, <ldsodefs.h>
	and <dl-procinfo.h>.
	(__feclearexcept): Clear MXCSR if needed.
	* sysdeps/i386/fpu/fsetexcptflg.c: Likewise.

	* sysdeps/i386/fpu_control.h (_FPU_GETCW, _FPU_SETCW): Document
	that newer hardware needs more than these macros.

	* sysdeps/i386/setfpucw.c: New file.

2003-07-22  Jakub Jelinek  <jakub@redhat.com>

	* elf/Makefile (CFLAGS-ldconfig.c): Define IS_IN_ldconfig.
	* elf/ldconfig.c: Include dl-procinfo.c.
	(PROCINFO_CLASS): Define.
	* sysdeps/generic/ldsodefs.h (PROCINFO_CLASS): Define.
	* sysdeps/unix/sysv/linux/x86_64/dl-procinfo.c: New file.
	* sysdeps/unix/sysv/linux/x86_64/dl-procinfo.h: New file.
	* sysdeps/unix/sysv/linux/i386/dl-procinfo.c (PROCINFO_CLASS):
	Define if not yet defined.  Use it instead of EXTERN.  Undefine
	at the end of the file.
	* sysdeps/unix/sysv/linux/arm/dl-procinfo.c (PROCINFO_CLASS):
	Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/dl-procinfo.c
	(PROCINFO_CLASS): Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/dl-procinfo.c
	(PROCINFO_CLASS): Likewise.

2003-07-22  H.J. Lu  <hongjiu.lu@intel.com>

	* elf/ldconfig.c (main): Issue a fatal error if relative path
	is used to build cache.

2003-07-22  Ulrich Drepper  <drepper@redhat.com>

	* elf/readlib.c (process_file): Avoid possible overflow in assignment.
2003-07-22 22:28:07 +00:00
Ulrich Drepper
54c924656e Update.
2003-06-09  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/unix/sysv/linux/kernel-features.h
	(__ASSUME_SETRESGID_SYSCALL): Define.
	* sysdeps/unix/sysv/linux/setegid.c: Use __ASSUME_SETRESGID_SYSCALL
	instead of __ASSUME_SETRESUID_SYSCALL.
	(setegid): Only use setresgid32 inline syscall if __NR_setresgid32 is
	defined.
	* sysdeps/unix/sysv/linux/seteuid.c (seteuid): Only use setresgid32
	inline syscall if __NR_setresuid32 is defined.
	* sysdeps/unix/sysv/linux/i386/setegid.c (setegid): Use
	__ASSUME_SETRESGID_SYSCALL instead of __ASSUME_SETRESUID_SYSCALL.
	* sysdeps/unix/sysv/linux/i386/setregid.c: Backout last changes.
	* sysdeps/unix/sysv/linux/i386/setreuid.c: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/setegid.c (setegid): Protect
	code handling non-existant setresgid32 syscall with
	#if __ASSUME_SETRESGID_SYSCALL == 0.

2003-06-09  Andreas Schwab  <schwab@suse.de>

	* sunrpc/Makefile (generated): Remove rpc-proto.c, rpc-proto.d.
	($(rpcsvc:%.x=$(objpfx)x%$o)): Don't depend on
	$(objpfx)rpc-proto.d.
	(rpcsvc-dt-files, rpcsvc-depfiles): Define.  Include
	$(rpcsvc-depfiles) instead of $(objpfx)rpc-proto.d.
	($(objpfx)rpc-proto.d, $(objpfx)rpc-proto.c): Remove rules.
2003-06-10 02:32:35 +00:00
Ulrich Drepper
9eb88290df Update.
2003-03-23  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/unix/make-syscalls.sh: Recognize 'E' in first position of
	the parameter description to denote no error checking.  Generate
	appropriate pseudo asm code.
	* sysdeps/unix/syscalls.list: Mark getgid, getpid, getuid with 'E'.
	* sysdeps/unix/sysv/linux/syscalls.list: Mark getegid, geteuid,
	getpgrp, and getppid with 'E'.
	* sysdeps/powerpc/powerpc32/sysdep.h: Define PSEUDO_NOERRNO,
	PSEUDO_END_NOERRNO, and ret_NOERRNO.
	* sysdeps/powerpc/powerpc64/sysdep.h: Likewise.
	* sysdeps/unix/sysdep.h: Likewise.
	* sysdeps/unix/alpha/sysdep.h: Likewise.
	* sysdeps/unix/sparc/sysdep.h: Likewise.
	* sysdeps/unix/sysv/linux/arm/sysdep.h: Likewise.
	* sysdeps/unix/sysv/linux/cris/sysdep.h: Likewise.
	* sysdeps/unix/sysv/linux/hppa/sysdep.h: Likewise.
	* sysdeps/unix/sysv/linux/i386/sysdep.h: Likewise.
	* sysdeps/unix/sysv/linux/ia64/sysdep.h: Likewise.
	* sysdeps/unix/sysv/linux/m68k/sysdep.h: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/sysdep.h: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h: Likewise.
	* sysdeps/unix/sysv/linux/sh/sysdep.h: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/sysdep.h: Likewise.
2003-03-23 19:44:31 +00:00
Ulrich Drepper
62f29da7cb Update.
2003-01-26  Andreas Schwab  <schwab@suse.de>

	* sysdeps/wordsize-32/divdi3.c: Export the functions only as
	compatibility symbols.  Remove INTDEF for __divdi3.
	* sysdeps/wordsize-32/lldiv.c: Don't use __divdi3_internal.
	* sysdeps/powerpc/powerpc32/divdi3.c: Remove.
	* sysdeps/powerpc/powerpc32/Makefile (CPPFLAGS-divdi3.c): Don't
	define.
	* sysdeps/powerpc/powerpc32/Dist: Remove divdi3.c.

2003-01-24  Jakub Jelinek  <jakub@redhat.com>

	* elf/tls-macros.h: Add SPARC 32-bit definitions.
	* sysdeps/sparc/sparc32/elf/configure.in: Add TLS check.
	* sysdeps/sparc/sparc32/dl-machine.h: Add dl_machine_h guards
	for the first half of the header.  Include tls.h.
	(elf_machine_type_class): Return ELF_RTYPE_CLASS_PLT for TLS
	relocs too.
	(elf_machine_rela): Handle TLS relocs.
	* sysdeps/sparc/dl-tls.h: New file.

	* sysdeps/unix/sysv/linux/sparc/sparc32/socket.S: Add cancellation
	support.

	* sysdeps/sparc/sparc32/sparcv9/hp-timing.h: Use %g6 instead of %g7.
	* sysdeps/sparc/sparc32/memchr.S: Likewise.
	* sysdeps/sparc/sparc32/memcpy.S: Likewise.
	* sysdeps/sparc/sparc32/strcat.S: Likewise.
	* sysdeps/sparc/sparc32/strchr.S: Likewise.
	* sysdeps/sparc/sparc32/strcmp.S: Likewise.
	* sysdeps/sparc/sparc32/strcpy.S: Likewise.
	* sysdeps/sparc/sparc64/sparcv9b/memcpy.S: Likewise.
	* sysdeps/sparc/sparc64/hp-timing.h: Likewise.
	* sysdeps/sparc/sparc64/memcpy.S: Likewise.
	* sysdeps/sparc/sparc64/stpcpy.S: Likewise.
	* sysdeps/sparc/sparc64/stpncpy.S: Likewise.
	* sysdeps/sparc/sparc64/strcat.S: Likewise.
	* sysdeps/sparc/sparc64/strchr.S: Likewise.
	* sysdeps/sparc/sparc64/strcmp.S: Likewise.
	* sysdeps/sparc/sparc64/strcpy.S: Likewise.
	* sysdeps/sparc/sparc64/strncmp.S: Likewise.
	* sysdeps/sparc/sparc64/strncpy.S: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h: Likewise.

2003-01-24  Andreas Schwab  <schwab@suse.de>

	* elf/dl-close.c (_dl_close): Don't relocate DT_FINI_ARRAY
	elements, and process them backwards.
	* elf/Makefile ($(objpfx)tst-array4): New target.
	($(objpfx)tst-array4.out): Likewise.
	(tests) [$(have-initfini-array) = yes]: Add tst-array4.
	* elf/tst-array4.c: New file.
	* elf/tst-array4.exp: Likewise.

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

	* sysdeps/unix/sysv/linux/powerpc/powerpc64/fe_nomask.c: New file.

2003-01-27  Guido Guenther  <agx@sigxcpu.org>

	* sysdeps/unix/sysv/linux/mips/sysdep.h (SYSCALL_ERROR_LABEL): Define.
	* sysdeps/unix/sysv/linux/mips/pread.c: Add support for
	cancellation handling and handle both __NR_pread64 and __NR_pread.
	* sysdeps/unix/sysv/linux/mips/pread64.c: Likewise.
	* sysdeps/unix/sysv/linux/mips/pwrite.c: Add support for
	cancellation handling and handle both __NR_pwrite64 and __NR_pwrite.
	* sysdeps/unix/sysv/linux/mips/pwrite64.c: Likewise.
	* sysdeps/unix/mips/sysdep.S: Don't set errno in the _LIBC_REENTRANT
	case, use register names consistently.

2003-01-27  Wolfram Gloger  <wg@malloc.de>

	* malloc/hooks.c (mem2chunk_check): Check alignment of mem
	pointer, not of the computed chunk.  Bug report from Carlos
	O'Donell <carlos@baldric.uwo.ca>.
2003-01-27 21:03:22 +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
Andreas Jaeger
d5f001d4e1 * sysdeps/unix/sysv/linux/powerpc/powerpc32/kernel_stat.h: Sync
with Linux kernel. 
* sysdeps/unix/sysv/linux/sparc/sparc32/kernel_stat.h: Likewise. 
* sysdeps/unix/sysv/linux/s390/s390-64/kernel_stat.h: Likewise. 
* sysdeps/unix/sysv/linux/hppa/kernel_stat.h: Likewise.
	* sysdeps/unix/sysv/linux/kernel_stat.h
	(_HAVE_STAT_NSEC,_HAVE_STAT_NSEC64): New.

	* sysdeps/unix/sysv/linux/xstatconv.c (xstat_conv): Readd
	__unused[1-3] since they're needed by some platforms.  Handle
	_HAVE_STAT_NSEC and _HAVE_STAT_NSEC64.

	* sysdeps/unix/sysv/linux/x86_64/bits/stat.h: Add nsec resolution
	for structs stat and stat64.
	* sysdeps/unix/sysv/linux/ia64/bits/stat.h: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/bits/stat.h: Likewise.
	* sysdeps/unix/sysv/linux/sparc/bits/stat.h: Likewise.
	* sysdeps/unix/sysv/linux/s390/bits/stat.h: Likewise.
2002-12-31 13:24:35 +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
9372c95824 * string/test-strspn.c (do_test): Ensure zero termination.
* string/test-strpbrk.c (do_test): Likewise.
	* string/test-strncmp.c (stupid_strncmp): Use strnlen, not strlen.
	* string/test-strncpy.c (stupid_strncpy): Likewise.
	* string/test-stpncpy.c (stupid_stpncpy): Likewise.

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

	* string/test-string.h (test_init): Fill BUF1 and BUF2 with
	nonzero characters.

2002-09-22  H.J. Lu  <hjl@gnu.org>

	* sysdeps/unix/sysv/linux/mmap64.c (MMAP2_PAGE_SHIFT): Renamed
	from PAGE_SHIFT.  Define if not defined.  Check MMAP2_PAGE_SHIFT
	only if __NR_mmap2 is defined.

	* sysdeps/unix/sysv/linux/powerpc/mmap64.c: Moved to ...
	* sysdeps/unix/sysv/linux/mmap64.c: ... here.
	* sysdeps/unix/sysv/linux/hppa/mmap64.c: File removed.
	* sysdeps/unix/sysv/linux/sparc/sparc32/mmap64.c: FIle removed,
2002-11-09 00:36:21 +00:00
Roland McGrath
369b849f1a * sysdeps/unix/sysv/linux/s390/s390-32/sysdep.h (INTERNAL_SYSCALL,
INTERNAL_SYSCALL_ERROR_P, INTERNAL_SYSCALL_ERRNO): New macros.
	(INLINE_SYSCALL): Use that.
	* sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h (INTERNAL_SYSCALL,
	INTERNAL_SYSCALL_ERROR_P, INTERNAL_SYSCALL_ERRNO): New macros.
	(INLINE_SYSCALL): Use that.
	* sysdeps/unix/sysv/linux/x86_64/sysdep.h (INTERNAL_SYSCALL,
	INTERNAL_SYSCALL_ERROR_P, INTERNAL_SYSCALL_ERRNO): New macros.
	(INLINE_SYSCALL): Use that.
	* sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h: Include
	dl-sysdep.h.
	(SYSCALL_ERROR_HANDLER): Define RTLD_PRIVATE_ERRNO variant.
	(__INTERNAL_SYSCALL_STRING): Define.
	* sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h: Include
	dl-sysdep.h.
	(SYSCALL_ERROR_HANDLER): Define RTLD_PRIVATE_ERRNO variant.
	(__INTERNAL_SYSCALL_STRING): Define.
	* sysdeps/unix/sysv/linux/sparc/sysdep.h (INLINE_SYSCALL): Pass
	__SYSCALL_STRING to inline_syscall*.
	(INTERNAL_SYSCALL, INTERNAL_SYSCALL_ERROR_P, INTERNAL_SYSCALL_ERRNO):
	New macros.
	(inline_syscall0, inline_syscall1, inline_syscall2, inline_syscall3,
	inline_syscall4, inline_syscall5, inline_syscall6): Add string
	argument.

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

	* libio/bug-wfflush.c: New file.
	* libio/Makefile (tests): Add bug-wfflush.
2002-10-24 18:49:00 +00:00
Roland McGrath
747bf98ea9 * elf/rtld-Rules ($(objpfx)rtld-libc.a): Use $(verbose) in ar command.
* sysdeps/mach/hurd/getresuid.c: New file.
	* sysdeps/mach/hurd/getresgid.c: New file.
	* sysdeps/mach/hurd/setresuid.c: New file.
	* sysdeps/mach/hurd/setresgid.c: New file.

	* posix/unistd.h [__USE_GNU] (getresuid, getresgid, setresuid,
	setresgid): Declare them.
	* NEWS: Mention it.
	* include/unistd.h
	(__getresuid, __getresgid, __setresuid, __setresgid): Declare them,
	add libc_hidden_proto.
	* posix/Versions (libc: GLIBC_2.3.2): New set.  Add
	getresuid, getresgid, setresuid, setresgid here.
	* Versions.def (libc): Define GLIBC_2.3.2 set.
	* sysdeps/generic/getresuid.c (__getresuid): Fix argument types.
	Add libc_hidden_def.
	* sysdeps/generic/getresgid.c (__getresgid): Likewise.
	* sysdeps/generic/setresgid.c: New file.
	* sysdeps/generic/setresuid.c: New file.
	* sysdeps/unix/sysv/linux/Makefile [$(subdir) = misc]
	(sysdep_routines): Don't add getresuid and getresgid here.
	* sysdeps/unix/sysv/linux/arm/Makefile [$(subdir) = misc]
	(sysdep_routines): Don't add setresuid and setresgid here.
	* sysdeps/unix/sysv/linux/cris/Makefile: Likewise.
	* sysdeps/unix/sysv/linux/sh/Makefile: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/Makefile: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-64/Makefile: Likewise.
	* sysdeps/unix/sysv/linux/i386/Makefile: Likewise.
	* sysdeps/unix/sysv/linux/m68k/Makefile: Likewise.
	* posix/Makefile (routines): Add them all here instead.
	* sysdeps/unix/sysv/linux/i386/getresuid.c (getresuid): Renamed to
	__getresuid.  Add libc_hidden_def for that, and weak alias to old name.
	* sysdeps/unix/sysv/linux/i386/getresgid.c (getresgid): Renamed to
	__getresgid.  Add libc_hidden_def for that, and weak alias to old name.
	* sysdeps/unix/sysv/linux/i386/setresuid.c: Add libc_hidden_def.
	[! __NR_setresuid]: Include generic file.
	* sysdeps/unix/sysv/linux/i386/setresgid.c (setresgid): Renamed to
	__setresgid.  Add libc_hidden_def for that, and weak alias to old name.
	[! __NR_setresuid]: Include generic file.
	* sysdeps/unix/sysv/linux/syscalls.list (setresuid, setresgid):
	Caller is - now, not EXTRA.
	* sysdeps/unix/sysv/linux/sparc/sparc32/syscalls.list
	(setresuid, setresgid, getresuid, getresgid): Likewise.
	* sysdeps/unix/sysv/linux/syscalls.list (getresuid, getresgid):
	Add these calls here.
	* sysdeps/unix/sysv/linux/alpha/syscalls.list: Remove them here.
	* sysdeps/unix/sysv/linux/hppa/syscalls.list: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-64/syscalls.list: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/syscalls.list: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/syscalls.list: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/syscalls.list: Likewise.
	* sysdeps/unix/sysv/linux/mips/syscalls.list: Likewise.
	* sysdeps/unix/sysv/linux/ia64/syscalls.list: Likewise.

	* sysdeps/unix/sysv/linux/Makefile [$(subdir) = misc]
	(sysdep_routines): Add setfsuid and setfsgid here.
	* sysdeps/unix/sysv/linux/arm/Makefile: Not here.
	* sysdeps/unix/sysv/linux/sparc/sparc32/Makefile: Likewise.
	* sysdeps/unix/sysv/linux/cris/Makefile: Likewise.
	* sysdeps/unix/sysv/linux/sh/Makefile: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/Makefile: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-64/Makefile: Likewise.
	* sysdeps/unix/sysv/linux/i386/Makefile: Likewise.
	* sysdeps/unix/sysv/linux/m68k/Makefile: Likewise.

	* hurd/errno.c: Renamed to ...
	* hurd/errno-loc.c: ... this.
	* hurd/Makefile (routines): errno -> errno-loc
2002-10-14 01:03:16 +00:00
Roland McGrath
5ec5c85706 2002-09-18 Roland McGrath <roland@redhat.com>
* sysdeps/unix/sysv/linux/sigaction.c (__libc_sigaction):
	Add libc_hidden_def.
	* sysdeps/unix/sysv/linux/arm/sigaction.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/sigaction.c: Likewise.
	* sysdeps/unix/sysv/linux/ia64/sigaction.c: Likewise.
	* sysdeps/unix/sysv/linux/mips/sigaction.c: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-64/sigaction.c: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/sigaction.c: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/sigaction.c: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/sigaction.c: Likewise.
2002-09-18 17:45:54 +00:00
Andreas Jaeger
c0ad824e40 Update.
2002-08-23  Andreas Jaeger  <aj@suse.de>

	* locale/loadarchive.c: Include <stdlib.h> for prototypes of
	alloca, free, qsort.

	* dlfcn/bug-dlsym1-lib1.c (foo): Add prototype to avoid warning.

	* sysdeps/ieee754/flt-32/e_jnf.c: Remove unused variable.
	* sysdeps/ieee754/ldbl-96/e_j0l.c: Likewise.

	* sysdeps/generic/fgetxattr.c: New file.
	* sysdeps/generic/flistxattr.c: New file.
	* sysdeps/generic/fremovexattr.c: New file.
	* sysdeps/generic/fsetxattr.c: New file.
	* sysdeps/generic/getxattr.c: New file.
	* sysdeps/generic/listxattr.c: New file.
	* sysdeps/generic/lgetxattr.c: New file.
	* sysdeps/generic/llistxattr.c: New file.
	* sysdeps/generic/lremovexattr.c: New file.
	* sysdeps/generic/lsetxattr.c: New file.
	* sysdeps/generic/removexattr.c: New file.
	* sysdeps/generic/setxattr.c: New file.

	* misc/sys/xattr.h: New file, contributed by Christoph Hellwig
	<hch@lst.de>.

	* misc/Makefile (headers): Add sys/xattr.h.
	(routines): Add *xattr calls.

	* misc/Versions: Add *xattr calls with version 2.3.

	* sysdeps/unix/sysv/linux/m68k/Versions: Remove *xattr syscalls.
	* sysdeps/unix/sysv/linux/s390/s390-32/Versions: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/Versions: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/Versions: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/Versions: Likewise.
	* sysdeps/unix/sysv/linux/ia64/Versions: Likewise.
	* sysdeps/unix/sysv/linux/alpha/Versions: Likewise.
	* sysdeps/unix/sysv/linux/arm/Versions: Likewise.

	* sysdeps/powerpc/elf/libc-start.c
	* sysdeps/unix/sysv/linux/powerpc/dl-sysdep.c
2002-08-23 09:29:27 +00:00
Andreas Jaeger
6acb39df39 Add *xattr syscalls with version 2.3. 2002-08-15 09:01:54 +00:00
Roland McGrath
6e86f21f71 2002-08-13 Jakub Jelinek <jakub@redhat.com>
* include/unistd.h (seteuid, setegid): Add libc_hidden_proto.
	* sysdeps/generic/seteuid.c (seteuid): Add libc_hidden_def.
	* sysdeps/generic/setegid.c (setegid): Likewise.
	* sysdeps/mach/hurd/seteuid.c (seteuid): Likewise.
	* sysdeps/mach/hurd/setegid.c (setegid): Likewise.
	* sysdeps/unix/bsd/seteuid.c (seteuid): Likewise.
	* sysdeps/unix/bsd/setegid.c (setegid): Likewise.
	* sysdeps/unix/sysv/aix/seteuid.c (seteuid): Likewise.
	* sysdeps/unix/sysv/aix/setegid.c (setegid): Likewise.
	* sysdeps/unix/sysv/linux/i386/setegid.c (setegid): Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/seteuid.c (seteuid): Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/setegid.c (setegid): Likewise.
	* sysdeps/unix/sysv/linux/seteuid.c (seteuid): Likewise.
	* sysdeps/unix/sysv/linux/setegid.c (setegid): Likewise.
	* sysdeps/unix/sysv/linux/i386/seteuid.c (seteuid): Likewise.
	Remove fallback if __ASSUME_SETRESUID_SYSCALL.
2002-08-13 00:22:49 +00:00
Ulrich Drepper
37ba7d6663 Update.
2002-08-02  Ulrich Drepper  <drepper@redhat.com>

	* configure.in (HAVE_BROKEN_ALIAS_ATTRIBUTE): Add check for
	broken alias attribute handling.
	* config.h.in (HAVE_BROKEN_ALIAS_ATTRIBUTE): Add.

	* assert/assert.c (__assert_fail): Fix typo in comment.

	* include/rpc/rpc.h: Declare __libc_tsd_RPC_VARS if USE_TLS &&
	HAVE___THREAD.
	* sunrpc/rpc_thread.c: Don't define __libc_tsd_RPC_VARS as static
	if USE_TLS && HAVE___THREAD.
	* sunrpc/Versions [libc] (GLIBC_PRIVATE): Export __libc_tsd_RPC_VARS.

2002-08-02  Jakub Jelinek  <jakub@redhat.com>

	* assert/assert.c (__assert_fail): Remove undef.
	Replace INTDEF with libc_hidden_def.
	* assert/__assert.c (__assert): Remove INTUSE.
	* elf/dl-minimal.c (__assert_fail): Replace INTDEF with
	libc_hidden_weak.
	* include/libc-symbols.h (hidden_proto, hidden_def, hidden_weak,
	hidden_ver, libc_hidden_proto, libc_hidden_def, libc_hidden_weak,
	libc_hidden_ver, rtld_hidden_proto, rtld_hidden_def, rtld_hidden_weak,
	rltd_hidden_ver, libm_hidden_proto, libm_hidden_def, libm_hidden_weak,
	libm_hiden_ver): Define.
	* include/assert.h (__assert_fail_internal): Remove.
	(__assert_fail): Add prototype.  Add hidden_proto.
	* include/libc-internal.h (__libc_freeres, __profile_frequency): Add
	libc_hidden_proto.
	* include/wchar.h (__mbrtowc_internal, __mbrlen_internal): Remove.
	(__mbrtowc, __mbrlen): Use libc_hidden_proto.  Remove macros.
	* include/string.h (__mempcpy, __stpncpy, __rawmemchr, __strcasecmp):
	Add libc_hidden_proto.
	* include/fcntl.h (__open64, __libc_open, __libc_fcntl, __open,
	__fcntl): Add libc_hidden_proto.  Remove macros.
	(__open_internal, __fcntl_internal): Remove.
	* libio/iofdopen.c (_IO_fcntl): Remove INTUSE from __fcntl.
	* malloc/set-freeres.c (__libc_freeres): Add libc_hidden_def.
	* nss/nsswitch.h (__nss_database_lookup, __nss_next): Add
	libc_hiden_proto.
	* nss/nsswitch.c (__nss_database_lookup, __nss_next): Add
	libc_hidden_def.
	* sysdeps/generic/mempcpy.c (__mempcpy): Remove undef.
	Add libc_hidden_def.
	* sysdeps/generic/open64.c (__open64): Add libc_hidden_def.
	* sysdeps/generic/open.c (__open): Remove undef.
	Add libc_hidden_def.  Remove INTDEF.
	* sysdeps/generic/fcntl.c (__fcntl): Remove undef.
	Add libc_hidden_def.
	* sysdeps/mach/hurd/fcntl.c (__fcntl): Likewise.
	* sysdeps/i386/i586/mempcpy.S (__mempcpy): Add libc_hidden_def.
	* sysdeps/i386/i686/mempcpy.S (__mempcpy): Likewise.
	* sysdeps/mach/hurd/fcntl.c (__libc_fcntl, __fcntl): Remove undef.
	(__fcntl): Remove INTDEF2.  Add libc_hidden_weak.
	(__libc_fcntl): Add libc_hidden_def.
	* sysdeps/mach/hurd/open.c (__libc_open, __open): Remove undef.
	(__open): Remove INTDEF2.  Add libc_hidden_weak.
	(__libc_open): Add libc_hidden_def.
	* sysdeps/posix/open64.c (__open64): Add libc_hidden_weak.
	* sysdeps/standalone/open.c (__open): Add libc_hidden_def.
	* sysdeps/unix/sysv/aix/fcntl.c (__libc_fcntl, __fcntl): Remove undef.
	Add libc_hidden_def.
	* sysdeps/unix/sysv/aix/open.c (__libc_open, __open): Remove undef.
	Add libc_hidden_def.
	* sysdeps/unix/sysv/linux/i386/fcntl.c (__libc_fcntl, __fcntl): Remove
	undef.
	(__fcntl): Remove INTDEF2.  Add libc_hidden_weak.
	(__libc_fcntl): Add libc_hidden_def.
	* sysdeps/unix/sysv/linux/syscalls.list (__fcntl_internal,
	__getpgid_internal, __chown_internal): Remove.
	(__GI___fcntl, __GI___libc_fcntl, __GI___getpgid, __GI___pipe,
	__GI___sched_setscheduler, __GI___select, __GI___setpgid,
	__GI___chown): Add.
	* sysdeps/unix/syscalls.list (__close_internal, __dup2_internal,
	__getpid_internal, __open_internal, __write_internal): Remove.
	(__GI___fcntl, __GI___libc_fcntl, __GI___open, __GI___libc_open,
	__GI___chown, __GI___close, __GI___dup2, __GI___getpid,
	__GI___libc_open, __GI___open, __GI___read, __GI___libc_read,
	__GI___select, __GI___statfs, __GI___write, __GI___libc_write): Add.
	* wcsmbs/mbrlen.c (__mbrlen): Remove undef.
	Replace INTDEF with libc_hidden_def.
	* wcsmbs/mbrtowc.c (__mbrtowc): Likewise.
	* catgets/catgetsinfo.h (__open_catalog): Add libc_hidden_proto.
	* catgets/open_catalog.c (__open_catalog): Add libc_hidden_def.
	* elf/dl-profile.c (__profile_frequency): Add libc_hidden_proto.
	* include/rpc/rpc.h (__rpc_thread_svc_fdset, __rpc_thread_createerr):
	Add libc_hidden_proto.
	* include/sys/poll.h (__poll): Add libc_hidden_proto.
	* include/sys/select.h (__select): Likewise.
	* include/sys/socket.h (__send): Likewise.
	* include/sys/statfs.h (__statfs): Likewise.
	* include/unistd.h (__pwrite64, __libc_read, __pipe, __chown, __dup2,
	__getpid, __getpgid, __setpgid, __close, __read, __write,
	__getpagesize, __sbrk): Likewise.
	(__chown_internal, __dup2_internal, __getpid_internal,
	__getpgid_internal, __close_internal, __write_internal,
	__getpagesize_internal): Remove.
	(__close, __dup2, __getpagesize, __getpgid, __getpid, __libc_write):
	Remove macros.
	* include/printf.h (__printf_fp): Add libc_hidden_proto.
	* include/sched.h (__sched_setscheduler): Likewise.
	* include/resolv.h (__res_ninit, __res_randomid): Likewise.
	* include/stdlib.h (__secure_getenv): Likewise.
	* include/signal.h (__sigaction, __sigsuspend): Likewise.
	* inet/getaliasent_r.c (NSS_attribute_hidden): Remove.
	* inet/getaliasname_r.c (NSS_attribute_hidden): Remove.
	* inet/getnetbyad_r.c (NSS_attribute_hidden): Remove.
	* inet/getnetbynm_r.c (NSS_attribute_hidden): Remove.
	* inet/getnetent_r.c (NSS_attribute_hidden): Remove.
	* inet/getproto_r.c (NSS_attribute_hidden): Remove.
	* inet/getprtent_r.c (NSS_attribute_hidden): Remove.
	* inet/getprtname_r.c (NSS_attribute_hidden): Remove.
	* inet/getrpcbyname_r.c (NSS_attribute_hidden): Remove.
	* inet/getrpcbynumber_r.c (NSS_attribute_hidden): Remove.
	* inet/getrpcent_r.c (NSS_attribute_hidden): Remove.
	* inet/getservent_r.c (NSS_attribute_hidden): Remove.
	* inet/getsrvbynm_r.c (NSS_attribute_hidden): Remove.
	* inet/getsrvbypt_r.c (NSS_attribute_hidden): Remove.
	* inet/gethstbyad_r.c (DB_LOOKUP_FCT): Remove INTUSE.
	* inet/gethstbynm2_r.c (DB_LOOKUP_FCT): Likewise.
	* inet/gethstbynm_r.c (DB_LOOKUP_FCT): Likewise.
	* inet/gethstent_r.c (DB_LOOKUP_FCT): Likewise.
	* libio/genops.c (__overflow): Add libc_hidden_def.
	* libio/iovdprintf.c: Remove libio.h include.
	* libio/libioP.h (libc_hidden_proto, libc_hidden_def,
	libc_hidden_weak): Define to nothing if not defined.
	(__overflow, __woverflow): Add libc_hidden_proto.
	* libio/wgenops.c (__woverflow): Add libc_hidden_def.
	* nss/getXXent_r.c (NSS_attribute_hidden): Remove.
	(DB_LOOKUP_FCT): Add libc_hidden_proto.
	* nss/getXXbyYY_r.c (NSS_attribute_hidden): Remove.
	(DB_LOOKUP_FCT): Add libc_hidden_proto.
	* nss/XXX-lookup.c (DB_LOOKUP_FCT): Add libc_hidden_proto
	and libc_hidden_def.
	* nss/hosts-lookup.c (__nss_hosts_lookup): Remove INTDEF.
	* posix/bsd-getpgrp.c (__getpgid_internal): Remove.
	(__getpgid): Add libc_hidden_proto.
	(__bsd_getpgrp): Remove INTUSE.
	* resolv/res_init.c (__res_ninit, __res_randomid): Add
	libc_hidden_def.
	* shadow/getspent_r.c (NSS_attribute_hidden): Remove.
	* shadow/getspnam_r.c (NSS_attribute_hidden): Remove.
	* stdio-common/printf_fp.c (__printf_fp): Add libc_hidden_def.
	* stdlib/strfmon.c (__printf_fp): Add libc_hidden_proto.
	* stdlib/secure-getenv.c (__secure_getenv): Add libc_hidden_def.
	* sunrpc/rpc_thread.c (__rpc_thread_svc_fdset,
	__rpc_thread_createerr): Add libc_hidden_def.
	* sysdeps/alpha/alphaev67/rawmemchr.S (__rawmemchr): Add
	libc_hidden_def.
	* sysdeps/alpha/alphaev67/stpncpy.S (__stpncpy): Likewise.
	* sysdeps/alpha/rawmemchr.S (__rawmemchr): Likewise.
	* sysdeps/alpha/stpncpy.S (__stpncpy): Likewise.
	* sysdeps/generic/chown.c (__chown): Likewise.
	* sysdeps/generic/close.c (__close): Likewise.
	* sysdeps/generic/dup2.c (__dup2): Likewise.
	* sysdeps/generic/pipe.c (__pipe): Likewise.
	* sysdeps/generic/prof-freq.c (__profile_frequency): Likewise.
	* sysdeps/generic/pwrite64.c (__pwrite64): Likewise.
	* sysdeps/generic/rawmemchr.c (__rawmemchr): Likewise.
	* sysdeps/generic/read.c (__libc_read): Likewise.
	(__read): Add libc_hidden_weak.
	* sysdeps/generic/sbrk.c (__sbrk): Add libc_hidden_def.
	* sysdeps/generic/sched_sets.c (__sched_setscheduler): Likewise.
	* sysdeps/generic/select.c (__select): Likewise.
	* sysdeps/generic/send.c (__send): Likewise.
	* sysdeps/generic/setpgid.c (__setpgid): Likewise.
	* sysdeps/generic/sigaction.c (__sigaction): Likewise.
	* sysdeps/generic/sigsuspend.c (__sigsuspend): Likewise.
	* sysdeps/generic/statfs.c (__statfs): Likewise.
	* sysdeps/generic/stpncpy.c (__stpncpy): Likewise.
	* sysdeps/generic/strcasecmp.c (__strcasecmp): Likewise.
	* sysdeps/generic/getpagesize.c (__getpagesize): Likewise.
	Remove undef and INTDEF.
	* sysdeps/generic/getpgid.c (__getpgid): Likewise.
	* sysdeps/generic/getpid.c (__getpid): Likewise.
	* sysdeps/generic/write.c (__libc_write): Likewise.
	(__write): Add libc_hidden_weak.  Remove undef and INTDEF.
	* sysdeps/i386/rawmemchr.S (__rawmemchr): Add libc_hidden_def.
	* sysdeps/i386/stpncpy.S (__stpncpy): Likewise.
	* sysdeps/m68k/rawmemchr.S (__rawmemchr): Likewise.
	* sysdeps/mach/hurd/chown.c (__chown): Likewise.  Remove INTDEF.
	* sysdeps/mach/hurd/close.c (__close): Add libc_hidden_def.
	Remove undef and INTDEF.
	* sysdeps/mach/hurd/dup2.c (__dup2): Likewise.
	* sysdeps/mach/hurd/getpgid.c (__getpgid): Likewise.
	* sysdeps/mach/hurd/getpid.c (__getpid): Likewise.
	* sysdeps/mach/getpagesize.c (__getpagesize): Likewise.
	* sysdeps/mach/hurd/write.c (__libc_write): Likewise.
	(__write): Add libc_hidden_weak.  Remove undef and INTDEF.
	* sysdeps/mach/hurd/pipe.c: Include unistd.h.
	(__pipe): Add libc_hidden_def.
	* sysdeps/mach/hurd/dl-sysdep.c (__libc_read, __libc_write): Add
	libc_hidden_weak.
	* sysdeps/mach/hurd/poll.c (__poll): Add libc_hidden_def.
	* sysdeps/mach/hurd/profil.c (__profile_frequency): Likewise.
	* sysdeps/mach/hurd/read.c (__libc_read): Likewise.
	(__read): Add libc_hidden_weak.
	* sysdeps/mach/hurd/pwrite64.c (__pwrite64): Likewise.
	(__libc_pwrite64): Add libc_hidden_def.
	* sysdeps/mach/hurd/sbrk.c (__sbrk): Likewise.
	* sysdeps/mach/hurd/select.c (__select): Likewise.
	* sysdeps/mach/hurd/send.c (__send): Likewise.
	* sysdeps/mach/hurd/setpgid.c (__setpgid): Likewise.
	* sysdeps/mach/hurd/sigaction.c (__sigaction): Likewise.
	* sysdeps/mach/hurd/sigsuspend.c (__sigsuspend): Likewise.
	* sysdeps/mach/hurd/statfs.c (__statfs): Likewise.
	* sysdeps/posix/dup2.c: Likewise.
	Remove undef and INTDEF.
	* sysdeps/posix/getpagesize.c (__getpagesize): Likewise.
	* sysdeps/posix/pwrite64.c (__libc_pwrite64): Add libc_hidden_def.
	(__pwrite64): Add libc_hidden_weak.
	* sysdeps/posix/sigsuspend.c (__sigsuspend): Add libc_hidden_def.
	* sysdeps/sparc/sparc64/rawmemchr.S (__rawmemchr): Likewise.
	* sysdeps/sparc/sparc64/stpncpy.S (__stpncpy): Likewise.
	* sysdeps/standalone/close.c (__close): Likewise.
	* sysdeps/standalone/write.c (__libc_write): Likewise.
	(__write): Add libc_hidden_weak.
	* sysdeps/standalone/read.c (__read): Likewise.
	(__libc_read): Add libc_hidden_def.
	* sysdeps/unix/grantpt.c (grantpt): Remove INTUSE.
	* sysdeps/unix/bsd/m68k/pipe.S (__pipe): Add libc_hidden_def.
	* sysdeps/unix/bsd/osf/alpha/pipe.S (__pipe): Likewise.
	* sysdeps/unix/bsd/vax/pipe.S (__pipe): Likewise.
	* sysdeps/unix/bsd/syscalls.list (__GI___getpagesize): Likewise.
	* sysdeps/unix/bsd/poll.c (__poll): Likewise.
	* sysdeps/unix/bsd/sigaction.c (__sigaction): Likewise.
	* sysdeps/unix/bsd/sigsuspend.c (__sigsuspend): Likewise.
	* sysdeps/unix/common/syscalls.list (__GI___getpgid, __GI___setpgid,
	__GI___sigaction): Add.
	* sysdeps/unix/i386/pipe.S (__pipe): Add libc_hidden_def.
	* sysdeps/unix/inet/syscalls.list (__GI___send): Add.
	* sysdeps/unix/mips/pipe.S (__pipe): Add libc_hidden_def.
	* sysdeps/unix/sparc/pipe.S (__pipe): Likewise.
	* sysdeps/unix/sysv/irix4/syscalls.list (__GI___getpgid,
	__GI___setpgid): Add.
	* sysdeps/unix/sysv/aix/chown.c (__chown): Add libc_hidden_def.
	Remove undef and INTDEF.
	* sysdeps/unix/sysv/aix/getpgid.c (__getpgid): Likewise.
	* sysdeps/unix/sysv/aix/write.c (__write, __libc_write): Likewise.
	* sysdeps/unix/sysv/aix/close.c (__close): Add libc_hidden_def.
	* sysdeps/unix/sysv/aix/getpid.c (__getpid): Likewise.
	* sysdeps/unix/sysv/aix/pipe.c (__pipe): Likewise.
	* sysdeps/unix/sysv/aix/read.c (__read, __libc_read): Likewise.
	* sysdeps/unix/sysv/aix/poll.c (__poll): Likewise.
	* sysdeps/unix/sysv/aix/sbrk.c (__sbrk): Likewise.
	* sysdeps/unix/sysv/aix/sigaction.c (__sigaction): Likewise.
	* sysdeps/unix/sysv/aix/sigsuspend.c (__sigsuspend): Likewise.
	* sysdeps/unix/sysv/aix/statfs.c (__statfs): Likewise.
	* sysdeps/unix/sysv/aix/select.c (__select): Likewise.
	* sysdeps/unix/sysv/aix/setpgid.c (__setpgid): Likewise.
	* sysdeps/unix/sysv/linux/alpha/pipe.S (__pipe): Likewise.
	* sysdeps/unix/sysv/linux/alpha/syscalls.list (__GI___pwrite64,
	__GI___statfs, __GI___send): Add.
	* sysdeps/unix/sysv/linux/alpha/select.S (__select): Add
	libc_hidden_ver resp. libc_hidden_def.
	* sysdeps/unix/sysv/linux/alpha/sigsuspend.S (__sigsuspend): Add
	libc_hidden_def.
	* sysdeps/unix/sysv/linux/ia64/getpagesize.c (__getpagesize):
	Likewise.  Remove undef and INTDEF.
	* sysdeps/unix/sysv/linux/ia64/pipe.S (__pipe): Add libc_hidden_def.
	* sysdeps/unix/sysv/linux/ia64/syscalls.list (__GI___pwrite64,
	__GI___statfs, __GI___send): Add.
	* sysdeps/unix/sysv/linux/ia64/sigaction.c (__sigaction): Add
	libc_hidden_def.
	* sysdeps/unix/sysv/linux/ia64/sigsuspend.c (__sigsuspend):
	Likewise.
	* sysdeps/unix/sysv/linux/sh/pipe.S (__pipe): Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/chown.c (__chown): Add
	libc_hidden_ver resp. libc_hidden_def.
	* sysdeps/unix/sysv/linux/s390/s390-64/syscalls.list (__GI___pwrite64,
	__GI___send): Add.
	* sysdeps/unix/sysv/linux/s390/s390-64/sigaction.c (__sigaction):
	Add libc_hidden_weak.
	* sysdeps/unix/sysv/linux/s390/s390-64/sigsuspend.c (__sigsuspend):
	Add libc_hidden_def.
	* sysdeps/unix/sysv/linux/hppa/syscalls.list (__GI___send): Add.
	* sysdeps/unix/sysv/linux/arm/sigaction.c (__sigaction): Add
	libc_hidden_weak.
	* sysdeps/unix/sysv/linux/i386/chown.c (__chown): Add libc_hidden_ver
	resp. libc_hidden_def.
	* sysdeps/unix/sysv/linux/i386/sigaction.c (__sigaction): Add
	libc_hidden_weak.
	* sysdeps/unix/sysv/linux/m68k/chown.c (__chown): Likewise.  Remove
	INTDEF.
	* sysdeps/unix/sysv/linux/m68k/getpagesize.c (__getpagesize):
	Likewise.  Remove undef.
	* sysdeps/unix/sysv/linux/mips/pwrite64.c (__pwrite64): Add
	libc_hidden_weak.
	* sysdeps/unix/sysv/linux/mips/syscalls.list (__GI___send): Add.
	* sysdeps/unix/sysv/linux/mips/sigaction.c (__sigaction): Add
	libc_hidden_weak.
	* sysdeps/unix/sysv/linux/powerpc/chown.c (__chown): Add
	libc_hidden_def.
	* sysdeps/unix/sysv/linux/powerpc/pwrite64.c (__pwrite64): Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/getpagesize.c (__getpagesize):
	Likewise.  Remove undef and INTDEF.
	* sysdeps/unix/sysv/linux/sparc/sparc32/pipe.S (__pipe): Add
	libc_hidden_def.
	* sysdeps/unix/sysv/linux/sparc/sparc32/sigaction.c (__sigaction): Add
	libc_hidden_weak.
	* sysdeps/unix/sysv/linux/sparc/sparc64/pipe.S (__pipe): Add
	libc_hidden_def.
	* sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list
	(__GI___pwrite64, __GI___statfs, __GI___select, __GI___send): Add.
	* sysdeps/unix/sysv/linux/sparc/sparc64/sigaction.c (__sigaction): Add
	libc_hidden_weak.
	* sysdeps/unix/sysv/linux/sparc/sparc64/sigsuspend.c (__sigsuspend):
	Add libc_hidden_def.
	* sysdeps/unix/sysv/linux/x86_64/syscalls.list (__GI___pwrite64,
	__GI___statfs): Add.
	* sysdeps/unix/sysv/linux/x86_64/send.c (__send): Add
	libc_hidden_weak.
	* sysdeps/unix/sysv/linux/x86_64/sigaction.c (__sigaction): Likewise.
	* sysdeps/unix/sysv/linux/getpagesize.c: Add libc_hidden_def.
	Remove undef and INTDEF.
	* sysdeps/unix/sysv/linux/poll.c (__poll): Add libc_hidden_def.
	* sysdeps/unix/sysv/linux/pwrite64.c (__pwrite64): Add
	libc_hidden_def.
	* sysdeps/unix/sysv/linux/send.S (__send): Likewise.
	* sysdeps/unix/sysv/linux/sigaction.c (__sigaction): Add
	libc_hidden_weak.
	* sysdeps/unix/sysv/linux/sigsuspend.c (__sigsuspend): Add
	libc_hidden_def.
	* sysdeps/unix/sysv/sco3.2.4/__setpgid.c (__setpgid): Likewise.
	* sysdeps/unix/sysv/sco3.2.4/sigaction.S (__sigaction): Likewise.
	* sysdeps/unix/sysv/sysv4/solaris2/syscalls.list (__GI___sigaction):
	Add.
	* sysdeps/unix/sysv/sysv4/__getpgid.c (__getpgid): Add
	libc_hidden_def.  Remove undef and INTDEF.
	* sysdeps/unix/sysv/sysv4/getpgid.c (__getpgid): Likewise.
	* sysdeps/unix/sysv/sysv4/__setpgid.c (__setpgid): Add
	libc_hidden_def.
	* sysdeps/unix/sysv/sysv4/setpgid.c (__setpgid): Likewise.
	* sysdeps/unix/sysv/sysv4/sigaction.c (__sigaction): Likewise.
	* sysdeps/unix/sysv/sigaction.c (__sigaction): Likewise.
	* sysdeps/unix/getpagesize.c (__getpagesize): Add libc_hidden_def.
	Remove undef and INTDEF.
	* configure.in (HAVE_BROKEN_VISIBILITY_ATTRIBUTE): Add check for
	broken visibility attribute handling.
	* config.h.in (HAVE_BROKEN_VISIBILITY_ATTRIBUTE): Add.

2002-08-02  Ulrich Drepper  <drepper@redhat.com>
2002-08-03 07:02:10 +00:00
Ulrich Drepper
434d3784f1 Update.
2002-04-26  Isamu Hasegawa  <isamu@yamato.ibm.com>

	* posix/regcomp.c (re_compile_fastmap_iter): Fix fastmap in case of
	not _LIBC and RE_ENABLE_I18N.
	(build_range_exp): Implement for not _LIBC.
	(build_collating_symbol): Likewise.
	(parse_bracket_exp): Unify redundant error handlings.
	Don't erase mbcset for non matching list in multibyte envs.
	(build_word_op): Add '_' to matching list for \w operator.
	* posix/regex_internal.c (re_string_construct): Invoke
	build_upper_buffer in case of not RE_ENABLE_I18N.
	(re_string_reconstruct): Don't touch cur_state in case of not
	RE_ENABLE_I18N.
	* posix/regex_internal.h (attribute_hidden): New macro in case of
	not _LIBC.
	(re_charset_t): Define range_starts/ends in case of not _LIBC.
	* posix/regexec.c (sift_states_iter_mb): Hide in case of not
	RE_ENABLE_I18N.
	(transit_state_mb): Likewise.
	(check_node_accept_bytes): Implement the code evaluating range
	expression in case of not _LIBC.
	(find_collation_sequence_value): Hide in case of not _LIBC.

2002-04-26  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/unix/sysv/linux/sparc/sparc32/semctl.c: Copied from
	i386/semctl.c.
	(__old_semctl, __new_semctl): Only use va_arg if the argument will
	be used.
2002-04-26 20:52:02 +00:00
Ulrich Drepper
d060e318a7 Update.
2002-04-14  Ulrich Drepper  <drepper@redhat.com>

	* include/sys/stat.h: Declare __fxstat_internal and __fxstat64_internal
	and define __fxstate and __fxstat64 macros if not NOT_IN_libc.
	Remove __lstat and __fstat inline functions.
	* sysdeps/generic/fxstat.c: Use INTDEF for __fxstat.
	* sysdeps/mach/hurd/fxstat.c: Likewise.
	* sysdeps/unix/fxstat.c: Likewise.
	* sysdeps/unix/sysv/aix/fxstat.c: Likewise.
	* sysdeps/unix/sysv/linux/fxstat.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/fxstat.c: Likewise.
	* sysdeps/unix/sysv/linux/ia64/fxstat.c: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-64/fxstat.c: Likewise.
	* sysdeps/generic/fxstat64.c: Use INTDEF for __fxstat64.
	* sysdeps/mach/hurd/fxstat64.c: Likewise.
	* sysdeps/unix/sysv/aix/fxstat64.c: Likewise.
	* sysdeps/unix/sysv/linux/fxstat64.c: Likewise.

	* include/unistd.h: Declare __getpid_internal and define
	__getpid macro if not NOT_IN_libc.
	* sysdeps/mach/hurd/getpid.c: Use INTDEF for __getpid.
	* sysdeps/generic/getpid.c: Likewise.
	* sysdeps/unix/syscalls.list: Add __getpid_internal alias.

	* include/unistd.h: Declare __getpgid_internal and define
	__getpgid macro if not NOT_IN_libc.
	* sysdeps/generic/getpgid.c: Use INTDEF for __getpgid.
	* sysdeps/mach/hurd/getpgid.c: Likewise.
	* sysdeps/unix/sysv/aix/getpgid.c: Likewise.
	* sysdeps/unix/sysv/sysv4/__getpgid.c: Likewise.
	* sysdeps/unix/sysv/sysv4/getpgid.c: Likewise.
	* sysdeps/unix/sysv/linux/syscalls.list: Add _getpgid_internal alias.

	* include/unistd.h: Declare __getpagesize_internal and define
	__getpagesize macro if not NOT_IN_libc.
	* sysdeps/unix/sysv/linux/shmat.c: Include <unistd.h> for
	__getpagesize.
	* sysdeps/generic/getpagesize.c: Use INTDEF for __getpagesize.
	* sysdeps/mach/getpagesize.c: Likewise.
	* sysdeps/posix/getpagesize.c: Likewise.
	* sysdeps/unix/getpagesize.c: Likewise.
	* sysdeps/unix/sysv/linux/getpagesize.c: Likewise.
	* sysdeps/unix/sysv/linux/ia64/getpagesize.c: Likewise.
	* sysdeps/unix/sysv/linux/m68k/getpagesize.c: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/getpagesize.c: Likewise.
2002-04-14 08:47:01 +00:00
Ulrich Drepper
e23574f0c3 LOC): Don't paste in a token. 2002-04-11 20:38:52 +00:00
Ulrich Drepper
27ef89fbdc Update.
2002-02-01  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/generic/ldsodefs.h (_dl_load_lock): Remove duplicate
	definition.
	* sysdeps/ia64/hp-timing.h: Move _dl_hp_timing_overhead in
	_rtld_global struct.
	* sysdeps/sparc/sparc32/sparcv9/hp-timing.h: Likewise.
	* sysdeps/sparc/sparc64/hp-timing.c: Likewise.
	* sysdeps/sparc/sparc64/hp-timing.h: Likewise.
	* sysdeps/sparc/sparc64/Makefile: Make hp-timing static only.
	* sysdeps/unix/sysv/aix/init-first.c (_dl_fpu_control,
	_dl_fpu_control_set): Remove unused externs.
	* sysdeps/unix/sysv/linux/sparc/sparc32/dl-procinfo.c: New file.
	* sysdeps/unix/sysv/linux/sparc/sparc64/dl-procinfo.c: New file.
	* sysdeps/unix/sysv/linux/sparc/sparc32/dl-procinfo.h: Move procinfo
	related variables in _rtld_global struct.
	* sysdeps/unix/sysv/linux/sparc/sparc64/dl-procinfo.h: Likewise.
	* sysdeps/unix/sysv/linux/init-first.c (_dl_fpu_control_set): Remove
	unused extern.
2002-02-01 19:06:42 +00:00
Ulrich Drepper
5688da5537 Update.
* sysdeps/generic/ldsodefs.h: Add _dl_load_lock, _dl_lazy,
	_dl_dynamic_weak, _dl_fpu_control, _dl_cpuclock_offset, and
	_dl_debug_fd to rtld_global.
	* elf/Versions: Likewise.
	* elf/dl-close.c: Likewise.
	* 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/do-lookup.h: Likewise.
	* elf/rtld.c: Likewise.
	* sysdeps/generic/dl-cache.c: Likewise.
	* sysdeps/generic/dl-sysdep.c: Likewise.
	* sysdeps/ia64/Versions: Likewise.
	* sysdeps/unix/clock_gettime.c: Likewise.
	* sysdeps/unix/clock_settime.c: Likewise.
	* sysdeps/unix/sysv/linux/init-first.c: Likewise.
	* sysdeps/sparc/Versions: Removed.
	* sysdeps/i386/i686/Versions : Removed.
	* sysdeps/x86_64/Versions: Removed.
	* configure.in: Define HAVE_PROTECTED if .protected is available.
	* config.h.in: Add entry for HAVE_PROTECTED.

2002-01-31  Jakub Jelinek  <jakub@redhat.com.

	* sysdeps/alpha/dl-machine.h: Move global variables for SHARED
	code in struct _rtld_global.  Export this struct, remove all
	exports for the signal variables.
	* sysdeps/arm/dl-machine: Likewise.
	* sysdeps/generic/dl-origin: Likewise.
	* sysdeps/generic/dl-sysdep: Likewise.
	* sysdeps/generic/dl-cache: Likewise.
	* sysdeps/hppa/dl-fptr: Likewise.
	* sysdeps/hppa/dl-machine: Likewise.
	* sysdeps/cris/dl-machine: Likewise.
	* sysdeps/i386/dl-machine: Likewise.
	* sysdeps/ia64/dl-machine: Likewise.
	* sysdeps/m68k/dl-machine: Likewise.
	* sysdeps/mach/hurd/dl-sysdep: Likewise.
	* sysdeps/mips/mips64/dl-machine: Likewise.
	* sysdeps/mips/dl-machine: Likewise.
	* sysdeps/powerpc/elf/libc-start: Likewise.
	* sysdeps/powerpc/dl-machine: Likewise.
	* sysdeps/powerpc/dl-start: Likewise.
	* sysdeps/sparc/sparc32/dl-machine: Likewise.
	* sysdeps/sparc/sparc64/dl-machine: Likewise.
	* sysdeps/sh/dl-machine: Likewise.
	* sysdeps/s390/s390-32/dl-machine: Likewise.
	* sysdeps/s390/s390-64/dl-machine: Likewise.
	* sysdeps/unix/sysv/aix/libc-start: Likewise.
	* sysdeps/unix/sysv/aix/start-libc: Likewise.
	* sysdeps/unix/sysv/linux/ia64/dl-static: Likewise.
	* sysdeps/unix/sysv/linux/m68k/getpagesize: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/getpagesize: Likewise.
	* sysdeps/x86_64/dl-machine: Likewise.

2002-01-31  Ulrich Drepper  <drepper@redhat.com>
2002-02-01 01:33:04 +00:00
Ulrich Drepper
74bd2300b5 Update.
2001-10-02  Jakub Jelinek  <jakub@redhat.com>
	    H.J. Lu  <hjl@gnu.org>

	* configure.in (libc_cv_gcc_static_libgcc): Set to -static-libgcc
	if gcc supports this flag.
	(EXPORT_UNWIND_FIND_FDE): Define unless target configure disables it.
	(gcc3): Allow glibc to be compiled with gcc 3.x.
	* config.h.in (EXPORT_UNWIND_FIND_FDE): Add.
	* config.make.in (static-libgcc, unwind-find-fde): Add.
	* Makerules (build-shlib-helper, build-module-helper): Use it.
	* scripts/versions.awk: Make sure GLIBC_ versions come first.
	* elf/soinit.c (__libc_global_ctors): Set tbases and dbases if
	necessary.
	(_fini): Call __deregister_frame_info_bases if
	__register_frame_info_bases was used to register.
	* elf/Versions (__register_frame_info, __deregister_frame_info): Add
	for GLIBC_2.0.
	(__register_frame_info_bases, __register_frame_info_table_bases,
	__deregister_frame_info_bases, _Unwind_Find_FDE): Add for GLIBC_2.2.5.
	* elf/Makefile (routines): Add unwind-dw2-fde.
	(shared-only-routines): Add unwind-dw2-fde.
	* sysdeps/alpha/gccframe.h: New file.
	* sysdeps/arm/gccframe.h: New file.
	* sysdeps/generic/framestate.c: New file.
	* sysdeps/generic/dwarf2.h: New file.
	* sysdeps/generic/gccframe.h (struct object): Update from gcc 3.0.
	* sysdeps/generic/unwind-dw2-fde.c: New file.
	* sysdeps/unix/sysv/linux/ia64/unwind-dw2-fde.c: New file.
	* sysdeps/generic/unwind-dw2-fde.h: New file.
	* sysdeps/generic/unwind-dw2.c: New file.
	* sysdeps/generic/unwind-pe.h: New file.
	* sysdeps/generic/unwind.h: New file.
	* sysdeps/hppa/gccframe.h: New file.
	* sysdeps/i386/gccframe.h: New file.
	* sysdeps/m68k/gccframe.h: New file.
	* sysdeps/mips/gccframe.h: New file.
	* sysdeps/powerpc/gccframe.h: New file.
	* sysdeps/s390/gccframe.h: New file.
	* sysdeps/sh/gccframe.h: New file.
	* sysdeps/sparc/gccframe.h: New file.
	* sysdeps/vax/gccframe.h: New file.
	* sysdeps/unix/sysv/linux/configure.in (libc_cv_gcc_unwind_find_fde):
	Set on all architectures except ia64.
	* sysdeps/mach/hurd/configure.in (libc_cv_gcc_unwind_find_fde): Set
	for i386.
	* sysdeps/mach/hurd/i386/Versions (__register_frame_info,
	__deregister_frame_info): Move to elf/Versions.
	* sysdeps/unix/sysv/linux/m68k/Versions: Likewise.
	* sysdeps/unix/sysv/linux/arm/Versions: Likewise.
	* sysdeps/unix/sysv/linux/alpha/Versions: Likewise.
	* sysdeps/unix/sysv/linux/i386/Versions: Likewise.
	* sysdeps/unix/sysv/linux/mips/Versions: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/Versions: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/Versions: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/Versions: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/Versions: Likewise.
	* sysdeps/mach/hurd/i386/Makefile (sysdep-routines): Add framestate.
	* sysdeps/unix/sysv/linux/arm/Makefile: Likewise.
	* sysdeps/unix/sysv/linux/alpha/Makefile: Likewise.
	* sysdeps/unix/sysv/linux/i386/Makefile: Likewise.
	* sysdeps/unix/sysv/linux/m68k/Makefile: Likewise.
	* sysdeps/unix/sysv/linux/mips/Makefile: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/Makefile: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/Makefile: Likewise.
	* sysdeps/unix/sysv/linux/sparc/Makefile: Likewise.

	* sysdeps/unix/sysv/linux/ia64/ldd-rewrite.sed: New file.
	* sysdeps/unix/sysv/linux/s390/ldd-rewrite.sed: New file.
	* sysdeps/generic/strnlen.c: New file.
2001-11-16 01:27:24 +00:00
Andreas Jaeger
41bdb6e20c Update to LGPL v2.1.
2001-07-06  Paul Eggert  <eggert@twinsun.com>

	* manual/argp.texi: Remove ignored LGPL copyright notice; it's
	not appropriate for documentation anyway.
	* manual/libc-texinfo.sh: "Library General Public License" ->
	"Lesser General Public License".

2001-07-06  Andreas Jaeger  <aj@suse.de>

	* All files under GPL/LGPL version 2: Place under LGPL version
	2.1.
2001-07-06 04:58:11 +00:00
Ulrich Drepper
e0ea35832e Update.
2001-04-25  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/unix/sysv/linux/sparc/sparc64/bits/time.h: Move to...
	* sysdeps/unix/sysv/linux/sparc/bits/time.h: ...here.
	* sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/bits/time.h: Remove.
	* sysdeps/unix/sysv/linux/sparc/sparc64/bits/socket.h: Move to...
	* sysdeps/unix/sysv/linux/sparc/bits/socket.h: ...here.  Adjust
	struct msghdr for __WORDSIZE == 32.
	* sysdeps/unix/sysv/linux/sparc/sparc64/bits/statvfs.h: Move to...
	* sysdeps/unix/sysv/linux/sparc/bits/statvfs.h: ...here. Adjust
	for __WORDSIZE == 32.
	* sysdeps/unix/sysv/linux/sparc/sparc64/bits/siginfo.h: Remove.
	* sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/get_clockfreq.c: New
	file.
	* sysdeps/unix/sysv/linux/sparc/sparc64/longjmp.S (__libc_siglongjmp):
	Rename from longjmp, make longjmp weak alias to it.

2001-04-24  David S. Miller  <davem@redhat.com>

	* sysdeps/unix/sysv/linux/sparc/sparc64/get_clockfreq.c: New file.
2001-04-25 20:50:21 +00:00
Ulrich Drepper
216c24b76d Update.
2001-04-24  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9b/Implies: New file.
	* sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9b/bits/time.h: Removed.
2001-04-24 22:48:59 +00:00
Ulrich Drepper
3b5c1b57d3 Update.
* sysdeps/unix/i386/i586/clock_getres.c: Removed.
	* sysdeps/unix/i386/i586/clock_gettime.c: Removed.
	* sysdeps/unix/i386/i586/clock_nanosleep.c: Removed.
	* sysdeps/unix/i386/i586/clock_settime.c: Removed.
	* sysdeps/unix/i386/i586/cpuclock-init.h: Removed.
	* sysdeps/generic/cpuclock-init.h: Removed.
	* sysdeps/unix/i386/i686/Implies: Removed.
	* sysdeps/unix/i386/i686/tempname.c: Removed.
	* sysdeps/i386/i686/Versions: New file.
	* sysdeps/unix/i386/i586/Versions: Removed.

	* sysdeps/posix/clock_getres.c: If HP_TIMING_AVAIL is nonzero handle
	CLOCK_PROCESS_CPUTIME_ID and CLOCK_THREAD_CPUTIME_ID.
	* sysdeps/unix/clock_gettime.c: Likewise.
	* sysdeps/unix/clock_nanosleep.c: Likewise.
	* sysdeps/unix/clock_settime.c: Likewise.
	* sysdeps/posix/tempname.c: Is HP_TIMING_AVAIL is nonzero define
	RANDOM_BITS use CPU clock.

	* sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/bits/time.h: New file.
	* sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9b/bits/time.h: New file.
	* sysdeps/unix/sysv/linux/sparc/sparc64/bits/time.h: New file.
	* sysdeps/sparc/Versions: New file.

	* elf/dl-support.c: Don't use cpuclock-init.h definitions, use
	hp-timing.h definitions.
	* sysdeps/generic/dl-sysdep.c: Likewise.

	* include/libc-internal.h: Include hp-timing.h.  Use hp_timing_t in
	__get_clockfreq prototype.

	* sysdeps/unix/sysv/linux/i386/get_clockfreq.c (__get_clockfreq):
	Use hp_timing_t type.

	* sysdeps/unix/sysv/linux/ia64/get_clockfreq.c: New file.
2001-04-23 19:01:10 +00:00
Ulrich Drepper
5e01438702 Update.
2001-04-05  David S. Miller  <davem@redhat.com>

	* elf/elf.h (HWCAP_SPARC_ULTRA3): Define it.
	* sysdeps/unix/sysv/linux/sparc/sparc32/dl-procinfo.h: Add it to
	capability flags table and HWCAP_IMPORTANT, increase
	_DL_HWCAP_COUNT to 6.
	* sysdeps/unix/sysv/linux/sparc/sparc64/dl-procinfo.h: Likewise.
2001-04-05 20:45:54 +00:00
Ulrich Drepper
a88775bd22 Update.
2001-02-26  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/generic/sigcontextinfo.h (CALL_SIGHANDLER): Define.
	* sysdeps/mach/hurd/i386/sigcontextinfo.h: Likewise.
	* sysdeps/unix/sysv/linux/alpha/sigcontextinfo.h: Likewise.
	* sysdeps/unix/sysv/linux/arm/sigcontextinfo.h: Likewise.
	* sysdeps/unix/sysv/linux/i386/sigcontextinfo.h: Likewise.
	* sysdeps/unix/sysv/linux/m68k/sigcontextinfo.h: Likewise.
	* sysdeps/unix/sysv/linux/mips/sigcontextinfo.h: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/sigcontextinfo.h: Likewise.
	* sysdeps/unix/sysv/linux/s390/sigcontextinfo.h: Likewise.
	* sysdeps/unix/sysv/linux/sh/sigcontextinfo.h: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/sigcontextinfo.h: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/sigcontextinfo.h: Likewise.
2001-03-16 23:53:03 +00:00
Andreas Jaeger
504216a081 Update.
* elf/ldconfig.c (_dl_sysdep_message): Remove.
	* sysdeps/unix/sysv/linux/sparc/sparc32/dl-procinfo.h: Include
	ldsodefs.h.
	* sysdeps/unix/sysv/linux/sparc/sparc64/dl-procinfo.h: Likewise.
2001-03-07 13:35:58 +00:00
Andreas Jaeger
b9fb7870f3 Update.
2001-03-07  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/sparc/sparc32/dl-machine.h (elf_machine_rela): Use
	_dl_error_printf instead of _dl_sysdep_error.
	* sysdeps/sparc/sparc64/dl-machine.h (elf_machine_rela): Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/dl-procinfo.h (_dl_procinfo):
	Use _dl_printf instead of _dl_sysdep_message.
	* sysdeps/unix/sysv/linux/sparc/sparc64/dl-procinfo.h (_dl_procinfo):
	Likewise.
2001-03-07 13:15:32 +00:00
Andreas Jaeger
a6c1c03a44 Update.
2000-11-15  Andreas Jaeger  <aj@suse.de>

	* elf/cache.c (struct cache_entry): Use uint64_t for hwcap.
	(print_entry): Likewise.
	(add_to_cache): Likewise.

	* elf/ldconfig.h (add_to_cache): Change prototype for hwcap change.

	* elf/ldconfig.c (struct lib_entry): Use uint64_t for hwcap.
	(path_hwcap): Likewise.
	(search_dir): Likewise.

	* sysdeps/generic/dl-cache.c (HWCAP_CHECK): Handle platform.

	* elf/cache.c (add_to_cache): Handle 64 bit hwcap entry.

	* sysdeps/unix/sysv/linux/sparc/sparc32/dl-procinfo.h
	(_dl_platform_string): New. 
	(_DL_HWCAP_PLATFORM): New.
	(_dl_string_platform): New.
	* sysdeps/unix/sysv/linux/sparc/sparc64/dl-procinfo.h: Likewise.

	* sysdeps/generic/dl-procinfo.h (_DL_HWCAP_COUNT): New.
	(_dl_string_platform): New.
	(_DL_HWCAP_PLATFORM): New.
	(_dl_platform_string): New.

	* sysdeps/unix/sysv/linux/i386/dl-procinfo.h: Added x86 platform
	recognition.
	(_DL_HWCAP_COUNT): New.
	(_dl_string_platform): New.
	(_DL_HWCAP_PLATFORM): New.
	(_dl_platform_string): New.
2000-11-15 08:46:30 +00:00
Ulrich Drepper
09bf6406b1 Update.
2000-09-26  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/sparc/sparc32/bits/endian.h: Remove.
	* sysdeps/sparc/sparc32/ieee754.h: New.
	* sysdeps/sparc/sparc64/bits/endian.h: Move...
	* sysdeps/sparc/bits/endian.h: ...here.
	* sysdeps/unix/sysv/linux/sparc/sparc32/clone.S (__clone): Optimize.
	* sysdeps/unix/sysv/linux/sparc/sparc64/clone.S (__clone): Check
	%o1, not %o0 to see if we're parent or child.  Optimize.

2000-09-26  Jes Sorensen  <jes@linuxcare.com>

	* sysdeps/unix/sysv/linux/ia64/fork.S: New file (based on code
	by Hans Boehm).
	* sysdeps/unix/sysv/linux/ia64/vfork.S: New file (based on
	code by Hans Boehm).
	* sysdeps/unix/sysv/linux/ia64/fork.c: Deleted (obsoleted by fork.S).

2000-09-20  H.J. Lu  <hjl@gnu.org>

	* sysdeps/ia64/fpu/printf_fphex.c: New file.

	* sysdeps/ia64/fpu/libm-test-ulps: New file.

2000-09-17  H.J. Lu  <hjl@gnu.org>

	* sysdeps/ia64/Makefile (long-double-fcts): New.  Defined as yes.

	* sysdeps/ia64/fpu/s_isinfl.c: New file.  Include
	sysdeps/i386/fpu/s_isinfl.c.

	* sysdeps/ia64/fpu/s_isnanl.c: New file.  Include
	sysdeps/i386/fpu/s_isnanl.c.

	* sysdeps/ia64/fpu/s_nextafterl.c: New file.  Include
	sysdeps/i386/fpu/s_nextafterl.c.

	* sysdeps/ia64/fpu/bits/mathdef.h: New file.  Copied from
	sysdeps/i386/fpu/bits/mathdef.h.

2000-09-16  H.J. Lu  <hjl@gnu.org>

	* sysdeps/generic/ldsodefs.h (DL_UNMAP): New.  Defined if
	DL_UNMAP_IS_SPECIAL is not defined.

	* sysdeps/ia64/dl-lookupcfg.h (DL_UNMAP_IS_SPECIAL): Defined.
	(_dl_unmap): New prototype.
	(DL_UNMAP): New.  Defined as _dl_unmap.

	* sysdeps/ia64/Versions [ld] (GLIBC_2.2): Add _dl_unmap.

	* elf/dl-close.c (_dl_close): Replace __munmap with DL_UNMAP.

2000-09-16  H.J. Lu  <hjl@gnu.org>

	* sysdeps/generic/ldsodefs.h (DL_LOOKUP_ADDRESS): New. Defined
	if ELF_FUNCTION_PTR_IS_SPECIAL is not defined.

	* sysdeps/ia64/dl-lookupcfg.h (_dl_lookup_address): New
	prototype.
	(DL_LOOKUP_ADDRESS): New. Defined as _dl_lookup_address.

	* sysdeps/ia64/dl-fptr.c (_dl_lookup_address): New. Lookup
	the memory location of a function from a function descriptor.

	* sysdeps/ia64/Versions [ld] (GLIBC_2.2): Add _dl_lookup_address.

	* elf/dl-addr.c (_dl_addr): Use DL_LOOKUP_ADDRESS to get the
	memory location.

2000-09-14  Jes Sorensen  <jes@linuxcare.com>

	* sysdeps/ia64/bits/byteswap.h (__bswap_16): Don't mark output
	variable as input argument.
	(__bswap_32): Likewise.

	* sysdeps/ia64/dl-machine.h: Add missing stop bit in RTLD_START()
	- found by Jim Wilson <wilson@cygnus.com>

2000-09-26  Ulrich Drepper  <drepper@redhat.com>

	* string/strxfrm.c: Only require alignment on __alignof__ (int32_t)
	instead of 4.

2000-09-26  Andreas Schwab  <schwab@suse.de>

	* locale/programs/ld-collate.c (collate_output): Only require
	alignment on __alignof__ (int32_t) instead of 4.
	* locale/loadlocale.c (_nl_load_locale): Likewise.
	* string/strcoll.c: Likewise.

2000-09-26  Jes Sorensen  <jes@linuxcare.com>

	* sysdeps/ieee754/ldbl-96/e_atan2l.c (__ieee754_atan2l): Add
	parentheses around arithmetic used in | statement to kill compiler
	warning.

	* math/math_private.h: Add prototype for __finitel.
	(__ilogbl): Likewise.
	(__isinfl): Likewise.
	(__isnanl): Likewise.
	(__atanl): Likewise.
	(__copysignl): Likewise.
	(__expm1l): Likewise.
	(__floorl): Likewise.
	(__frexpl): Likewise.
	(__ldexpl): Likewise.
	(__log1pl): Likewise.
	(__nanl): Likewise.
	(__rintl): Likewise.
	(__scalbnl): Likewise.
	(__sqrtl): Likewise.
	(fabsl): Likewise.
	(__sincosl): Likewise.

	(si_isr) [USE_GNU]: Likewise.
	(ILL_BREAK) [USE_GNU]: Likewise.
	(FPE_DECOVF) [USE_GNU]: Likewise.
	(FPE_DECDIV) [USE_GNU]: Likewise.
	(FPE_DECERR) [USE_GNU]: Likewise.
	(FPE_INVASC) [USE_GNU]: Likewise.
	(FPE_INVDEC) [USE_GNU]: Likewise.
	(TRAP_BRANCH) [USE_GNU]: Likewise.
	(TRAP_HWBKPT) [USE_GNU]: Likewise.
	* sysdeps/ieee754/flt-32/s_exp2f.c: Likewise.
2000-09-26 19:13:37 +00:00
Andreas Jaeger
39d4e06f6d Update.
2000-08-23  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/unix/sysv/linux/sparc/sparc32/syscalls.list: Use
	__setrlimit as strong name. Takes only 2 arguments.

	* sysdeps/unix/sysv/linux/sh/syscalls.list: __syscall_setrlimit
	takes only 2 arguments.
2000-08-23 14:20:17 +00:00
Ulrich Drepper
60f0e64b3c Update.
* malloc/mtrace.pl (usage): Inform about --help.

2000-08-19  Wolfram Gloger  <wg@malloc.de>

	* malloc/malloc.c (new_heap): try harder to get an aligned chunk of
	size HEAP_MAX_SIZE.

2000-08-19  Andreas Jaeger  <aj@suse.de>

	* shlib-versions: Remove libnss_db, libdb and libdb1.

2000-08-19  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/unix/sysv/linux/alpha/readdir.c: Move...
	* sysdeps/unix/sysv/linux/ia64/readdir.c: ...here and
	* sysdeps/unix/sysv/linux/sparc/sparc64/readdir.c: ...here.
	* sysdeps/unix/sysv/linux/alpha/readdir_r.c: Move...
	* sysdeps/unix/sysv/linux/ia64/readdir_r.c: ...here and
	* sysdeps/unix/sysv/linux/sparc/sparc64/readdir_r.c: ...here.
	* sysdeps/unix/sysv/linux/alpha/readdir64.c: Remove.
	* sysdeps/unix/sysv/linux/alpha/readdir64_r.c: Remove.
	* sysdeps/unix/sysv/linux/alpha/getdents64.c: Remove.
	* sysdeps/unix/sysv/linux/alpha/getdents.c: Only use for non-LFS
	getdents.
	* sysdeps/unix/sysv/linux/readdir64.c: Remove versioning.
	* sysdeps/unix/sysv/linux/readdir64_r.c: Likewise.

2000-08-18  Jakub Jelinek  <jakub@redhat.com>

	* include/glob.h (__glob64): Add prototype.
	* sysdeps/generic/glob.c: If GLOB_ONLY_P is defined, only
	define glob and glob_in_dir.
	* sysdeps/unix/sysv/linux/i386/Versions: Add glob64@@GLIBC_2.2.
	* sysdeps/unix/sysv/linux/arm/Versions: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/Versions: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/Versions: Likewise.
	* sysdeps/unix/sysv/linux/i386/glob64.c: New file.
	* sysdeps/unix/sysv/linux/arm/glob64.c: New file.
	* sysdeps/unix/sysv/linux/powerpc/glob64.c: New file.
	* sysdeps/unix/sysv/linux/sparc/sparc32/glob64.c: New file.

2000-08-18  Jakub Jelinek  <jakub@redhat.com>

	* malloc/Makefile (memusage): libmemusage.so is installed in slibdir.

2000-08-17  Andreas Jaeger  <aj@suse.de>

	* math/test-fenv.c (fe_single_test): New function.
	(fe_env_tests): Use fe_single_test.
	(feenable_test): New tests for feenable/fedisable and
	fegetexcpetions.
	(feexcp_mask_test): New function.
	(feexcp_nomask_test): New function.

2000-08-19  Richard Henderson  <rth@cygnus.com>

	* sysdeps/alpha/fpu/fenv_libc.h: New file.
	* sysdeps/alpha/fpu/fclrexcpt.c: Use it.
	* sysdeps/alpha/fpu/fegetenv.c: Likewise.
	* sysdeps/alpha/fpu/fesetround.c: Likewise.
	* sysdeps/alpha/fpu/fegetround.c: Likewise.
	* sysdeps/alpha/fpu/fgetexcptflg.c: Likewise.
	* sysdeps/alpha/fpu/fraiseexcpt.c: Likewise.
	* sysdeps/alpha/fpu/ftestexcept.c: Likewise.
	* sysdeps/alpha/fpu/fedisblxcpt.c: Likewise.  Use the smaller mask.
	* sysdeps/alpha/fpu/feenablxcpt.c: Likewise.
	* sysdeps/alpha/fpu/fegetexcept.c: Likewise.
	* sysdeps/alpha/fpu/feholdexcpt.c: Retain the SWCR_MAP bits.
	* sysdeps/alpha/fpu/fesetenv.c: Likewise.
	* sysdeps/alpha/fpu/feupdateenv.c: Likewise.
	* sysdeps/alpha/fpu/fsetexcptflg.c: Likewise.
	* sysdeps/alpha/fpu/bits/fenv.h (FE_DENORMAL): New.
	(FE_MAP_DMZ, FE_MAP_UMZ, FE_NONIEEE_ENV): New.

2000-08-19  Andreas Jaeger  <aj@suse.de>
2000-08-19 16:58:09 +00:00
Ulrich Drepper
14860991fc Update.
2000-08-14  Jakub Jelinek  <jakub@redhat.com>

	* dirent/Versions (getdirentries64): Export at GLIBC_2.2.
	* sysdeps/unix/sysv/linux/kernel-features.h
	(__ASSUME_GETDENTS64_SYSCALL): Define.
	* sysdeps/unix/sysv/linux/getdents.c (__getdents): Use getdents64
	syscall if available to get d_type fields.
	* sysdeps/unix/sysv/linux/alpha/getdents.c (DIRENT_TYPE): Define.
	* sysdeps/unix/sysv/linux/arm/Versions (__xstat64, __fxstat64,
	__lxstat64): Export at GLIBC_2.2.
	(alphasort64, readdir64, readdir64_r, scandir64, versionsort64):
	Likewise.
	* sysdeps/unix/sysv/linux/i386/Versions (getdirentries64): Remove.
	* sysdeps/unix/sysv/linux/i386/getdents64.c (kernel_dirent64): Define.
	* sysdeps/unix/sysv/linux/powerpc/Versions (alphasort64,
	getdirentries64, versionsort64): Remove.
	* sysdeps/unix/sysv/linux/sparc/sparc32/Versions (alphasort64,
	getdirentries64, versionsort64): Remove.
2000-08-14 17:41:59 +00:00
Ulrich Drepper
00c02822b8 Update.
2000-08-12  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/unix/sysv/linux/kernel-features.h (__ASSUME_FCNTL64):
	Define for 2.4.1 on sparc as well.
	* sysdeps/unix/sysv/linux/sparc/bits/fcntl.h: Fill in correct values
	for F_GETLK64, F_SETLK64, and F_SETLKW64.
	* sysdeps/unix/sysv/linux/sparc/sparc32/fcntl.c: New file.
	* sysdeps/unix/sysv/linux/sparc/sparc32/lockf64.c: New file.
2000-08-12 22:08:19 +00:00
Ulrich Drepper
56ddf355da Update.
2000-08-11  Ulrich Drepper  <drepper@redhat.com>

	* rt/aio_cancel.c: If canceling a specific request which is running
	*really* do nothing.
	* rt/aio_misc.h: Add `done' to states of a request.
	* rt/aio_misc.c: Add several tests for the correct state.
	Simplify request table memory handling.

2000-08-10  Jakub Jelinek  <jakub@redhat.com>

	* dirent/scandir.c: Use it for scandir64 and old_scandir64 as well.
	* dirent/scandir64.c: Move...
	* sysdeps/generic/scandir64.c: ...here.
	* dirent/alphasort64.c: Move...
	* sysdeps/generic/alphasort64.c: ...here.
	* dirent/versionsort64.c: Move...
	* sysdeps/generic/versionsort64.c: ...here.
	* sysdeps/unix/sysv/linux/i386/dirent/Versions (alphasort64,
	getdirentries64, readdir64, readdir64_r, scandir64, versionsort64):
	Export symbols at GLIBC_2.2.
	* sysdeps/unix/sysv/linux/powerpc/dirent/Versions: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/dirent/Versions: Likewise.
	* include/dirent.h (__readdir64_r, __scandir64, __alphasort64,
	__versionsort64): Add prototypes.
	* io/Versions (__xstat64, __fxstat64, __lxstat64): Export at GLIBC_2.2.
	* sysdeps/unix/sysv/linux/alpha/kernel_stat.h (__xstat_conv): Remove
	unused prototype.
	* sysdeps/unix/sysv/linux/alpha/readdir.c: Export at both GLIBC_2.1
	and GLIBC_2.2.
	* sysdeps/unix/sysv/linux/alpha/readdir_r.c: Likewise.
	* sysdeps/unix/sysv/linux/alpha/getdents.c: New.
	* sysdeps/unix/sysv/linux/alpha/getdents64.c: New.
	* sysdeps/unix/sysv/linux/bits/types.h (__ino64_t): Change to
	__u_quad_t.
	* sysdeps/unix/sysv/linux/bits/stat.h (struct stat, struct stat64):
	Adjust for kernel-2.4.0-test6 layout.
	* sysdeps/unix/sysv/linux/i386/fxstat.c (__fxstat64): Export at both
	GLIBC_2.1 and GLIBC_2.2.
	* sysdeps/unix/sysv/linux/i386/lxstat.c (__lxstat64): Likewise.
	* sysdeps/unix/sysv/linux/i386/xstat.c (__xstat64): Likewise.
	* sysdeps/unix/sysv/linux/i386/getdents64.c: New.
	* sysdeps/unix/sysv/linux/i386/olddirent.h: New.
	* sysdeps/unix/sysv/linux/i386/readdir64.c: New.
	* sysdeps/unix/sysv/linux/i386/readdir64_r.c: New.
	* sysdeps/unix/sysv/linux/i386/scandir64.c: New.
	* sysdeps/unix/sysv/linux/i386/alphasort64.c: New.
	* sysdeps/unix/sysv/linux/i386/versionsort64.c: New.
	* sysdeps/unix/sysv/linux/ia64/getdents.c: New.
	* sysdeps/unix/sysv/linux/ia64/getdents64.c: New.
	* sysdeps/unix/sysv/linux/ia64/readdir.c: Include alpha/readdir.c.
	* sysdeps/unix/sysv/linux/ia64/readdir_r.c: Include alpha/readdir_r.c.
	* sysdeps/unix/sysv/linux/mips/bits/types.h (__ino64_t): Change to
	__u_quad_t.
	* sysdeps/unix/sysv/linux/powerpc/bits/stat.h: New.
	* sysdeps/unix/sysv/linux/powerpc/kernel_stat.h (_HAVE_STAT*): Define.
	* sysdeps/unix/sysv/linux/powerpc/scandir64.c: New.
	* sysdeps/unix/sysv/linux/powerpc/getdents64.c: New.
	* sysdeps/unix/sysv/linux/powerpc/readdir64.c: New.
	* sysdeps/unix/sysv/linux/powerpc/readdir64_r.c: New.
	* sysdeps/unix/sysv/linux/sparc/bits/types.h (__ino64_t): Change to
	__u_quad_t.
	* sysdeps/unix/sysv/linux/sparc/bits/stat.h: New.
	* sysdeps/unix/sysv/linux/sparc/sparc32/kernel_stat.h (_HAVE_STAT*):
	Define.
	* sysdeps/unix/sysv/linux/sparc/sparc32/getdents64.c: New.
	* sysdeps/unix/sysv/linux/sparc/sparc32/readdir64.c: New.
	* sysdeps/unix/sysv/linux/sparc/sparc32/readdir64_r.c: New.
	* sysdeps/unix/sysv/linux/sparc/sparc32/scandir64.c: New.
	* sysdeps/unix/sysv/linux/sparc/sparc64/kernel_stat.h (_HAVE_STAT*):
	Define.
	* sysdeps/unix/sysv/linux/sparc/sparc64/readdir.c: Include
	alpha/readdir.c.
	* sysdeps/unix/sysv/linux/sparc/sparc64/readdir_r.c: Include
	alpha/readdir_r.c
	* sysdeps/unix/sysv/linux/sparc/sparc64/getdents.c: New.
	* sysdeps/unix/sysv/linux/sparc/sparc64/getdents64.c: New.
	* sysdeps/unix/sysv/linux/fxstat64.c (__fxstat64): If
	_HAVE_STAT64___ST_INO and __st_ino != (uint32_t)st_ino, set
	st_ino from __st_ino.
	* sysdeps/unix/sysv/linux/lxstat64.c (__lxstat64): Likewise.
	* sysdeps/unix/sysv/linux/xstat64.c (__xstat64): Likewise.
	* sysdeps/unix/sysv/linux/xstatconv.c (xstat_conv, xstat64_conv,
	xstat32_conv): Use _HAVE_STAT* macros.  If _HAVE_STAT64___ST_INO,
	set __st_ino in addition to st_ino.
	* sysdeps/unix/sysv/linux/kernel_stat.h (_HAVE_STAT*): Define.
	* sysdeps/unix/sysv/linux/getdents.c: Use it for __getdents64 and
	__old_getdents64 as well.
	* sysdeps/unix/sysv/linux/getdirentries.c: Use it for
	getdirentries64 and old_getdirentries64 as well.
	* sysdeps/unix/sysv/linux/getdirentries64.c (GETDIRENTRIES,
	__GETDENTS): Define.
	(GETDENTS64): Remove.
	* sysdeps/unix/sysv/linux/getdents64.c (__GETDENTS, DIRENT_TYPE):
	Define.
	(GETDENTS64): Remove.
	* sysdeps/unix/sysv/linux/readdir64.c: Use sysdeps/unix/readdir.c.
	* sysdeps/unix/sysv/linux/readdir64_r.c: Use sysdeps/unix/readdir_r.c.
	* sysdeps/unix/readdir.c: Use it for readdir64 and __old_readdir64
	as well.
	* sysdeps/unix/readdir_r.c: Use it for readdir64_r and
	__old_readdir64_r as well.
	* sysdeps/unix/sysv/linux/kernel-features.h: Define
	__ASSUME_ST_INO_64_bit for kernel 2.4.1 and up.

	* sysdeps/unix/sysv/linux/ia64/bits/siginfo.h: Add SI_KERNEL define.
2000-08-12 05:14:52 +00:00
Andreas Jaeger
ab18b1e1a3 Update.
* sysdeps/unix/sysv/linux/i386/sigaction.c: Make alias weak since
	it's overridden by libpthreads.
	* sysdeps/unix/sysv/linux/sigaction.c: Likewise.
	* sysdeps/unix/sysv/linux/arm/sigaction.c: Likewise.
	* sysdeps/unix/sysv/linux/ia64/sigaction.c: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/sigaction.c: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/sigaction.c: Likewise.
2000-07-10 16:25:03 +00:00
Greg McGary
4bbb61e414 * sysdeps/generic/bp-checks.h (CHECK_SIGSET, CHECK_SIGSETopt):
New macros. 
* sysdeps/generic/strcpy.c: Add bounds checks. 
* sysdeps/unix/fxstat.c: Likewise. 
* sysdeps/unix/xstat.c: Likewise. 
* sysdeps/unix/common/lxstat.c: Likewise. 
* sysdeps/unix/sysv/linux/aio_sigqueue.c: Likewise. 
* sysdeps/unix/sysv/linux/execve.c: Likewise. 
* sysdeps/unix/sysv/linux/fxstat.c: Likewise. 
* sysdeps/unix/sysv/linux/fxstat64.c: Likewise. 
* sysdeps/unix/sysv/linux/getcwd.c: Likewise. 
* sysdeps/unix/sysv/linux/getdents.c: Likewise. 
* sysdeps/unix/sysv/linux/llseek.c: Likewise. 
* sysdeps/unix/sysv/linux/lxstat.c: Likewise. 
* sysdeps/unix/sysv/linux/lxstat64.c: Likewise. 
* sysdeps/unix/sysv/linux/poll.c: Likewise. 
* sysdeps/unix/sysv/linux/pread.c: Likewise. 
* sysdeps/unix/sysv/linux/pread64.c: Likewise. 
* sysdeps/unix/sysv/linux/ptrace.c: Likewise. 
* sysdeps/unix/sysv/linux/pwrite.c: Likewise. 
* sysdeps/unix/sysv/linux/pwrite64.c: Likewise. 
* sysdeps/unix/sysv/linux/readv.c: Likewise. 
* sysdeps/unix/sysv/linux/sigaction.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/sysctl.c: Likewise. 
* sysdeps/unix/sysv/linux/truncate64.c: Likewise. 
* sysdeps/unix/sysv/linux/ustat.c: Likewise. 
* sysdeps/unix/sysv/linux/writev.c: Likewise. 
* sysdeps/unix/sysv/linux/xmknod.c: Likewise. 
* sysdeps/unix/sysv/linux/xstat.c: Likewise. 
* sysdeps/unix/sysv/linux/xstat64.c: Likewise. 
* sysdeps/unix/sysv/linux/arm/sigaction.c: Likewise. 
* sysdeps/unix/sysv/linux/i386/brk.c: Likewise. 
* sysdeps/unix/sysv/linux/i386/chown.c: Likewise. 
* sysdeps/unix/sysv/linux/i386/fxstat.c: Likewise. 
* sysdeps/unix/sysv/linux/i386/getgroups.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/lchown.c: Likewise. 
* sysdeps/unix/sysv/linux/i386/lxstat.c: Likewise. 
* sysdeps/unix/sysv/linux/i386/setgroups.c: Likewise. 
* sysdeps/unix/sysv/linux/i386/setrlimit.c: Likewise. 
* sysdeps/unix/sysv/linux/i386/sigaction.c: Likewise. 
* sysdeps/unix/sysv/linux/i386/xstat.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/pread.c: Likewise. 
* sysdeps/unix/sysv/linux/mips/pread64.c: Likewise. 
* sysdeps/unix/sysv/linux/mips/pwrite.c: Likewise. 
* sysdeps/unix/sysv/linux/mips/pwrite64.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/sparc/sparc32/mmap64.c: Likewise. 
* sysdeps/unix/sysv/linux/sparc/sparc64/sigaction.c: Likewise. 
* sysdeps/unix/sysv/linux/sparc/sparc64/sigpending.c: Likewise. 
* sysdeps/unix/sysv/linux/sparc/sparc64/sigprocmask.c: Likewise. 
* sysdeps/unix/sysv/linux/sparc/sparc64/sigsuspend.c: Likewise.
	* sysdeps/generic/bp-checks.h (CHECK_SIGSET, CHECK_SIGSETopt):
	New macros.
	* sysdeps/generic/strcpy.c: Add bounds checks.
	* sysdeps/unix/fxstat.c: Likewise.
	* sysdeps/unix/xstat.c: Likewise.
	* sysdeps/unix/common/lxstat.c: Likewise.
	* sysdeps/unix/sysv/linux/aio_sigqueue.c: Likewise.
	* sysdeps/unix/sysv/linux/execve.c: Likewise.
	* sysdeps/unix/sysv/linux/fxstat.c: Likewise.
	* sysdeps/unix/sysv/linux/fxstat64.c: Likewise.
	* sysdeps/unix/sysv/linux/getcwd.c: Likewise.
	* sysdeps/unix/sysv/linux/getdents.c: Likewise.
	* sysdeps/unix/sysv/linux/llseek.c: Likewise.
	* sysdeps/unix/sysv/linux/lxstat.c: Likewise.
	* sysdeps/unix/sysv/linux/lxstat64.c: Likewise.
	* sysdeps/unix/sysv/linux/poll.c: Likewise.
	* sysdeps/unix/sysv/linux/pread.c: Likewise.
	* sysdeps/unix/sysv/linux/pread64.c: Likewise.
	* sysdeps/unix/sysv/linux/ptrace.c: Likewise.
	* sysdeps/unix/sysv/linux/pwrite.c: Likewise.
	* sysdeps/unix/sysv/linux/pwrite64.c: Likewise.
	* sysdeps/unix/sysv/linux/readv.c: Likewise.
	* sysdeps/unix/sysv/linux/sigaction.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/sysctl.c: Likewise.
	* sysdeps/unix/sysv/linux/truncate64.c: Likewise.
	* sysdeps/unix/sysv/linux/ustat.c: Likewise.
	* sysdeps/unix/sysv/linux/writev.c: Likewise.
	* sysdeps/unix/sysv/linux/xmknod.c: Likewise.
	* sysdeps/unix/sysv/linux/xstat.c: Likewise.
	* sysdeps/unix/sysv/linux/xstat64.c: Likewise.
	* sysdeps/unix/sysv/linux/arm/sigaction.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/brk.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/chown.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/fxstat.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/getgroups.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/lchown.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/lxstat.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/setgroups.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/setrlimit.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/sigaction.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/xstat.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/pread.c: Likewise.
	* sysdeps/unix/sysv/linux/mips/pread64.c: Likewise.
	* sysdeps/unix/sysv/linux/mips/pwrite.c: Likewise.
	* sysdeps/unix/sysv/linux/mips/pwrite64.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/sparc/sparc32/mmap64.c: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/sigaction.c: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/sigpending.c: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/sigprocmask.c: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/sigsuspend.c: Likewise.
2000-07-07 02:19:06 +00:00
Ulrich Drepper
c0f53cdd08 Update.
2000-07-06  Ulrich Drepper  <drepper@redhat.com>

	* include/signal.h: Declare __libc_sigaction.
	* sysdeps/unix/sysv/linux/Versions: Export __libc_sigaction.
	* sysdeps/unix/sysv/linux/sigaction.c: Add __libc_sigaction alias.
	* sysdeps/unix/sysv/linux/arm/sigaction.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/sigaction.c: Likewise.
	* sysdeps/unix/sysv/linux/ia64/sigaction.c: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/sigaction.c: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/sigaction.c: Likewise.

	* configure.in: Fix CLAGS-memprofstat.c definition after
	2000-06-19 change.
	Patch by Bradford W. Johnson <bradford@math.umn.edu>.

2000-07-06  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/sparc/sparc32/dl-machine.h (elf_machine_rela): Pass 0
	instead of NULL to elf_machine_fixup_plt t argument.
	* sysdeps/sparc/sparc64/dl-machine.h (elf_machine_rela): Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/mmap64.c (__mmap64): Add
	cast.

2000-07-06  Andreas Jaeger  <aj@suse.de>

	* crypt/Makefile (LDLIBS-cert): Removed.
	(LDLIBS-md5c-test): Removed.
	($(objpfx)cert): Renamed from cert.out to fix dependencies.
	($(objpfx)md5c-test): Likewise for md5c-test.out.
2000-07-07 00:52:01 +00:00
Ulrich Drepper
cf90163d41 Regenerated: autoconf configure.in 2000-07-06 23:33:20 +00:00
Ulrich Drepper
18b149d8b5 Update.
* login/Makefile (utmpd): Remove rule to build utmpd.

	* csu/Versions: Move libgcc frame handling functions from here...
	* sysdeps/unix/sysv/linux/alpha/Versions: ...to here...
	* sysdeps/unix/sysv/linux/arm/Versions: ...to here...
	* sysdeps/unix/sysv/linux/i386/Versions: ...to here...
	* sysdeps/unix/sysv/linux/m68k/Versions: ...to here...
	* sysdeps/unix/sysv/linux/powerpc/Versions: ...to here...
	* sysdeps/unix/sysv/linux/sparc/sparc32/Versions: ...and here.
	New file.
2000-06-15 07:01:02 +00:00
Andreas Jaeger
0b6301682b Update.
* sysdeps/generic/dl-procinfo.h (_DL_HWCAP_COUNT): New.
	(_dl_string_hwcap): New, does nothing.

	* sysdeps/unix/sysv/linux/i386/dl-procinfo.h (_DL_HWCAP_COUNT):
	New.
	(_dl_procinfo): Use _DL_HWCAP_COUNT instead of a constant.
	(_dl_string_hwcap): New function, converts from string to hwcap
	encoding.
	* sysdeps/unix/sysv/linux/sparc/sparc32/dl-procinfo.h (_DL_HWCAP_COUNT):
	New.
	(_dl_procinfo): Use _DL_HWCAP_COUNT instead of a constant.
	(_dl_string_hwcap): New function, converts from string to hwcap
	encoding.
	* sysdeps/unix/sysv/linux/sparc/sparc64/dl-procinfo.h (_DL_HWCAP_COUNT):
	New.
	(_dl_procinfo): Use _DL_HWCAP_COUNT instead of a constant.
	(_dl_string_hwcap): New function, converts from string to hwcap
	encoding.
2000-05-05 15:33:39 +00:00
Ulrich Drepper
faf2289fa1 Update.
* manual/intro.texi: Change reference from System Information to
	System Management.
	* manual/users.texi: Likewise.
	* manual/conf.texi: Likewise.
	* manual/sysinfo.texi: Document mount, umount, and umount2.
	Patch by Bryan Henderson <bryanh@giraffe-data.com>.

2000-04-17  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/ieee754/ldbl-128/printf_fphex.c (PRINT_FPHEX_LONG_DOUBLE):
	Create wnumstr as well as numstr to support wide character output
	correctly.

2000-04-15  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/sparc/sparc64/Makefile: Remove sysdep-CFLAGS
	modification and move it...
	* sysdeps/unix/sysv/linux/sparc/sparc64/Makefile: ...here.
	Add -melf64_sparc switch to $(LD) on sparc64-linux.
	* sysdeps/unix/sysv/linux/sparc/sparc32/Makefile: Add -melf32_sparc
	switch to $(LD) on sparc-linux.

2000-04-17  Thorsten Kukuk  <kukuk@suse.de>

	* sysdeps/unix/sysv/linux/sparc/sparc32/Makefile: Remove setresgid
	and setresuid frm sysdep_routines.

2000-04-17  Ulrich Drepper  <drepper@redhat.com>

	* manual/resource.texi: ...here.  New file.  Document ulimit, vlimit,
	and vtimes.
2000-04-18 06:24:03 +00:00
Ulrich Drepper
372f94ba46 Update.
2000-04-06  Andreas Jaeger  <aj@suse.de>

	* sysdeps/unix/sysv/linux/alpha/Dist: init-first.h has been
	removed, remove it here also.
	* sysdeps/unix/sysv/linux/arm/Dist: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/Dist: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/Dist: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/Dist: Likewise.

2000-04-06  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/unix/sysv/linux/sparc/sparc32/register-dump.h: Don't
	include bits/sigcontext.h.
	* sysdeps/unix/sysv/linux/sparc/sparc64/register-dump.h: Likewise.
2000-04-06 20:10:19 +00:00
Ulrich Drepper
2a0ff6ff1a Update.
2000-04-05  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/unix/sysv/linux/alpha/init-first.h: Not needed anymore.
	* sysdeps/unix/sysv/linux/arm/init-first.h: Likewise.
	* sysdeps/unix/sysv/linux/mips/init-first.h: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/init-first.h: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/init-first.h: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/init-first.h: Likewise.

	* sysdeps/unix/sysv/linux/Dist: Remove getresuid and getresgid.
	* Makefile (distribute): Add abi-versions.awk and
	firstversions.awk.
	Patches by Torsten Duwe <duwe@caldera.de>.
2000-04-06 04:58:34 +00:00
Ulrich Drepper
5402148732 Update.
2000-03-21  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/unix/sysv/linux/sparc/bits/sigcontext.h: Clean up namespace.
	Lay out struct sigcontext according to what really gets passed on
	the stack.
	* sysdeps/unix/sysv/linux/sparc/sys/procfs.h: Don't include asm/elf.h.
	(elf_gregset_t, elf_greg_t, elf_fpregset_t, ELF_NGREG): Define.
	(prgregset_t, prfpregset_t): Define to elf_* types.
	* sysdeps/unix/sysv/linux/sparc/sys/ptrace.h (PTRACE_WRITEDATA):
	Define to correct value.
	* sysdeps/unix/sysv/linux/sparc/sparc32/profil-counter.h: Use struct
	sigcontext.
	* sysdeps/unix/sysv/linux/sparc/sparc32/sigcontextinfo.h: Likewise.
2000-03-21 21:07:30 +00:00
Ulrich Drepper
cd090f718f Update.
2000-02-01  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/unix/sysv/linux/getresgid.c: Move...
	* sysdeps/unix/sysv/linux/i386/getresgid.c: ...here.
	(getresgid): Use getresgid32 if __libc_missing_32bit_uids
	is -1 or 0.
	* sysdeps/unix/sysv/linux/getresuid.c: Move...
	* sysdeps/unix/sysv/linux/i386/getresuid.c: ...here.
	(getresuid): Use getresuid32 if __libc_missing_32bit_uids
	is -1 or 0.
	* sysdeps/unix/sysv/linux/i386/getuid.c: Document new tristate
	__libc_missing_32bit_uids.
	(__getuid): Use 32bit uid syscall if __libc_missing_32bit_uids is
	-1 or 0.
	* sysdeps/unix/sysv/linux/i386/chown.c (__real_chown): Likewise.
	* sysdeps/unix/sysv/linux/i386/fchown.c (__fchown): Likewise.
	* sysdeps/unix/sysv/linux/i386/getegid.c (__getegid): Likewise.
	* sysdeps/unix/sysv/linux/i386/geteuid.c (__geteuid): Likewise.
	* sysdeps/unix/sysv/linux/i386/getgroups.c (__getgroups): Likewise.
	* sysdeps/unix/sysv/linux/i386/getgid.c (__getgid): Likewise.
	* sysdeps/unix/sysv/linux/i386/lchown.c (__lchown): Likewise.
	* sysdeps/unix/sysv/linux/i386/setfsgid.c (setfsgid): Likewise.
	* sysdeps/unix/sysv/linux/i386/setfsuid.c (setfsuid): Likewise.
	* sysdeps/unix/sysv/linux/i386/setgid.c (__setgid): Likewise.
	* sysdeps/unix/sysv/linux/i386/setgroups.c (setgroups): Likewise.
	* sysdeps/unix/sysv/linux/i386/setregid.c (__setregid): Likewise.
	* sysdeps/unix/sysv/linux/i386/setresgid.c (setresgid): Likewise.
	* sysdeps/unix/sysv/linux/i386/setresuid.c (__setresuid): Likewise.
	* sysdeps/unix/sysv/linux/i386/setreuid.c (__setreuid): Likewise.
	* sysdeps/unix/sysv/linux/i386/setuid.c (__setuid): Likewise.
	* sysdeps/unix/sysv/linux/m68k/chown.c (__chown): Likewise.
	* sysdeps/unix/sysv/linux/arm/getresuid.c: New file.
	* sysdeps/unix/sysv/linux/arm/getresgid.c: New file.
	* sysdeps/unix/sysv/linux/arm/msgctl.c: New file.
	* sysdeps/unix/sysv/linux/arm/semctl.c: New file.
	* sysdeps/unix/sysv/linux/arm/shmctl.c: New file.
	* sysdeps/unix/sysv/linux/i386/msgctl.c: New file.
	* sysdeps/unix/sysv/linux/i386/semctl.c: New file.
	* sysdeps/unix/sysv/linux/i386/shmctl.c: New file.
	* sysdeps/unix/sysv/linux/m68k/getresgid.c: New file.
	* sysdeps/unix/sysv/linux/m68k/getresuid.c: New file.
	* sysdeps/unix/sysv/linux/m68k/msgctl.c: New file.
	* sysdeps/unix/sysv/linux/m68k/semctl.c: New file.
	* sysdeps/unix/sysv/linux/m68k/shmctl.c: New file.
	* sysdeps/unix/sysv/linux/sparc/sparc32/msgctl.c: New file.
	* sysdeps/unix/sysv/linux/sparc/sparc32/semctl.c: New file.
	* sysdeps/unix/sysv/linux/sparc/sparc32/shmctl.c: New file.
	* sysdeps/unix/sysv/linux/mips/syscalls.list (getresuid):
	Make syscall directly, no stubs needed.
	(getresgid): Likewise.
	* sysdeps/unix/sysv/linux/powerpc/syscalls.list (getresuid):
	Likewise.
	(getresgid): Likewise.
2000-02-11 19:44:58 +00:00
Ulrich Drepper
4d76a0ec18 Update.
2000-01-30  Ulrich Drepper  <drepper@redhat.com>

	* locale/programs/ld-collate.c (struct locale_collate_t): Change
	type of plane_size and plane_cnt to uint32_t.
	Reported by Jakub Jelinek.

2000-01-29  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h
	(SYSCALL_ERROR_HANDLER): Optimize.
	(__SYSCALL_STRING, __SYSCALL_CLOBBERS): Define.
	Include linux/sparc/sysdep.h.
	Use a different guard define than linux/sparc/sysdep.h.
	* sysdeps/unix/sysv/linux/sparc/sparc32/syscalls.list: Remove
	stubs for inlined syscalls.
	* sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h
	(SYSCALL_ERROR_HANDLER): Optimize.
	(__SYSCALL_STRING, __SYSCALL_CLOBBERS): Define.
	Include linux/sparc/sysdep.h.
	* sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list: Remove
	stubs for inlined syscalls.
	* sysdeps/unix/sysv/linux/sparc/sparc64/sigaction.c (__sigaction):
	Use INLINE_SYSCALL.
	* sysdeps/unix/sysv/linux/sparc/sparc64/Makefile: Remove.
	* sysdeps/unix/sysv/linux/sparc/sysdep.h: New file.
2000-01-29  Ulrich Drepper  <drepper@redhat.com>
2000-01-31 06:42:36 +00:00
Ulrich Drepper
e645ed3a23 Update.
2000-01-24  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/unix/sysv/linux/arm/bits/resource.h: New file.
	* sysdeps/unix/sysv/linux/arm/Makefile: Remove oldsetrlimit64.c.
	* sysdeps/unix/sysv/linux/i386/Makefile: Likewise.
	* sysdeps/unix/sysv/linux/i386/Dist: Likewise.
	* sysdeps/unix/sysv/linux/arm/Versions: Remove
	setrlimit64@GLIBC_2.1.3.
	* sysdeps/unix/sysv/linux/i386/Versions: Likewise.
	* sysdeps/unix/sysv/linux/arm/oldsetrlimit64.c: Remove.
	* sysdeps/unix/sysv/linux/i386/oldsetrlimit64.c: Likewise.
	* sysdeps/unix/sysv/linux/arm/setrlimit64.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/setrlimit64.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/oldgetrlimit64.c: Call __new_getrlimit,
	so that setrlimit64@GLIBC_2.1 can report limits above 2G.
	* sysdeps/unix/sysv/linux/sparc/sparc32/syscalls.list (getrlimit,
	setrlimit): Remove syscall stubs, add normal syscalls.
	* sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list (setrlimit):
	Remove syscall stub.
2000-01-24 12:09:14 +00:00
Ulrich Drepper
e3a7ff8749 Update.
2000-01-18  Andreas Jaeger  <aj@suse.de>

	* sysdeps/unix/sysv/linux/i386/lxstat.c: New file, handles 32bit UIDs.
	* sysdeps/unix/sysv/linux/i386/fxstat.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/xstat.c (__xstat): Move
	_STAT_VER_KERNEL handling up; don't save errno.
	* sysdeps/unix/sysv/linux/arm/fxstat.c: New file.
	* sysdeps/unix/sysv/linux/arm/lxstat.c: Likewise.
	* sysdeps/unix/sysv/linux/arm/xstat.c: Likewise.
	* sysdeps/unix/sysv/linux/m68k/fxstat.c: Likewise.
	* sysdeps/unix/sysv/linux/m68k/lxstat.c: Likewise.
	* sysdeps/unix/sysv/linux/m68k/xstat.c: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/fxstat.c: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/lxstat.c: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/xstat.c: Likewise.

	Reported by Bruno Haible.
2000-01-19 03:54:00 +00:00
Ulrich Drepper
0482576eec Update.
2000-01-17  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/unix/sysv/linux/bits/ipc.h: New file.
	* sysdeps/unix/sysv/linux/bits/sem.h: New file.
	* sysdeps/unix/sysv/linux/bits/shm.h: New file.
	* sysdeps/unix/sysv/linux/bits/msg.h: New file.
	* sysdeps/unix/sysv/linux/bits/alpha/ipc.h: Update for new ipc.
	* sysdeps/unix/sysv/linux/bits/alpha/sem.h: New file.
	* sysdeps/unix/sysv/linux/bits/alpha/shm.h: New file.
	* sysdeps/unix/sysv/linux/bits/alpha/msg.h: New file.
	* sysdeps/unix/sysv/linux/bits/sparc/ipc.h: New file.
	* sysdeps/unix/sysv/linux/bits/sparc/sem.h: New file.
	* sysdeps/unix/sysv/linux/bits/sparc/shm.h: New file.
	* sysdeps/unix/sysv/linux/bits/sparc/msg.h: New file.

	* sysdeps/unix/sysv/linux/msgctl.c (__old_msgctl):
	Renamed from msgctl.
	(__new_msgctl): New function.
	* sysdeps/unix/sysv/linux/semctl.c (__old_semctl):
	Renamed from semctl.
	(__new_semctl): New function.
	* sysdeps/unix/sysv/linux/shmctl.c (__old_shmctl):
	Renamed from shmctl.
	(__new_shmctl): New function.

	* sysdeps/unix/sysv/linux/msgget.c: Define __LIBC_IPC_INTERNAL.
	* sysdeps/unix/sysv/linux/msgrcv.c: Likewise.
	* sysdeps/unix/sysv/linux/semget.c: Likewise.
	* sysdeps/unix/sysv/linux/msgsnd.c: Likewise.
	* sysdeps/unix/sysv/linux/semop.c: Likewise.
	* sysdeps/unix/sysv/linux/shmat.c: Likewise.
	* sysdeps/unix/sysv/linux/shmdt.c: Likewise.
	* sysdeps/unix/sysv/linux/shmget.c: Likewise.

	* sysdeps/unix/sysv/linux/sparc/sparc64/semctl.c: New file.
	* sysdeps/unix/sysv/linux/sparc/sparc64/msgctl.c: New file.
	* sysdeps/unix/sysv/linux/sparc/sparc64/shmctl.c: New file.

	* sysdeps/unix/sysv/linux/Versions: Add msgctl, semctl, shmctl.

2000-01-17  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/unix/sysv/linux/sparc/sparc32/seteuid.c: New file.
	* sysdeps/unix/sysv/linux/sparc/sparc32/setegid.c: New file.
	* sysdeps/unix/sysv/linux/sparc/sparc32/Dist: Remove setres[ug]id.
	* sysdeps/unix/sysv/linux/sparc/sparc32/mmap64.c: Kill warnings.
	* sysdeps/unix/sysv/linux/sparc/sparc32/syscalls.list: Define needed
	syscalls.

	* sysdeps/unix/sysv/linux/pwrite64.c: Use proper prototype.
	* sysdeps/unix/sysv/linux/truncate64.c: Likewise.

	* sysdeps/unix/sysv/linux/kernel-features.h: [gs]etres[ug]id are
	available on sparc since 2.3.39.

	* sysdeps/unix/sysv/linux/execve.c: Kill warnings.

2000-01-17  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/unix/sysv/linux/i386/chown.c (__syscall_chown): Use proper
	prototype.
	(__real_chown): Return EINVAL if owner or group are out of the range
	-1U .. 65534.
	* sysdeps/unix/sysv/linux/i386/lchown.c (__lchown): Likewise.
	* sysdeps/unix/sysv/linux/i386/fchown.c (__fchown): Likewise.
	* sysdeps/unix/sysv/linux/i386/setresuid.c (__setresuid): Return
	EINVAL if ruid, euid or suid are out of the range -1U .. 65534.
	* sysdeps/unix/sysv/linux/i386/setresgid.c (__setresgid): Similarly.
	* sysdeps/unix/sysv/linux/i386/setreuid.c (__setreuid): Simplify.
	* sysdeps/unix/sysv/linux/i386/setregid.c (__setregid): Likewise.
	* sysdeps/unix/sysv/linux/m68k/chown.c (__syscall_chown): Use proper
	prototype.
	Don't include non-existant header.
	(__chown): Return EINVAL if owner or group are out of the range
	-1U .. 65534.
	* sysdeps/unix/sysv/linux/sparc/sparc32/syscalls.list (setresuid,
	setresgid): Inherit standard linux/syscalls.list definitions.
	* sysdeps/unix/sysv/linux/sparc/sparc32/setresuid.c: Remove.
	* sysdeps/unix/sysv/linux/sparc/sparc32/setresgid.c: Remove.
	* sysdeps/unix/sysv/linux/syscalls.list (setresgid): Provide
	__setresgid symbol.
2000-01-18 04:33:34 +00:00
Ulrich Drepper
313fed0111 Update.
2000-01-12  Andreas Jaeger  <aj@suse.de>

	* sysdeps/unix/sysv/linux/kernel-features.h (__ASSUME_32BITUIDS):
	Added for Linux 2.3.39+.

	* sysdeps/unix/sysv/linux/getresgid.c: Support 32bit UIDs and
	32bit GIDs.
	* sysdeps/unix/sysv/linux/getresuid.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/chown.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/getgroups.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/setegid.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/seteuid.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/setuid.c: Likewise.
	* sysdeps/unix/sysv/linux/setegid.c: Likewise.

	* sysdeps/unix/sysv/linux/arm/chown.c: New file.
	* sysdeps/unix/sysv/linux/arm/fchown.c: New file.
	* sysdeps/unix/sysv/linux/arm/geteuid.c: New file.
	* sysdeps/unix/sysv/linux/arm/getegid.c: New file.
	* sysdeps/unix/sysv/linux/arm/getuid.c: New file.
	* sysdeps/unix/sysv/linux/arm/getgid.c: New file.
	* sysdeps/unix/sysv/linux/arm/lchown.c: New file.
	* sysdeps/unix/sysv/linux/i386/fchown.c: New file.
	* sysdeps/unix/sysv/linux/i386/getegid.c: New file.
	* sysdeps/unix/sysv/linux/i386/geteuid.c: New file.
	* sysdeps/unix/sysv/linux/i386/getgid.c: New file.
	* sysdeps/unix/sysv/linux/i386/getuid.c: New file.
	* sysdeps/unix/sysv/linux/i386/lchown.c: New file.
	* sysdeps/unix/sysv/linux/m68k/chown.c: New file.
	* sysdeps/unix/sysv/linux/m68k/fchown.c: New file.
	* sysdeps/unix/sysv/linux/m68k/getegid.c: New file.
	* sysdeps/unix/sysv/linux/m68k/geteuid.c: New file.
	* sysdeps/unix/sysv/linux/m68k/getgid.c: New file.
	* sysdeps/unix/sysv/linux/m68k/getuid.c: New file.
	* sysdeps/unix/sysv/linux/m68k/lchown.c: New file.
	* sysdeps/unix/sysv/linux/sparc/sparc32/chown.c: New file.
	* sysdeps/unix/sysv/linux/sparc/sparc32/fchown.c: New file.
	* sysdeps/unix/sysv/linux/sparc/sparc32/getegid.c: New file.
	* sysdeps/unix/sysv/linux/sparc/sparc32/geteuid.c: New file.
	* sysdeps/unix/sysv/linux/sparc/sparc32/getgid.c: New file.
	* sysdeps/unix/sysv/linux/sparc/sparc32/getuid.c: New file.
	* sysdeps/unix/sysv/linux/sparc/sparc32/lchown.c: New file.
	Based on a patch by Chris Wing <wingc@engin.umich.edu>.

2000-01-14  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/unix/sysv/linux/sparc/sys/procfs.h: New file.

2000-01-13  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/generic/backtrace.c: Include signal.h which
	sigcontextinfo.h headers are used to expect.
	* sysdeps/unix/sysv/linux/sparc/sparc32/register-dump.h
	(register_dump): Fix a typo in the printout.
	Avoid using reg_window, so that asm/ptrace.h is not necessary.
	* sysdeps/unix/sysv/linux/sparc/sparc32/sigcontextinfo.h
	(ADVANCE_STACK_FRAME): Likewise.

	* stdlib/longlong.h: Avoid using __sparc_v9__ ifdefs.
	* sysdeps/sparc/sparc32/bits/wordsize.h: Likewise.
	* sysdeps/sparc/sparc64/bits/wordsize.h: Likewise.

	* sysdeps/unix/sysv/linux/sparc/bits/fcntl.h: Include bits/wordsize.h
	to make it clear this file depends on __WORDSIZE.
	* sysdeps/unix/sysv/linux/ftruncate64.c (__have_no_truncate64):
	Renamed from have_no_truncate64.
	* sysdeps/unix/sysv/linux/truncate64.c (__have_no_truncate64):
	Likewise.
2000-01-17 05:24:52 +00:00
Ulrich Drepper
6f2a816729 Update.
* signal/Versions [GLIBC_2.1.3] (libc): Export __sigsuspend.

	* sysdeps/unix/sysv/linux/sparc/sparc32/mmap64.c (__mmap64): Fix
	typos (__ASSUME_TRUNCATE64_SYSCALL -> __ASSUME_MMAP2_SYSCALL).
	Reported by Philip Blundell <Philip.Blundell@pobox.com>.
2000-01-02 18:30:13 +00:00
Ulrich Drepper
293321753c Update.
1999-12-23  Ulrich Drepper  <drepper@cygnus.com>

	* locale/programs/ld-monetary.c (monetary_finish): Add cast to
	prevent warning.

	* locale/programs/ld-collate.c: Implement writing out multibyte
	collation data.

	* locale/setlocale.c (setlocale): Allow setting LC_COLLATE again.
	* locale/localeinfo.h: Declare variables only for currently implemented
	collate functionality.  Remove FORWARD_CHAR and ELLIPSIS_CHAR.
	* locale/lc-collate.c: Define variables only for currently implemented
	functionality.
	* locale/langinfo.h: Define symbols only for currently implemented
	functionality.
	* locale/categories.def: Define elements for currently implemented
	functionality.
	* locale/C-collate.c: Comment out definitions of arrays with symbol
	name definitions etc.
	(_nl_C_LC_COLLATE): Update for currently defined information.

	* intl/libintl.h: Remove dcgettext macro definition.
	* intl/gettextP.h: Declare _nl_msg_cat_cntr.

	* locale/iso-4217.def: Add NAD.  Remove a few obsolete entries.

	* sysdeps/generic/glob.c (glob): Pass alternate file access functions
	also in recursive call.  Patch by Joe Orton <joe@orton.demon.co.uk>.

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

	* sysdeps/sparc/fpu/ftestexcept.c (fetestexcept): Use proper type
	for __fenv_stfsr argument.
	* sysdeps/unix/sysv/linux/sparc/sparc32/syscalls.list: Add
	truncate64, ftruncate64, fstat64, lstat64, stat64 and mmap2.
	Remove ugetrlimit.
	* sysdeps/unix/sysv/linux/sparc/sparc32/mmap64.c: New file.
	* sysdeps/unix/sysv/linux/sparc/sparc64/kernel_stat.h
	(XSTAT_IS_XSTAT64): Define.
	* sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list: Add
	__libc_lseek64, __libc_pread, __libc_pread64, __libc_pwrite
	and __libc_pwrite64.
	Remove oldgetrlimit and oldsetrlimit.
	* sysdeps/unix/sysv/linux/sparc/sparc64/fxstat64.c: New file.
	* sysdeps/unix/sysv/linux/sparc/sparc64/lxstat64.c: New file.
	* sysdeps/unix/sysv/linux/sparc/sparc64/xstat64.c: New file.

	* sysdeps/unix/sysv/linux/fxstat64.c (__fxstat64): Pass the buf
	pointer to the syscall, not address of that pointer.
	* sysdeps/unix/sysv/linux/lxstat64.c (__lxstat64): Likewise.
	* sysdeps/unix/sysv/linux/xstat64.c (__xstat64): Likewise.
	(__syscall_stat64): Provide proper prototype.

	* sysdeps/unix/sysv/linux/ftruncate64.c (ftruncate64): Share
	has_no_truncate64 between truncate64 and ftruncate64.
	* sysdeps/unix/sysv/linux/truncate64.c (truncate64): Likewise.

	* sysdeps/unix/sysv/linux/kernel-features.h
	(__ASSUME_TRUNCATE64_SYSCALL, __ASSUME_MMAP2_SYSCALL,
	__ASSUME_STAT64_SYSCALL): Define on Sparc for kernels >= 2.3.35.

1999-12-22  Andreas Jaeger  <aj@suse.de>

	* sysdeps/unix/sysv/linux/alpha/syscalls.list: Add __libc_lseek64,
	__libc_pread, __libc_pread64, __libc_pwrite and __libc_pwrite64.
1999-12-24 05:55:50 +00:00
Ulrich Drepper
d7a4856e5d Update.
1999-12-01  Andreas Jaeger  <aj@suse.de>

	* sysdeps/generic/if_index.c (__protocol_available): Add missing
	int for parameter.

	* stdio/stdio.h: Fix typo.
	Patches by Marcus G. Daniels <mgd@santafe.edu>.

1999-12-01  Andreas Jaeger  <aj@suse.de>

	* scripts/test-installation.pl (installation_problem): Filter out
	libpthread_db.

1999-12-01  Andreas Schwab  <schwab@suse.de>

	* sysdeps/unix/sysv/linux/alpha/bits/types.h: Fix signedness of
	__rlim_t and __rlim64_t.
	* sysdeps/unix/sysv/linux/mips/bits/types.h: Likewise.
	* sysdeps/unix/sysv/linux/sparc/bits/types.h: Likewise.

1999-12-01  Andreas Schwab  <schwab@suse.de>

	* sysdeps/unix/sysv/linux/Makefile (sysdep_routines): Add
	oldgetrlimit64 and oldsetrlimit64 for subdir = resource.
	* sysdeps/unix/sysv/linux/Versions: Add getrlimit, setrlimit,
	getrlimit64 and setrlimit64 to version GLIBC_2.1.3.
	* sysdeps/unix/sysv/linux/setrlimit.c: Correct handling of old and
	new kernel version.  Add symbol versions.
	* sysdeps/unix/sysv/linux/syscalls.list: Add oldsetrlimit and
	oldgetrlimit.
	* sysdeps/unix/sysv/linux/alpha/syscalls.list: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/syscalls.list: Add s_getrlimit
	and s_ugetrlimit.
	* sysdeps/unix/sysv/linux/sparc/sparc32/syscalls.list: Likewise.
	* sysdeps/unix/sysv/linux/getrlimit.c: New file.
	* sysdeps/unix/sysv/linux/getrlimit64.c: New file.
	* sysdeps/unix/sysv/linux/oldgetrlimit64.c: New file.
	* sysdeps/unix/sysv/linux/oldsetrlimit64.c: New file.
	* sysdeps/unix/sysv/linux/setrlimit64.c: New file.
	* sysdeps/unix/sysv/linux/alpha/oldgetrlimit64.c: New file.
	* sysdeps/unix/sysv/linux/alpha/oldsetrlimit64.c: New file.
	* sysdeps/unix/sysv/linux/sparc/sparc64/oldgetrlimit64.c: New
	file.
	* sysdeps/unix/sysv/linux/sparc/sparc64/oldsetrlimit64.c: New
	file.
1999-12-02 08:21:38 +00:00
Ulrich Drepper
850cd9da8b Update.
1999-11-26  Thorsten Kukuk  <kukuk@suse.de>

	* sysdeps/gnu/siglist.h: If SIGPWR == SIGLOST, don't include SIGPWR
	message.
	* sysdeps/unix/sysv/linux/sparc/sparc32/register-dump.h: Include
	asm/ptrace.h, since this will not be done with 2.3.xx automatically
	* sysdeps/unix/sysv/linux/sparc/sparc64/register-dump.h: Likewise.

1999-11-26  Ulrich Drepper  <drepper@cygnus.com>

	* locale/iso-3166.def: Update from latest official list.
1999-11-26 19:34:57 +00:00
Ulrich Drepper
09b88f8ab8 Update.
1999-11-15  Andreas Jaeger  <aj@suse.de>

	* sysdeps/unix/sysv/linux/sparc/sparc32/syscalls.list: Add
	__syscall_setrlimit.
	* sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list: Likewise.

	* Versions.def: Remove predecessors.  They now get computed.
1999-11-15 07:34:59 +00:00
Ulrich Drepper
abd3161206 Update.
* sysdeps/unix/sysv/linux/sparc/sparc32/syscalls.list: Add execve
	syscall.
	* sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list: Likewise.
1999-08-24 20:47:04 +00:00
Ulrich Drepper
b7e519e780 Update.
1999-08-23  Andreas Jaeger  <aj@arthur.rhein-neckar.de>

	* sysdeps/unix/sysv/linux/mips/bits/errno.h: New file.  Neccessary
	since mips*-linux has ECANCELED.

1999-08-23  Andreas Schwab  <schwab@suse.de>

	* sysdeps/unix/sysv/linux/m68k/sigcontextinfo.h: Define
	SIGCONTEXT_EXTRA_ARGS.
	* sysdeps/unix/sysv/linux/i386/sigcontextinfo.h: Likewise.
	* sysdeps/generic/sigcontextinfo.h: Likewise.
	* sysdeps/mach/hurd/i386/sigcontextinfo.h: Likewise.
	* sysdeps/unix/sysv/linux/alpha/sigcontextinfo.h: Likewise.
	* sysdeps/unix/sysv/linux/arm/sigcontextinfo.h: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/sigcontextinfo.h: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/sigcontextinfo.h:
	Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/sigcontextinfo.h:
	Likewise.
1999-08-23 17:53:16 +00:00
Ulrich Drepper
39abffb337 Update.
1999-06-17  Ulrich Drepper  <drepper@cygnus.com>

	* sysdeps/unix/sysv/linux/sparc/sparc32/sigaction.c: Don't fail
	always when oact is NULL.
	Patch by Christian Meder <meder@isr.uni-stuttgart.de>.
1999-06-17 10:47:43 +00:00
Ulrich Drepper
d265c8337f Update.
1999-05-24  Jakub Jelinek  <jj@ultra.linux.cz>

	* sysdeps/sparc/bits/wordsize.h: New file.
	* sysdeps/sparc/bits/fenv.h: New file.
	* sysdeps/sparc/fpu_control.h: New file.
	* sysdeps/sparc/gmp-mparam.h: New file.

	* sysdeps/sparc/sparc32/fpu/bits/fenv.h: Remove.
	* sysdeps/sparc/sparc32/fpu/fpu_control.h: Remove.
	* sysdeps/sparc/sparc64/bits/wordsize.h: Remove.
	* sysdeps/sparc/sparc64/fpu/bits/fenv.h: Remove.
	* sysdeps/sparc/sparc64/fpu/fpu_control.h: Remove.
	* sysdeps/sparc/sparc64/gmp-mparam.h: Remove.

	* sysdeps/unix/sysv/linux/sparc/bits/setjmp.h: New file.
	* sysdeps/unix/sysv/linux/sparc/bits/types.h: New file.
	* sysdeps/unix/sysv/linux/sparc/bits/statfs.h: New file.
	* sysdeps/unix/sysv/linux/sparc/sys/ucontext.h: New file.

	* sysdeps/unix/sysv/linux/sparc/sparc32/sys/ucontext.h: Remove.
	* sysdeps/unix/sysv/linux/sparc/sparc64/bits/setjmp.h: Remove.
	* sysdeps/unix/sysv/linux/sparc/sparc64/bits/types.h: Remove.
	* sysdeps/unix/sysv/linux/sparc/sparc64/bits/statfs.h: Remove.
	* sysdeps/unix/sysv/linux/sparc/sparc64/sys/ucontext.h: Remove.

1999-05-19  Jakub Jelinek  <jj@ultra.linux.cz>
1999-05-19  Jakub Jelinek  <jj@ultra.linux.cz>
1999-05-19  Jakub Jelinek  <jj@ultra.linux.cz>
1999-05-25 11:58:59 +00:00
Ulrich Drepper
c6293dee98 Update.
1998-03-30  Joel Klecker  <espy@debian.org>

	* sysdeps/unix/sysv/linux/sparc/sparc32/Makefile
	(sysdep-others,install-bin): Add lddlibc4.
1999-05-02 17:20:24 +00:00
Richard Henderson
4e75fa854a Sparc merge from Jakub.
1999-04-14  Jakub Jelinek  <jj@ultra.linux.cz>

	* scripts/config.sub: Allow sparcv[6789]-* and sparcv8plus{,a}-*
	architectures.
	* sysdeps/sparc/sparc32/sparcv8/Makefile: Use sysdep-CFLAGS
	instead of CFLAGS.
	* sysdeps/sparc/sparc32/sparcv8/Makefile: Use sysdep-CFLAGS
	instead of CFLAGS. For gnulib and string directories use
	-Wa,-Av9a gcc ASFLAGS.
	* sysdeps/sparc/sparc32/sparcv9/memmove.c: New file.
	* sysdeps/unix/sysv/linux/sparc/sparc32/dl-procinfo.h: New file.
	* sysdeps/unix/sysv/linux/sparc/sparc64/dl-procinfo.h: New file.
	* shlib-versions: Handle sparcv[6789]-* and sparcv8plus{,a}-*
	the same way as sparc-*.
1999-04-14 15:48:28 +00:00
Richard Henderson
ae6b873031 Sparc string routines from Jakub.
1999-03-29  Jakub Jelinek  <jj@ultra.linux.cz>

	* sysdeps/sparc/sparc32/sparcv8/Makefile: New file.
	* sysdeps/sparc/sparc32/sparcv8/rem.S: Delay after write %y.
	* sysdeps/sparc/sparc32/sparcv8/sdiv.S: Likewise.
	* sysdeps/sparc/sparc32/sparcv8/udiv.S: Likewise.
	* sysdeps/sparc/sparc32/sparcv8/urem.S: Likewise.

	* sysdeps/sparc/sparc32/sparcv9/bcopy.c: New file.
	* sysdeps/sparc/sparc32/sparcv9/bzero.c: New file.
	* sysdeps/sparc/sparc32/sparcv9/memchr.S: New file.
	* sysdeps/sparc/sparc32/sparcv9/memcmp.S: New file.
	* sysdeps/sparc/sparc32/sparcv9/memcpy.S: New file.
	* sysdeps/sparc/sparc32/sparcv9/memset.S: New file.
	* sysdeps/sparc/sparc32/sparcv9/stpcpy.S: New file.
	* sysdeps/sparc/sparc32/sparcv9/strcat.S: New file.
	* sysdeps/sparc/sparc32/sparcv9/strchr.S: New file.
	* sysdeps/sparc/sparc32/sparcv9/strcmp.S: New file.
	* sysdeps/sparc/sparc32/sparcv9/strcpy.S: New file.
	* sysdeps/sparc/sparc32/sparcv9/strcspn.S: New file.
	* sysdeps/sparc/sparc32/sparcv9/strlen.S: New file.
	* sysdeps/sparc/sparc32/sparcv9/strncpy.S: New file.
	* sysdeps/sparc/sparc32/sparcv9/strpbrk.S: New file.
	* sysdeps/sparc/sparc32/sparcv9/strrchr.c: New file.
	* sysdeps/sparc/sparc32/sparcv9/strspn.S: New file.
	* sysdeps/sparc/sparc32/sparcv9/dotmul.S: New file.
	* sysdeps/sparc/sparc32/sparcv9/rem.S: New file.
	* sysdeps/sparc/sparc32/sparcv9/sdiv.S: New file.
	* sysdeps/sparc/sparc32/sparcv9/udiv.S: New file.
	* sysdeps/sparc/sparc32/sparcv9/umul.S: New file.
	* sysdeps/sparc/sparc32/sparcv9/urem.S: New file.
	* sysdeps/sparc/sparc32/sparcv9/Makefile: New file.
	* sysdeps/sparc/sparc32/sparcv9/stpncpy.S: New file.
	* sysdeps/sparc/sparc32/sparcv9/strncmp.S: New file.

	* sysdeps/sparc/sparc32/bcopy.c: New file.
	* sysdeps/sparc/sparc32/bzero.c: New file.
	* sysdeps/sparc/sparc32/memchr.S: New file.
	* sysdeps/sparc/sparc32/memcpy.S: New file.
	* sysdeps/sparc/sparc32/memmove.c: New file.
	* sysdeps/sparc/sparc32/memset.S: New file.
	* sysdeps/sparc/sparc32/stpcpy.S: New file.
	* sysdeps/sparc/sparc32/strchr.S: New file.
	* sysdeps/sparc/sparc32/strrchr.c: New file.
	* sysdeps/sparc/sparc32/strcpy.S: New file.
	* sysdeps/sparc/sparc32/strlen.S: New file.
	* sysdeps/sparc/sparc32/strcat.S: New file.
	* sysdeps/sparc/sparc32/strcmp.S: New file.

	* sysdeps/sparc/sparc64/bcopy.c: New file.
	* sysdeps/sparc/sparc64/bzero.c: New file.
	* sysdeps/sparc/sparc64/memchr.S: New file.
	* sysdeps/sparc/sparc64/memcmp.S: New file.
	* sysdeps/sparc/sparc64/memcpy.S: New file.
	* sysdeps/sparc/sparc64/memset.S: New file.
	* sysdeps/sparc/sparc64/stpcpy.S: New file.
	* sysdeps/sparc/sparc64/strcat.S: New file.
	* sysdeps/sparc/sparc64/strchr.S: New file.
	* sysdeps/sparc/sparc64/strcmp.S: New file.
	* sysdeps/sparc/sparc64/strcpy.S: New file.
	* sysdeps/sparc/sparc64/strcspn.S: New file.
	* sysdeps/sparc/sparc64/strlen.S: New file.
	* sysdeps/sparc/sparc64/strncpy.S: New file.
	* sysdeps/sparc/sparc64/strpbrk.S: New file.
	* sysdeps/sparc/sparc64/strrchr.c: New file.
	* sysdeps/sparc/sparc64/strspn.S: New file.
	* sysdeps/sparc/sparc64/stpncpy.S: New file.
	* sysdeps/sparc/sparc64/strncmp.S: New file.

	* sysdeps/unix/sysv/linux/sparc/sparc32/Makefile (ASFLAGS-.os):
	Append -fPIC, don't replace.

	* configure.in: Recognize sparcv8plus / sparcv9.
1999-03-29 13:25:15 +00:00
Ulrich Drepper
555d4c582e Update.
1999-02-21  David S. Miller  <davem@redhat.com>

	* sysdeps/unix/sysv/linux/sparc/sparc32/sigcontextinfo.h: Fix
	parentheses in Feb 2 changes.
	* sysdeps/unix/sysv/linux/sparc/sparc64/sigcontextinfo.h: Likewise.
1999-02-22 09:37:25 +00:00
Ulrich Drepper
e1f601e878 Update.
1999-02-03  Jakub Jelinek  <jj@ultra.linux.cz>

	* sysdeps/generic/segfault.c: Add ADVANCE_STACK_FRAME
	macro, so that architectures which need to add some special
	offset to stack pointer can share this file.

	* sysdeps/unix/sysv/linux/sparc/sparc32/sigcontextinfo.h: New file.
	* sysdeps/unix/sysv/linux/sparc/sparc32/register-dump.h: New file.
	* sysdeps/unix/sysv/linux/sparc/sparc64/sigcontextinfo.h: New file.
	* sysdeps/unix/sysv/linux/sparc/sparc64/register-dump.h: New file.

	* sysdeps/unix/sysv/linux/sparc/sparc32/bits/mman.h: Remove.
	* sysdeps/unix/sysv/linux/sparc/sparc64/bits/mman.h: Remove.
	* sysdeps/unix/sysv/linux/sparc/bits/mman.h: New file - common
	between sparc32 and sparc64.

	* sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S: Remove.
	* sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S: Remove.
	* sysdeps/unix/sysv/linux/sparc/vfork.S: New file - common
	between sparc32 and sparc64.

	* sysdeps/unix/sysv/linux/sparc/sparc32/fork.S: Remove.
	* sysdeps/unix/sysv/linux/sparc/sparc64/fork.S: Remove.
	* sysdeps/unix/sysv/linux/sparc/fork.S: New file - common
	between sparc32 and sparc64.

	* sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.S: Remove.
	* sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.S: Remove.
	* sysdeps/unix/sysv/linux/sparc/sysdep.S: New file - common
	between sparc32 and sparc64.
1999-02-07 20:46:14 +00:00
Ulrich Drepper
f549233427 Update.
1999-02-03  Jakub Jelinek  <jj@ultra.linux.cz>

	* sysdeps/unix/sysv/linux/sparc/sparc64/pipe.S: Set branch
	prediction correctly.

	* sysdeps/unix/sysv/linux/sparc/sparc32/profil-counter.h: Signal
	takes a pointer to __sigcontext_t.
	* sysdeps/unix/sysv/linux/sparc/sparc64/syscall.S: Do a nop after retl.
	* sysdeps/unix/sysv/linux/sparc/sparc32/Dist: Remove fork.S.
1999-02-03 09:31:42 +00:00
Ulrich Drepper
28fd0f23c1 Update.
1999-01-31  Philip Blundell  <philb@gnu.org>

	* sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S: If the kernel
	doesn't have vfork, resort to using fork.
	* sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S: Likewise.
1999-01-30 17:38:29 +00:00
Ulrich Drepper
84514bcbf2 Update.
* sysdeps/unix/sparc/vfork.S: Correct comment.
	* sysdeps/unix/sparc/fork.S: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/syscalls.list: Remove vfork.
	* sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/fork.S: No special case for
	child necessary.
	* sysdeps/unix/sysv/linux/sparc/sparc64/fork.S: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S: New file.
	* sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S: New file.
	Patches by Jakub Jelinek <jj@sunsite.ms.mff.cuni.cz>.

	* sysdeps/libm-i387/s_fdim.S: Change fsubp to fsubrp for picky gas.
1999-01-29 12:01:59 +00:00
Ulrich Drepper
4487e30b40 Update.
* po/sv.po: Update from translation team.

	* sysdeps/unix/sysv/linux/sparc/sparc32/syscalls.list: Add __vfork
	as alias.
	* sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list: Likewise.

1999-01-24  Andreas Jaeger  <aj@arthur.rhein-neckar.de>

	* ctype/ctype.h (toupper,tolower): Use __inline instead of inline,
	define inline functions only when optimizing for speed and
	__USE_EXTERN_INLINES is set.

1999-01-24  Ulrich Drepper  <drepper@cygnus.com>

	* ctype/ctype.c (toupper): Correct variable names from last change.
1999-01-24 17:11:55 +00:00
Ulrich Drepper
2bd6088017 Update.
1999-01-18  Ulrich Drepper  <drepper@cygnus.com>

	* iconv/gconv_conf.c (add_module): Complete rewrite.  Use cleverer
	data structures and avoid creating intermediate representations
	first.  Rewrite also all helper functions.
	* iconv/gconv_db.c (find_derivation): Use new data structure for
	module database.
	* iconv/Versions: Remove __gconv_nmodules.
	* iconv/iconv_prog.c: Rewrite generation of charset name list to
	use new data structure.
	* iconv/gconv_int.h (struct gconv_module): Add new elements for
	database data structure.
	(__gconv_modules_db): Update type.
	(__gconv_transform_dummy): Removed.
	* iconv/gconv_builtin.h: Remove dummy transformation.
	* iconv/gconv_simple.c: Remove __gconv_transform_dummy.

	* sysdeps/unix/sysv/linux/sparc/sparc32/syscalls.list: Remove
	__syscall_vfork, add vfork.
	* sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list: Likewise.

	* Rules: Add dummp.c and dummy.o to common-generated.
1999-01-18 23:15:16 +00:00
Ulrich Drepper
44129238a2 Update.
1999-01-13  Ulrich Drepper  <drepper@cygnus.com>

	* sysdeps/unix/sysv/linux/syscalls.list: Add __syscall_fork alias.
	* sysdeps/unix/sysv/linux/vfork.c: Use vfork syscall if available,
	otherwise use fork.
	* sysdeps/unix/sysv/linux/powerpc/syscalls.list: Add vfork.
	* sysdeps/unix/sysv/linux/sparc32/syscalls.list: Likewise.
	* sysdeps/unix/sysv/linux/sparc64/syscalls.list: Likewise.

	* sysdeps/unix/sysv/linux/i386/sysdep.h: Correct handling of
	INLINE_SYSCALL for syscall without parameters.
1999-01-13 13:29:55 +00:00
Ulrich Drepper
ff7059bfe8 Update.
1998-12-18  Ulrich Drepper  <drepper@cygnus.com>

	* manual/texinfo.tex: Update to latest version.

	* sysdeps/unix/sysv/linux/sparc/sparc32/syscalls.list: Add ipc.
	* sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list: Likewise.
	Patch by Cristian Gafton <gafton@redhat.com>.
1998-12-18 09:12:02 +00:00
Ulrich Drepper
655b26bb75 Update.
1998-10-29  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de> 
 
	* manual/locale.texi (Formatting Numbers): Fix strfmon examples. 
 
1998-10-28  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de> 
 
	* sysdeps/generic/bits/select.h (__FD_ZERO): Change '\0' to plain 
	0, __fd_mask is usually not a char. 
 
1998-10-30  Andreas Jaeger  <aj@arthur.rhein-neckar.de> 
 
	* sysdeps/unix/sysv/linux/sigpending.c (sigpending): Allow 
	compilation on systems without rt_* syscalls (e.g. on Linux 2.0). 
	* sysdeps/unix/sysv/linux/sigprocmask.c (__sigprocmask): Likewise. 
	* sysdeps/unix/sysv/linux/sigwaitinfo.c: Likewise. 
	* sysdeps/unix/sysv/linux/sigtimedwait.c: Likewise. 
	* sysdeps/unix/sysv/linux/sigsuspend.c (__sigsuspend): Likewise 
	* sysdeps/unix/sysv/linux/sigqueue.c: Likewise. 
	* sysdeps/unix/sysv/linux/aio_sigqueue.c: Likewise. 
 
	* sysdeps/unix/sysv/linux/i386/sigaction.c (__sigaction): Allow 
	compiling on systems without rt_sigaction syscall. 
	* sysdeps/unix/sysv/linux/sparc/sparc32/sigaction.c (__sigaction): 
	Likewise. 
 
1998-10-30  Andreas Jaeger  <aj@arthur.rhein-neckar.de> 
 
	* time/strptime.c (HERE_D_FMT): Fix typo.   
	Reported by Claus Heine <heine@math1.rwth-aachen.de>, PR libc/842. 
 
	* catgets/test1.msg: New file.
1998-10-31 11:42:52 +00:00
Ulrich Drepper
0e103c6d2a Update.
1998-10-26 11:09  Ulrich Drepper  <drepper@cygnus.com>

	* time/Makefile (tests): Add tst-posixtz.
	* time/tst-posixtz.c: New file.

1998-10-24  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>

	* elf/rtld.c (process_envvars): Accept any non-null value of
	LD_BIND_NOW, as mandated by the ABI.

1998-10-24  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>

	* sysdeps/unix/sysv/linux/pread.c: Rename __syscall_pread64 to
	__syscall_pread.
	* sysdeps/unix/sysv/linux/pwrite.c: Rename __syscall_pwrite64 to
	__syscall_pwrite.
	* sysdeps/unix/sysv/linux/alpha/syscalls.list: Likewise.
	* sysdeps/unix/sysv/linux/arm/syscalls.list: Likewise.
	* sysdeps/unix/sysv/linux/mips/syscalls.list: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/syscalls.list: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/syscalls.list: Likewise.  Remove
	duplicate entries.
	* sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list: Remove
	s_pread64 and s_pwrite64.
	* sysdeps/unix/sysv/linux/alpha/syscalls.list: Likewise.

1998-10-24  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>

	* sysdeps/unix/sysv/linux/llseek.c: Use INLINE_SYSCALL.
	* sysdeps/unix/sysv/linux/arm/syscalls.list: Rename __sys_llseek
	to __syscall__llseek.
	* sysdeps/unix/sysv/linux/mips/syscalls.list: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/syscalls.list: Likewise.
	* sysdeps/unix/sysv/linux/i386/syscalls.list: Remove entry for
	__sys_llseek.

1998-10-26  Cristian Gafton  <gafton@redhat.com>

	* sysdeps/unix/sysv/linux/sparc/sparc32/syscalls.list: Add s_setfsgid
	and s_setfsuid.

1998-10-26  Ulrich Drepper  <drepper@cygnus.com>

	* time/tzset.c (tz_compute): Correct last patch and describe this
	in a comment.
1998-10-26 11:11:28 +00:00
Ulrich Drepper
0d486134da Update.
* sysdeps/unix/sysv/linux/i386/Dist: Add setresuid.c, setresgid.c,
	setfsuid.c, and setfsgid.c.
	* sysdeps/unix/sysv/linux/arm/Dist: Likewise.
	* sysdeps/unix/sysv/linux/m68k/Dist: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/Dist: Likewise.
1998-10-23 14:05:15 +00:00
Ulrich Drepper
adcb550ca6 Update.
* sysdeps/unix/sysv/linux/i386/sigaction.c: Likewise.
	* sysdeps/unix/sysv/linux/Makefile [subdir=signal] (sysdep_routines):
	Move definition to...
	* sysdeps/unix/sysv/linux/alpha/Makefile: ...here...
	* sysdeps/unix/sysv/linux/arm/syscalls.list: ...and here...
	* sysdeps/unix/sysv/linux/m68k/syscalls.list: ...and here...
	* sysdeps/unix/sysv/linux/mips/syscalls.list: ...and here...
	* sysdeps/unix/sysv/linux/powerpc/syscalls.list: ...and here...
	* sysdeps/unix/sysv/linux/sparc/sparc32/syscalls.list: ...and here...
	* sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list: ...and here.
1998-10-21 15:40:39 +00:00
Ulrich Drepper
0dee67386c Update.
1998-10-21 14:38  Ulrich Drepper  <drepper@cygnus.com>

	* sysdeps/unix/sysdep.h (INLINE_SYSCALL): New macro.  Simply call
	__syscall_* function.
	* sysdeps/unix/sysv/linux/aio_sigqueue.c: Use INLINE_SYSCALL instead
	of calling __syscall_* function.
	* sysdeps/unix/sysv/linux/fxstat.c: Likewise.
	* sysdeps/unix/sysv/linux/fxstat64.c: Likewise.
	* sysdeps/unix/sysv/linux/getcwd.c: Likewise.
	* sysdeps/unix/sysv/linux/getdents.c: Likewise.
	* sysdeps/unix/sysv/linux/getpriority.c: Likewise.
	* sysdeps/unix/sysv/linux/getresgid.c: Likewise.
	* sysdeps/unix/sysv/linux/getresuid.c: Likewise.
	* sysdeps/unix/sysv/linux/lxstat.c: Likewise.
	* sysdeps/unix/sysv/linux/lxstat64.c: Likewise.
	* sysdeps/unix/sysv/linux/poll.c: Likewise.
	* sysdeps/unix/sysv/linux/pread.c: Likewise.
	* sysdeps/unix/sysv/linux/pread64.c: Likewise.
	* sysdeps/unix/sysv/linux/ptrace.c: Likewise.
	* sysdeps/unix/sysv/linux/pwrite.c: Likewise.
	* sysdeps/unix/sysv/linux/pwrite64.c: Likewise.
	* sysdeps/unix/sysv/linux/readv.c: Likewise.
	* sysdeps/unix/sysv/linux/reboot.c: Likewise.
	* sysdeps/unix/sysv/linux/sigaction.c: Likewise.
	* sysdeps/unix/sysv/linux/siglist.h: 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/syscalls.list: Likewise.
	* sysdeps/unix/sysv/linux/sysctl.c: Likewise.
	* sysdeps/unix/sysv/linux/ustat.c: Likewise.
	* sysdeps/unix/sysv/linux/writev.c: Likewise.
	* sysdeps/unix/sysv/linux/xmknod.c: Likewise.
	* sysdeps/unix/sysv/linux/xstat.c: Likewise.
	* sysdeps/unix/sysv/linux/xstat64.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/chown.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/getgroups.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/setresgid.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/setresuid.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/setuid.c: Likewise.

	* sysdeps/unix/sysv/linux/i386/sysdep.h: Define INLINE_SYSCALL using
	inline assembler.
	* sysdeps/unix/sysv/linux/i386/syscalls.list: Remove various
	__syscall_* definitions.

	* sysdeps/unix/sysv/linux/syscalls.list: Move various __syscall_*
	definitions to...
	* sysdeps/unix/sysv/linux/alpha/syscalls.list: ...here...
	* sysdeps/unix/sysv/linux/arm/syscalls.list: ...and here...
	* sysdeps/unix/sysv/linux/m68k/syscalls.list: ...and here...
	* sysdeps/unix/sysv/linux/mips/syscalls.list: ...and here...
	* sysdeps/unix/sysv/linux/powerpc/syscalls.list: ...and here...
	* sysdeps/unix/sysv/linux/sparc/sparc32/syscalls.list: ...and here...
	* sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list: ...and here.

	* sysdeps/unix/sysv/linux/i386/Makefile [subdir=misc]
	(sysdep_routines): Remove s_pread64 and s_pwrite64.

	* sysdeps/unix/sysv/linux/i386/pread.c: New file.
	* sysdeps/unix/sysv/linux/i386/pread64.c: New file.
	* sysdeps/unix/sysv/linux/i386/pwrite.c: New file.
	* sysdeps/unix/sysv/linux/i386/pwrite64.c: New file.
	* sysdeps/unix/sysv/linux/i386/s_pread64.S: Removed.
	* sysdeps/unix/sysv/linux/i386/s_pwrite64.S: Removed.

1998-10-21  Andreas Jaeger  <aj@arthur.rhein-neckar.de>

	* sysdeps/unix/sysv/linux/siglist.h: Fix some typos in these files
	and bring them in synch.
	* sysdeps/unix/siglist.c: Likewise.
	Reported by Vladimir Michl <michlv@risc.upol.cz> [PR libc/832].

1998-10-20  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>

	* sysdeps/unix/sysv/linux/i386/setresuid.c: Allow -1 as arguments.
	* sysdeps/unix/sysv/linux/i386/setresgid.c: Likewise.

	* sysdeps/unix/sysv/linux/i386/setreuid.c: New file.
	* sysdeps/unix/sysv/linux/i386/setregid.c: New file.
	* sysdeps/unix/sysv/linux/m68k/setreuid.c: New file.
	* sysdeps/unix/sysv/linux/m68k/setregid.c: New file.
	* sysdeps/unix/sysv/linux/arm/setreuid.c: New file.
	* sysdeps/unix/sysv/linux/arm/setregid.c: New file.
	* sysdeps/unix/sysv/linux/sparc/sparc32/setreuid.c: New file.
	* sysdeps/unix/sysv/linux/sparc/sparc32/setregid.c: New file.
	* sysdeps/unix/sysv/linux/i386/syscalls.list: Add s_setreuid and
	s_setregid.
	* sysdeps/unix/sysv/linux/m68k/syscalls.list: Likewise.
	* sysdeps/unix/sysv/linux/arm/syscalls.list: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/syscalls.list: Likewise.

1998-10-20  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>

	* sunrpc/rpc_main.c (close_output, close_input): New functions.
	(c_output, h_output, s_output, l_output, t_output, svc_output,
	clnt_output, mkfile_output): Call them at the end.

1998-10-19  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>

	* db/Makefile (LDFLAGS-db1.so): New variable, to avoid duplicating
	link command.

1998-10-18  Zack Weinberg  <zack@rabi.phys.columbia.edu>

	* sysdeps/unix/opendir.c: Check at runtime for kernel support for
	O_DIRECTORY.

1998-10-20  H.J. Lu  <hjl@gnu.org>

	* sysdeps/unix/sysv/linux/i386/setresuid.c (__setresuid): Fix
	argument types.
1998-10-21 15:29:52 +00:00
Ulrich Drepper
9ffbb61221 Update.
* sysdeps/unix/opendir.c: Use O_DIRECTORY if available.  If not
	available double check to verify it's a directory.

	* sysdeps/unix/sysv/linux/alpha/bits/fcntl.h: Add O_DIRECTORY.
	* sysdeps/unix/sysv/linux/mips/bits/fcntl: Likewise.
	* sysdeps/unix/sysv/linux/bits/fcntl.h: Remove O_* constants which
	are not generally available.
	* sysdeps/unix/sysv/linux/i386/bits/fcntl.h: New file.

	* sysdeps/unix/sysv/linux/i386/setgroups.c: Add range check for values.
	* sysdeps/unix/sysv/linux/arm/Makefile: New file.
	* sysdeps/unix/sysv/linux/arm/setegid.c: New file.
	* sysdeps/unix/sysv/linux/arm/seteuid.c: New file.
	* sysdeps/unix/sysv/linux/arm/setfsgid.c: New file.
	* sysdeps/unix/sysv/linux/arm/setfsuid.c: New file.
	* sysdeps/unix/sysv/linux/arm/setgid.c: New file.
	* sysdeps/unix/sysv/linux/arm/setgroups.c: New file.
	* sysdeps/unix/sysv/linux/arm/setresgid.c: New file.
	* sysdeps/unix/sysv/linux/arm/setresuid.c: New file.
	* sysdeps/unix/sysv/linux/arm/setuid.c: New file.
	* sysdeps/unix/sysv/linux/i386/setegid.c: New file.
	* sysdeps/unix/sysv/linux/i386/seteuid.c: New file.
	* sysdeps/unix/sysv/linux/i386/setfsgid.c: New file.
	* sysdeps/unix/sysv/linux/i386/setfsuid.c: New file.
	* sysdeps/unix/sysv/linux/i386/setgid.c: New file.
	* sysdeps/unix/sysv/linux/i386/setgroups.c: New file.
	* sysdeps/unix/sysv/linux/i386/setresgid.c: New file.
	* sysdeps/unix/sysv/linux/i386/setresuid.c: New file.
	* sysdeps/unix/sysv/linux/i386/setuid.c: New file.
	* sysdeps/unix/sysv/linux/m68k/setegid.c: New file.
	* sysdeps/unix/sysv/linux/m68k/seteuid.c: New file.
	* sysdeps/unix/sysv/linux/m68k/setfsgid.c: New file.
	* sysdeps/unix/sysv/linux/m68k/setfsuid.c: New file.
	* sysdeps/unix/sysv/linux/m68k/setgid.c: New file.
	* sysdeps/unix/sysv/linux/m68k/setgroups.c: New file.
	* sysdeps/unix/sysv/linux/m68k/setresgid.c: New file.
	* sysdeps/unix/sysv/linux/m68k/setresuid.c: New file.
	* sysdeps/unix/sysv/linux/m68k/setuid.c: New file.
	* sysdeps/unix/sysv/linux/sparc/sparc32/setegid.c: New file.
	* sysdeps/unix/sysv/linux/sparc/sparc32/seteuid.c: New file.
	* sysdeps/unix/sysv/linux/sparc/sparc32/setfsgid.c: New file.
	* sysdeps/unix/sysv/linux/sparc/sparc32/setfsuid.c: New file.
	* sysdeps/unix/sysv/linux/sparc/sparc32/setgid.c: New file.
	* sysdeps/unix/sysv/linux/sparc/sparc32/setgroups.c: New file.
	* 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/setuid.c: New file.

	* sysdeps/unix/sysv/linux/arm/syscalls.list: Add s_setgid, s_setresuid,
	s_setresgid, and s_setuid.
	* sysdeps/unix/sysv/linux/i386/syscalls.list: Likewise.
	* sysdeps/unix/sysv/linux/m68k/syscalls.list: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/syscalls.list: Likewise.
	* sysdeps/unix/sysv/linux/i386/Makefile [subdir=misc]
	(sysdep_routines): Add setfsgid, setfsuid, setresgid, and setresuid.
	* sysdeps/unix/sysv/linux/m68k/Makefile: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/Makefile: Likewise.

1998-10-16  Ulrich Drepper  <drepper@cygnus.com>

	* iconv/skeleton.c: Include ELF header only of STATIC_GCONV is not
1998-10-16 16:33:36 +00:00
Ulrich Drepper
99e46354d9 Update.
1998-10-13  Ulrich Drepper  <drepper@cygnus.com>

	* sysdeps/unix/sysv/linux/sparc/sparc32/sigaction.c: Include
	string.h to get memcpy prototype and NULL definition.

1998-10-12  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>

	* misc/sys/cdefs.h (__THROW): New macro.
	* argp/argp.h: Use it to replace the kludgey __P in inline
	function definitions.
	* sysdeps/unix/sysv/linux/bits/socket.h: Likewise.
	* stdlib/stdlib.h: Likewise.
	* wcsmbs/wchar.h: Likewise.
	* libio/stdio.h: Likewise.
	* stdio/stdio.h: Likewise.
	* sysdeps/wordsize-64/inttypes.h: Likewise.
	* sysdeps/wordsize-32/inttypes.h: Likewise.
	* string/argz.h: Likewise.
	* io/sys/stat.h: Likewise.

1998-10-12  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>

	* Rules (stdio_lim): New variable.
	($(stdio_lim:h=st)): Use this as intermediate stamp file, depend
	on Rules and config.make, use $(move-if-change) to avoid unnessary
	recompilations, and cleanup command.
	(common-generated): Add bits/stdio_lim.st.
1998-10-13 15:12:27 +00:00
Ulrich Drepper
3d42e04d74 Update.
1998-09-23 17:28 -0400  Zack Weinberg  <zack@rabi.phys.columbia.edu>

	* misc/sys/mman.h: New file.

	* sysdeps/generic/bits/mman.h: New file.
	* sysdeps/unix/bsd/osf/bits/mman.h: New file.
	* sysdeps/unix/bsd/sun/sunos4/bits/mman.h: New file.
	* sysdeps/unix/bsd/ultrix4/bits/mman.h: New file.
	* sysdeps/unix/sysv/irix4/bits/mman.h: New file.

	* sysdeps/generic/sys/mman.h: Removed.
	* sysdeps/unix/bsd/osf/sys/mman.h: Removed.
	* sysdeps/unix/bsd/sun/sunos4/sys/mman.h: Removed.
	* sysdeps/unix/bsd/ultrix4/sys/mman.h: Removed.
	* sysdeps/unix/sysv/irix4/sys/mman.h: Removed.
	* sysdeps/unix/sysv/linux/sys/mman.h: Removed.

	* include/sys/mman.h: Look directly for misc/sys/mman.h.
	* misc/Makefile (headers): Add bits/mman.h.
	* sysdeps/unix/sysv/linux/Makefile (sysdep_headers): Remove
	bits/mman.h.

	* sysdeps/unix/sysv/linux/alpha/Dist: Don't mention bits/mman.h.
	* sysdeps/unix/sysv/linux/arm/Dist: Likewise.
	* sysdeps/unix/sysv/linux/i386/Dist: Likewise.
	* sysdeps/unix/sysv/linux/m68k/Dist: Likewise.
	* sysdeps/unix/sysv/linux/mips/Dist: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/Dist: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/Dist: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/Dist: Likewise.

1998-09-23 16:27 -0400  Zack Weinberg  <zack@rabi.phys.columbia.edu>

	* sysdeps/mach/alpha/sysdep.h: Don't use #include_next.
	* sysdeps/mach/alpha/thread_state.h: Likewise.
	* sysdeps/mach/i386/sysdep.h: Likewise.
	* sysdeps/mach/i386/thread_state.h: Likewise.
	* sysdeps/mach/mips/sysdep.h: Likewise.
	* sysdeps/mach/mips/thread_state.h: Likewise.
	* sysdeps/posix/profil.c: Likewise.
	* sysdeps/i386/i586/memcopy.h: Likewise.
	* sysdeps/mach/pagecopy.h: Likewise.
1998-09-23 18:52:55 +00:00
Ulrich Drepper
9c4c002459 Update.
1998-09-14  Andreas Jaeger  <aj@arthur.rhein-neckar.de>

	* sysdeps/mach/hurd/dl-cache.c (_dl_unload_cache): New dummy
	function.  Reported by okuji@kuicr.kyoto-u.ac.jp [PR libc/789].

1998-09-15  David S. Miller  <davem@pierdol.cobaltmicro.com>

	* sysdeps/sparc/sparc32/dl-machine.h (elf_machine_runtime_setup):
	Add profiling support.
	(TRAMPOLINE_TEMPLATE): New macro.
	(ELF_MACHINE_RUNTIME_TRAMPOLINE): Define in terms of that.
	(RTLD_START): Prettify, and set __libc_stack_end properly.
	(elf_machine_rela) [R_SPARC_COPY]: Remove RTLD_BOOTSTRAP ifndef
	and check for sym being NULL instead.
	* sysdeps/sparc/sparc64/addmul_1.S: Adjust to allocate 192 bytes
	of stack space.
	* sysdeps/sparc/sparc64/lshift.S: Likewise.
	* sysdeps/sparc/sparc64/mul_1.S: Likewise.
	* sysdeps/sparc/sparc64/rshift.S: Likewise.
	* sysdeps/sparc/sparc64/submul_1.S: Likewise.
	* sysdeps/sparc/sparc64/elf/crtbegin.S: Likewise and remove old
	MEDANY code model %g4 usage.
	* sysdeps/sparc/sparc64/elf/crtend.S: Likewise and remove old
	MEDANY code model %g4 usage.
	* sysdeps/sparc/sparc64/elf/start.S: Rework to not use old FULLANY
	code model address formation.
	* sysdeps/sparc/sparc64/dl-machine.h: Don't include link.h, do
	include elf/ldsodefs.h
	(DT_SPARC): Remove.
	(elf_machine_matches_host): It is now EM_SPARCV9.
	(elf_machine_dynamic): Clean up to remove ugly cast.
	(elf_machine_fixup_plt): Rework for new V9 ABI, add support for
	new PLT formats.
	(elf_machine_rela): Don't do anything at all for R_SPARC_NONE.
	Prettify rest of function.
	[R_SPARC_COPY]: Check for sym being NULL.
	[R_SPARC_32]: Handle it.
	[R_SPARC_H44, R_SPARC_M44, R_SPARC_L44]: Handle them for the
	MEDMID code model.
	[R_SPARC_HH22, R_SPARC_HM10, R_SPARC_LM22]: Handle them for the
	MEDANY code model.
	[R_SPARC_NONE]: Remove this case, as it is now checked earlier.
	(elf_machine_runtime_setup): Rewrite for new V9 ABI plt formats.
	Add profiling support.
	(TRAMPOLINE_TEMPLATE): New macro.
	(ELF_MACHINE_RUNTIME_TRAMPOLINE): Define in terms of that.
	(RTLD_START): Prettify and set __libc_stack_end.
	* sysdeps/unix/sysv/linux/sparc/bits/sigaction.h (SA_SIGINFO):
	Define.
	* sysdeps/unix/sysv/linux/sparc/bits/signum.h (_NSIG): Set to 64.
	(SIGRTMIN, SIGRTMAX, __SIGRTMIN, __SIGRTMAX): Define.
	* sysdeps/unix/sysv/linux/sparc/sparc32/brk.c (__brk): Remove
	unused variable scratch.
	* sysdeps/unix/sysv/linux/sparc/sparc32/sigaction.c
	(__syscall_rt_sigaction, __rt_sigreturn_stub, __sigreturn_stub):
	Declare.
	(__sigaction): Rewrite rt_sigaction case to pass correct sigreturn
	stub to rt_sigaction syscalls.  Rewrite non-rt case to use correct
	old format kernel sigaction structures.
	* sysdeps/unix/sysv/linux/sparc/sparc64/ucontext.h: Move...
	* sysdeps/unix/sysv/linux/sparc/sparc64/sys/ucontext.h: to here.
	* sysdeps/unix/sysv/linux/sparc/sparc64/Dist: Remove ucontext.h
	* sysdeps/unix/sysv/linux/sparc/sparc64/bits/setjmp.h: Fix
	ucontext include.
	(_JMPBUF_UNWINDS): Define.
	* sysdeps/unix/sysv/linux/sparc/sparc64/bits/statfs.h: Declare
	statfs64 structure, which is exactly the same as the normal one.
	* sysdeps/unix/sysv/linux/sparc/sparc64/brk.S: Allocate 192 bytes
	of stack.  Use correct syscall trap number.  Add branch prediction
	settings to branch instructions.  Remove old MEDANY code model %g4
	referneces for non-PIC.
	* sysdeps/unix/sysv/linux/sparc/sparc64/clone.S: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/init-first.h: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/pipe.S: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/syscall.S: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/longjmp.S: Add
	__libc_longjmp and __libc_siglongjmp strong aliases.
	* sysdeps/unix/sysv/linux/sparc/sparc64/readdir.c (__readdir64):
	Also define to __no__readdir64_decl around readdir.c inclusion.
	(__readdir64): Add strong alias.
	* sysdeps/unix/sysv/linux/sparc/sparc64/socket.S: New file.
	* sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list (getrlimit):
	Set strong and weak names properly.

1998-09-16 11:25  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* manual/Makefile (AWK): Default to gawk if standalone.

1998-09-15  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* Makefile (distribute): Undo last change.
	* Make-dist (+tsrc) [not subdir]: Also include indirection headers
	for sysdep headers.
	(+subdir-headers): Removed, unused.

1998-09-15  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* stdio-common/Makefile ($(inst_includedir)/bits/stdio_lim.h): Use
	$(do-install).

1998-09-15  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* Makerules ($(+sysdir_pfx)sysd-Makefile): Don't check for
	absolute name in $(config-sysdirs), can never happen.
	($(+sysdir_pfx)sysd-rules): Likewise.
	* Makeconfig (full-config-sysdirs): Likewise.
	(all-Subdirs-files): Prepend $(..).

	* configure.in: Don't check for absolute name in $add_ons_pfx, can
	not happen.  Let --enable-add-ons=yes work if no add-ons actually
	exist.

1998-09-15  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* Rules ($(common-objpfx)bits/stdio_%.h): Remove extra
	continuations in command.

1998-09-15  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* libio/oldstdfiles.c (_IO_stdin_used): Update declaration.
1998-09-16 17:54:34 +00:00
Ulrich Drepper
71cf0361ec Update.
1998-07-04 17:11 -0400  Zack Weinberg  <zack@rabi.phys.columbia.edu>

	* csu/Makefile: Build crt files in lib pass.
	* db2/Makefile (distribute): Add mutex/sco.cc.
	* mach/Machrules: Don't generate .udeps files if no_deps is set.
	* sysdeps/unix/Makefile: Don't generate sysd-syscalls or
	s-proto.d if avoid-generated is set.

	* sysdeps/alpha/Dist: List only one file per line.
	* sysdeps/generic/Dist: Likewise.
	* sysdeps/m68k/fpu/switch/Dist: Likewise.
	* sysdeps/sparc/sparc32/Dist: Likewise.
	* sysdeps/unix/Dist: Likewise.
	* sysdeps/unix/sysv/irix4/Dist: Likewise.

	* sysdeps/mach/hurd/i386/Dist: New file.
	* sysdeps/generic/Dist: Add endutxent.c, getutxent.c, getutxid.c,
	getutxline.c, pututxline.c, setutxent.c, updwtmpx.c, and utmpxname.c.
	* sysdeps/unix/sysv/linux/Dist: Add getresuid.c and getresgid.c.
	* sysdeps/unix/sysv/linux/sparc/sparc32/Dist: Remove __sigtrampoline.S.
1998-07-04 14:40:35 +00:00
Ulrich Drepper
cba1ddc169 Update.
1998-07-01 09:32  Ulrich Drepper  <drepper@cygnus.com>

	* math/libm-test.c: Adjust delta for indentities1_test because gcc
	became cleverer.

1998-06-29  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* resolv/inet_addr.c (inet_aton): Define variable base only if needed.

1998-06-30  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* scripts/test-installation.pl: Include <stdio.h> in test program
	to make it strictly conforming.

1998-06-30  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* sysdeps/unix/sysv/linux/m68k/sysdep.S: Make _errno a weak alias,
	not a strong alias.
	* sysdeps/unix/sysv/linux/i386/sysdep.S: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.S: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.S: Likewise.
	* sysdeps/unix/sysv/linux/arm/sysdep.S: Likewise.
1998-07-01 09:34:02 +00:00
Richard Henderson
549046b742 Update.
1998-06-27  David S. Miller  <davem@pierdol.cobaltmicro.com>

        * sysdeps/sparc/sparc32/dl-machine.h (elf_machine_matches_host):
        Cleanup weak_extern usage for _dl_hwcap and _dl_hwcap_mask.
        (elf_machine_fixup_plt): Likewise.
        * sysdeps/unix/sysv/linux/sparc/sparc32/getpagesize.c: When
	_dl_pagesize not set, use system call to always get correct answer.
        * sysdeps/unix/sysv/linux/sparc/sparc32/syscalls.list
        (__syscall_getpagesize): Add
1998-06-27 15:18:16 +00:00
Ulrich Drepper
bf47fa2344 Update.
1998-06-16  David S. Miller <davem@dm.cobaltmicro.com>

	* sysdeps/sparc/sparc32/dl-machine.h
	(elf_machine_fixup_plt): During rtld bootstrap, always perform
	flushes as the kernel will emulate it when the underlying cpu does
	not implement flush.

	* sysdeps/unix/sysv/linux/sparc/sys/kernel_termios.h: Move...
	* sysdeps/unix/sysv/linux/sparc/kernel_termios.h: ...to here.

	* sysdeps/unix/sysv/linux/sparc/sparc32/__sigtrampoline.S: Remove.
	* sysdeps/unix/sysv/linux/sparc/sparc32/Makefile: No longer build
	trampoline code.

	* sysdeps/unix/sysv/linux/sparc/sparc32/clone.S
	(__clone): Branch to label .Lerror not __clone_syscall_error.
	(.Lerror): Fixup EINVAL setting.
	* sysdeps/unix/sysv/linux/sparc/sparc32/getgroups.c: New file.
	* sysdeps/unix/sysv/linux/sparc/sparc32/setgroups.c: New file.
	* sysdeps/unix/sysv/linux/sparc/sparc32/syscalls.list
	(__syscall_getgroups, __syscall_setgroups): Add.

	* sysdeps/unix/sysv/linux/sparc/sparc32/sigaction.c
	(__sigaction): Member name is k_sa_handler.  Use memcpy to copy
	around sa_mask data.

	* math/math.h: Include bits/nan.h when compiling for ISO C 9x.
1998-06-16 16:30:14 +00:00
Ulrich Drepper
66715f834c Update.
1998-05-28 00:53  Zack Weinberg  <zack@rabi.phys.columbia.edu>

	* glibcbug.in: Send to bugs@gnu or libc-alpha@cygnus depending
	on whether this is a stable release or not (keeps snapshot bug
	reports out of the database).

	* include/libc-symbols.h: Use __ASSEMBLER__ test macro not ASSEMBLER.
	* sysdeps/arm/sysdep.h: Likewise.
	* sysdeps/i386/sysdep.h: Likewise.
	* sysdeps/m68k/sysdep.h: Likewise.
	* sysdeps/mach/mips/sysdep.h: Likewise.
	* sysdeps/mach/sys/reboot.h: Likewise.
	* sysdeps/mach/sysdep.h: Likewise.
	* sysdeps/unix/alpha/sysdep.h: Likewise.
	* sysdeps/unix/bsd/hp/m68k/sysdep.h: Likewise.
	* sysdeps/unix/bsd/osf/alpha/sysdep.h: Likewise.
	* sysdeps/unix/bsd/sequent/i386/sysdep.h: Likewise.
	* sysdeps/unix/bsd/sony/newsos/m68k/sysdep.h: Likewise.
	* sysdeps/unix/bsd/sun/m68k/sysdep.h: Likewise.
	* sysdeps/unix/bsd/vax/sysdep.h: Likewise.
	* sysdeps/unix/i386/sysdep.h: Likewise.
	* sysdeps/unix/mips/sysdep.h: Likewise.
	* sysdeps/unix/sparc/sysdep.h: Likewise.
	* sysdeps/unix/sysv/linux/alpha/sysdep.h: Likewise.
	* sysdeps/unix/sysv/linux/arm/sysdep.h: Likewise.
	* sysdeps/unix/sysv/linux/i386/sysdep.h: Likewise.
	* sysdeps/unix/sysv/linux/m68k/sysdep.h: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/sysdep.h: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h: Likewise.
	* sysdeps/unix/sysv/sysv4/solaris2/sparc/sysdep.h: Likewise.

1998-05-27  Mark Kettenis  <kettenis@phys.uva.nl>

	* mach/Machrules: Use $(move-if-change).

1998-05-27  Mark Kettenis  <kettenis@phys.uva.nl>

	* Makeconfig [elf=yes] (+interp): New variable, set to interp.os.
	* Makerules (lib%.so): Depend on $(+interp).
	(libc.so): Add interp.os to list of dependencies.
	(interp-obj): Remove variable.
	* mach/Machrules (+interp): Define to empty since libhurduser and
	libmachuser don't need to have the interpreter set.

1998-05-28  Andreas Jaeger  <aj@arthur.rhein-neckar.de>

	* resolv/res_send.c: Security fixes from bind 4.9.7-REL.

	* resolv/gethnamaddr.c: Likewise.

	* resolv/res_comp.c: Likewise.

1998-05-28  Mark Kettenis  <kettenis@phys.uva.nl>

	* sysdeps/mach/hurd/wait4.c (__wait4): Use ANSI-style definition
	so that transparent union works.
1998-05-29 10:21:16 +00:00
Richard Henderson
4194bc660f * elf/dl-runtime.c (fixup, profile_fixup): The final arg to _dl_lookup_*symbol is DL_LOOKUP_NOPLT not ELF_MACHINE_JMP_SLOT. * elf/elf.h (EM_SPARC64): Remove. (EM_SPARC32PLUS, EM_SPARCV9): Add. (HWCAP_SPARC_V9): Add. * elf/ldsodefs.h (_dl_hwcap): Declare. * sysdeps/sparc/sparc32/dl-machine.h (_dl_hwcap, _dl_hwcap_mask): Weaken so dlopen from static progies works. (WEAKADDR): New macro. (elf_machine_matches_host): Accept EM_SPARC32PLUS on a v9 cpu. (LD_SO_PRELOAD): New macro. (elf_machine_fixup_plt): Cope with weak _dl_hwcap. (elf_machine_rela): Weaken _dl_rtld_map. * sysdeps/unix/sysv/linux/sparc/sparc32/clone.S: Rename __libc_clone to __clone, and remove the later's alias. * sysdeps/unix/sysv/linux/sparc/sparc64/clone.S: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc32/sigaction.c: Copy to/from the kernel's structure.
1998-04-06  Jakub Jelinek <jj@sunsite.ms.mff.cuni.cz>

	* elf/dl-runtime.c (fixup, profile_fixup): The final arg to
	_dl_lookup_*symbol is DL_LOOKUP_NOPLT not ELF_MACHINE_JMP_SLOT.

	* elf/elf.h (EM_SPARC64): Remove.
	(EM_SPARC32PLUS, EM_SPARCV9): Add.
	(HWCAP_SPARC_V9): Add.

	* elf/ldsodefs.h (_dl_hwcap): Declare.
	* sysdeps/sparc/sparc32/dl-machine.h (_dl_hwcap, _dl_hwcap_mask):
	Weaken so dlopen from static progies works.
	(WEAKADDR): New macro.
	(elf_machine_matches_host): Accept EM_SPARC32PLUS on a v9 cpu.
	(LD_SO_PRELOAD): New macro.
	(elf_machine_fixup_plt): Cope with weak _dl_hwcap.
	(elf_machine_rela): Weaken _dl_rtld_map.

	* sysdeps/unix/sysv/linux/sparc/sparc32/clone.S: Rename __libc_clone
	to __clone, and remove the later's alias.
	* sysdeps/unix/sysv/linux/sparc/sparc64/clone.S: Likewise.

	* sysdeps/unix/sysv/linux/sparc/sparc32/sigaction.c: Copy to/from
	the kernel's structure.

	* sysdeps/generic/libc-start.c: Allow init and fini to be null.
1998-04-06 19:08:46 +00:00
Richard Henderson
deb2f929b5 * sysdeps/unix/sysv/linux/sparc/sparc32/socket.S: Revert 03-01 change, as the buffer is not properly aligned. Reported by Juan Cespedes <cespedes@debian.org>.
1998-04-06  Richard Henderson  <rth@cygnus.com>

	* sysdeps/unix/sysv/linux/sparc/sparc32/socket.S: Revert 03-01 change,
	as the buffer is not properly aligned.
	Reported by Juan Cespedes <cespedes@debian.org>.
1998-04-06 17:18:52 +00:00
Richard Henderson
489b7d4bfc * sysdeps/unix/sysv/linux/sparc/bits/ioctls.h: Don't include kernel_termios.h. * sysdeps/unix/sysv/linux/sparc/bits/termios.h (CBAUD, CIBAUD): Fix. Clean up random whitespace. * sysdeps/unix/sysv/linux/sparc/sparc32/brk.c: Tidy the asm. * sysdeps/unix/sysv/linux/sparc/sparc32/socket.S: Use std on the args. * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.S: Fix use of .bss. * sysdeps/unix/sysv/linux/sparc/sparc32/sys/ucontext.h: New file.
1998-03-01 09:11  Richard Henderson  <rth@cygnus.com>

	* sysdeps/unix/sysv/linux/sparc/bits/ioctls.h: Don't include
	kernel_termios.h.
	* sysdeps/unix/sysv/linux/sparc/bits/termios.h (CBAUD, CIBAUD): Fix.
	Clean up random whitespace.
	* sysdeps/unix/sysv/linux/sparc/sparc32/brk.c: Tidy the asm.
	* sysdeps/unix/sysv/linux/sparc/sparc32/socket.S: Use std on the args.
	* sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.S: Fix use of .bss.
	* sysdeps/unix/sysv/linux/sparc/sparc32/sys/ucontext.h: New file.

1998-03-01 08:31  Richard Henderson  <rth@cygnus.com>
1998-03-01 01:19:00 +00:00
Ulrich Drepper
dc30f46157 Update.
1998-02-13 17:39  Ulrich Drepper  <drepper@cygnus.com>

	* elf/Makefile: Don't use --version-script parameter to link ld.so
	unconditionally.

1998-01-02 04:19  Geoff Keating  <geoffk@ozemail.com.au>

	* math/Makefile: Add t_exp.
	* math/libm-test.c: Tighten accuracy bounds for exp(), correct
	constants.
	* math/test-reduce.c: Remove temporarily, it seems to be broken.
	* sysdeps/libm-ieee754/e_exp.c: Use accurate table method.
	* sysdeps/libm-ieee754/e_expf.c: Use table & double precision for
	better accuracy.
	* sysdeps/libm-ieee754/s_exp2.c: Use better polynomial; correct
	algorithm for very large/very small arguments.
	* sysdeps/libm-ieee754/s_exp2f.c: Use slightly better polynomial;
	correct algorithm for very large/very small arguments; adjust for
	new table.
	* sysdeps/libm-ieee754/t_exp.c: New file.
	* sysdeps/libm-ieee754/t_exp2f.h: Use table with smaller deltas.

	* sysdeps/unix/sysv/linux/powerpc/dl-sysdep.c: Put 'strange test'
	back, with comment that explains what breaks when you remove it :-(.

	* localedata/xfrm-test.c: Avoid integer overflow.

	* stdlib/strfmon.c: char is unsigned, sometimes.

	*sysdeps/powerpc
	* sysdeps/powerpc/Makefile: Remove quad float support.
	* sysdeps/powerpc/q_*.c: Remove, they will become an add-on.
	* sysdeps/powerpc/quad_float.h: Likewise.
	* sysdeps/powerpc/test-arith.c: Likewise.
	* sysdeps/powerpc/test-arithf.c: Likewise.

	* sysdeps/generic/s_exp2.c: Remove, we have this implemented now.
	* sysdeps/generic/s_exp2f.c: Likewise.

	* sysdeps/powerpc/bits/mathinline.h: Use underscores around __asm__,
	don't try anything if _SOFT_FLOAT.

1997-12-31  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* locale/C-ctype.c (_nl_C_LC_CTYPE_class32): Undo last change.
	* locale/programs/ld-ctype.c (CHAR_CLASS32_TRANS): Likewise.
	* wctype/wctype.c: Likewise.
	* wctype/wctype.h (_ISwxxx): Renamed from _ISxxx, all uses
	changed.  They are incompatible with the _ISxxx values from
	<ctype.h> on little endian machines.
	(_ISwbit) [__BYTE_ORDER == __LITTLE_ENDIAN]: Correctly transform
	bit number.  This fixes the real bug and restores the integrity of
	the ctype locale file.
	* wctype/wcfuncs.c: Change all _ISxxx to _ISwxxx.
	* wctype/wcfuncs_l.c: Likewise.
	* wctype/wcextra.c: Likewise.
	* wctype/wctype_l.c [__BYTE_ORDER == __LITTLE_ENDIAN]: Use correct
	byte swapping.

1998-02-09  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.S (errno): Put it
	into .bss segment instead of .common, so that aliases on it work.

	* sysdeps/unix/sysv/linux/i386/sysdep.S (errno): Add .type and
	.size directives, put into .bss segment instead of initializing it
	to 4.

1998-02-12 08:00  H.J. Lu  <hjl@gnu.org>

	* libc.map (gnu_get_libc_release, gnu_get_libc_version): Added.

	* version.c (__gnu_get_libc_release, __gnu_get_libc_version): New
	functions.
	Make names without __ weak aliases.
	(__libc_release, __libc_version): Make them static.

	* include/gnu/libc-version.h: New file.
	* Makefile (headers): Add gnu/libc-version.h.

1998-02-13  Ulrich Drepper  <drepper@cygnus.com>

	* stdlib/stdlib.h (struct drand48_data): Leave X to user macros
	and use x for member name.
	Reported by Daniel Lyddy <daniell@cs.berkeley.edu>.

	* stdlib/drand48.c: Change according to member name change.
	* stdlib/drand48_r.c: Likewise.
	* stdlib/lcong48_r.c: Likewise.
	* stdlib/lrand48.c: Likewise.
	* stdlib/lrand48_r.c: Likewise.
	* stdlib/mrand48.c: Likewise.
	* stdlib/mrand48_r.c: Likewise.
	* stdlib/seed48.c: Likewise.
	* stdlib/seed48_r.c: Likewise.
	* stdlib/srand48_r.c: Likewise.

1998-02-11  Andreas Jaeger  <aj@arthur.rhein-neckar.de>

	* nss/test-netdb.c: Add some more test cases.

1998-02-13 11:39  Ulrich Drepper  <drepper@cygnus.com>

	* libio/iovsscanf.c: Undo last change modifying errno.

1998-02-12  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* stdio-common/vfscanf.c: Never try to read another character
	after EOF.  Don't decrement read_in after EOF, it wasn't
	incremented in the first place.
	(NEXT_WIDE_CHAR): Set First, not first.

1998-02-06 07:48  H.J. Lu  <hjl@gnu.org>

	* db/Makefile ($(inst_libdir)/libndbm.a,
	$(inst_libdir)/libndbm.so): New targets.
	* db2/Makefile: Likewise.

1998-02-12 08:20  H.J. Lu  <hjl@gnu.org>

	* sysdeps/gnu/errlist.awk (sys_errlist, sys_nerr): Create weak
	aliases if HAVE_ELF or PIC or DO_VERSIONING is not defined.

1998-02-12  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* sysdeps/generic/_G_config.h: Define _G_wchar_t, for C++
	<streambuf.h>.
	* sysdeps/unix/sysv/linux/_G_config.h: Likewise.

1998-02-11  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* sysdeps/unix/make-syscalls.sh: Fix sed pattern when dealing with
	versioned symbols.

1998-02-13 08:14  H.J. Lu  <hjl@gnu.org>

	* libc.map (_dl_global_scope, _dl_lookup_symbol_skip,
	_dl_lookup_versioned_symbol, _dl_lookup_versioned_symbol_skip):
	Added for libdl.so.







	* elf/rtld.map: New file.  Needed to define the GLIBC_2.*

	* manual/socket.texi (Host Address Functions): Clarify description
	* sysdeps/unix/sysv/linux/alpha/bits/time.h (struct timeval):
1998-02-13 17:54:15 +00:00
Ulrich Drepper
2d4a30ce49 Update.
1998-02-11 14:39  Ulrich Drepper  <drepper@happy.cygnus.com>

	* sysdeps/unix/sysv/linux/i386/sigaction.c (__libc_missing_rt_sigs):
	Rename from __libc_have_rt_sigs and leave as COMMON data.
1998-02-11 14:40:03 +00:00
Ulrich Drepper
566efee219 Update.
1998-02-02 01:12  Ulrich Drepper  <drepper@cygnus.com>

	* libc.map: Add _h_errno.
	* inet/herrno.c: Make _h_errno weak alias.

	* login/Makefile (distribute): Add pty-internal.h.

	* nscd/Makefile (distribute): Add all the files missing.

	* signal/allocrtsig.c: Fix problem with recognizing whether RT sigs
	are available.

	* stdio-common/tstscanf.c: Rewrite a bit to continue after errors
	and report status at the end.

	* sysdeps/unix/sysv/linux/syscalls.list: Add lchown.

	* sysdeps/unix/sysv/linux/i386/sysdep.S: Make errno an initialized
	variable.
	* sysdeps/unix/sysv/linux/powerpc/sysdep.c: Add alias _errno for errno.
	* sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.S: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.S: Likewise.

1998-01-03 20:47  Mark Kettenis  <kettenis@phys.uva.nl>

	* configure.in: Fix --enable-add-ons code.

1998-02-01  Andreas Jaeger  <aj@arthur.rhein-neckar.de>

	* elf/rtld.c (dl_main): Allow ":" as separator for LD_PRELOAD. Patch
	by Rudolf Leitgeb <leitgeb@leland.stanford.edu>.
	[PR libc/441]

	* sysdeps/generic/dl-cache.c (_dl_load_cache_lookup): Use first
	occurence in cache.  Reported by Rudolf Leitgeb
	<leitgeb@leland.stanford.edu>.
	[PR libc/440]

1998-02-01 21:18  Ulrich Drepper  <drepper@cygnus.com>

	* libio/iovsscanf.c: Set errno to 0 before calling _IO_vfscanf so
	that it never is EINTR (which is tested for in _IO_vfscanf).

	* Makefile.in: Call sub-make with CVSOPTS.

	* elf/Makefile (distribute): Add dl-procinfo.h.

	* sysdeps/unix/sysv/linux/alpha/Dist: Add rt_sigaction.S.

1998-02-01 15:54  Ulrich Drepper  <drepper@cygnus.com>

	* version.h (VERSION): Bump to 2.0.92.

1998-01-31  Phil Blundell  <philb@gnu.org>

	* sysdeps/unix/sysv/linux/siglist.c (_sys_siglist): Additional weak
	alias for __new_sys_siglist.

	thread and not pthread_detach.
1998-02-01 17:06:45 +00:00
Ulrich Drepper
4775243aa8 Update.
1998-01-28  Andreas Jaeger  <aj@arthur.rhein-neckar.de>

	* manual/memory.texi (Heap Consistency Checking): mcheck is
	declared in <mcheck.h>.
	Suggested by Jochen Voss <voss@mathematik.uni-kl.de> [PR libc/438]

1998-01-28  Andreas Jaeger  <aj@arthur.rhein-neckar.de>

	* sysdeps/generic/memmem.c (memmem): An empty needle is at the
	beginning of haystack.

1998-01-29  Andreas Jaeger  <aj@arthur.rhein-neckar.de>

	* nss/nss_files/files-service.c: Correct last patch.

1998-01-30 21:29  Ulrich Drepper  <drepper@cygnus.com>

	* sysdeps/unix/sysv/linux/sparc/sparc32/sigaction.c: Define
	__libc_have_rt_sigs.
	* sysdeps/sparc/sparc32/__longjmp.S: Define _SETJMP_H before
	including <bits/setjmp.h>.
	* sysdeps/sparc/sparc32/setjmp.S: Likewise.
	Patch from the Debian glibc/SPARC package.

1997-12-12 07:57  H.J. Lu  <hjl@gnu.org>

	* sysdeps/alpha/bzero.S: Fix a typo.
	* sysdeps/alpha/htonl.S: Ditto.
	* sysdeps/alpha/htons.S: Ditto.
1998-01-30 12:53:20 +00:00
Ulrich Drepper
740152054e Update.
1998-01-22 00:55  Ulrich Drepper  <drepper@happy.cygnus.com>

	* libc.map: Add __libc_uid, __libc_pid, __syscall_rt_sigqueueinfo,
	__pread64, __pwrite64, and __getpid.

	* libc/rt/aio_misc.c: Use pread and pwrite instead of __ protected
	versions.

1998-01-06  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* sysdeps/unix/sysv/linux/alpha/syscalls.list: Define the
	cancelable socket functions as __libc_xxx with __xxx as weak
	alias.
	* sysdeps/unix/sysv/linux/mips/syscalls.list: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list: Likewise.

	* sysdeps/unix/sysv/linux/m68k/socket.S: Allow __socket to be
	redefined.
	* sysdeps/unix/sysv/linux/i386/socket.S: Likewise.
	* sysdeps/unix/sysv/linux/arm/socket.S: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/socket.S: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/socket.S: Likewise.

	* sysdeps/unix/sysv/linux/accept.S: Make __libc_xxx the main name
	and __xxx a weak alias.
	* sysdeps/unix/sysv/linux/connect.S: Likewise.
	* sysdeps/unix/sysv/linux/recv.S: Likewise.
	* sysdeps/unix/sysv/linux/recvfrom.S: Likewise.
	* sysdeps/unix/sysv/linux/recvmsg.S: Likewise.
	* sysdeps/unix/sysv/linux/send.S: Likewise.
	* sysdeps/unix/sysv/linux/sendmsg.S: Likewise.
	* sysdeps/unix/sysv/linux/sendto.S: Likewise.

1998-01-21  Andreas Jaeger  <aj@arthur.rhein-neckar.de>

	* locale/langinfo.h: Add defines.

	* dirent/dirent.h: Add defines for DT_*, check also for
	_DIRENT_HAVE_D_TYPE.
	Suggested by Roland McGrath.

1998-01-16  Andreas Jaeger  <aj@arthur.rhein-neckar.de>

	* sysdeps/unix/sysv/linux/netinet/ip_fw.h:
	Update from Linux 2.1.73+79.

	* README.template: Update information about possible
	configurations.

	* manual/mbyte.texi (Wide String Conversion): Fix declaration of
	wcstombs. Pointed out by Jochen Voss <voss@mathematik.uni-kl.de>.
	[PR libc/417].

	* manual/time.texi (Priority): Correct description of
	PRIO_MAX. Pointed out by Jochen Voss <voss@mathematik.uni-kl.de>.
	[PR libc/416].

11998-01-21 21:34  Ulrich Drepper  <drepper@cygnus.com>

	* sysdeps/alpha/fpu/bits/mathdef.h: Add definition of FP_ILOGB0 and
	FP_ILOGNAN.   Patch by a sun <asun@zoology.washington.edu>.

1998-01-21 17:53  Ulrich Drepper  <drepper@cygnus.com>

	* sysdeps/generic/_strerror.c: Handle BUFLEN == 0.  Reported by
	Andreas Jaeger.

1998-01-20 18:13  Ulrich Drepper  <drepper@cygnus.com>

	* locale/programs/ld-collate.c: Little optimizations.

	* stdio-common/xbug.c: Unset LD_LIBRRARY_PATH variable.

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

	* string/strsignal.c: Add support for real-time signals.

	* sysdeps/generic/_strerror.c: Fix Handling of unknown error in
	presense of small buffer.

	* sysdeps/i386/bits/string.h: Define _HAVE_STRING_ARCH_* macros.

	* sysdeps/i386/i486/bits/string.h: Correct strrchr implementation
	for i686.

	* sysdeps/unix/sysv/linux/siglist.c: Change length of arrays to
	_NSIG + 1.
	
1998-01-02 15:10  Matthias Urlichs   <urlichs@noris.de>

	* Rules: Add explicit rule for dummy.o; at least one library needs
	  it and it isn't autogenerated by the default rules.
	
1997-12-31  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* math/libm-test.c: Tweak epsilons.

1997-12-31  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* math/test-fenv.c (feenv_nomask_test): Avoid dumping core in the
	child.
	(feenv_mask_test): Likewise.

1998-01-01  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* Makeconfig: Don't export CPPFLAGS.

1998-01-01  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* sunrpc/rpc_main.c (parseargs): Use perror to print error
	message.

1998-01-15  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
 
	* nss/nss_db/db-alias.c (_nss_db_getaliasent_r): Don't include
	terminating null in key size.

1998-01-13  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* nss/nss_files/files-service.c: Fix allocation size to include
	length of PROTO.

	* nss/nss_db/db-XXX.c (lookup): Always set errno and h_errno if
	applicable.  Fix return value and error checking.
	(CONCAT(_nss_db_get,ENTNAME_r)): Loop around to skip over
	unparsable lines.
	(DB_LOOKUP): Allocate space for terminating null byte.

	* nss/db-Makefile ($(VAR_DB)/passwd.db): Don't handle duplicate
	uids specially.

	* db2/makedb.c (process_input): Continue processing if a duplicate
	key is encountered.

1998-01-19 15:20  Ulrich Drepper  <drepper@cygnus.com>

	* time/tzfile.h: Updated from tzcode1998b.
	* time/zdump.c: Likewise.
	* time/zic.c: Likewise.
	* time/africa: Update from tzdata1998b.
	* time/antarctica: Likewise.
	* time/asia: Likewise.
	* time/australasia: Likewise.
	* time/etcetera: Likewise.
	* time/europe: Likewise.
	* time/leapseconds: Likewise.
	* time/northamerica: Likewise.
	* time/southamerica: Likewise.
	
1998-01-12  Andreas Jaeger  <aj@arthur.rhein-neckar.de>

	* nss/nss_files/files-alias.c (get_next_alias): Do mail alias
	lookups ignoring case.
	* nss/nss_files/files-network.c: Do network lookups ignoring
	case.
	* nss/nss_files/files-hosts.c: Do hostname lookups ignoring
	case.
	* nss/nss_files/files-parse.c (LOOKUP_NAME_CASE): New macro for
	case insensitive comparing.
	Patches by Cristian Gafton <gafton@redhat.com>.

1998-01-09  Andreas Jaeger  <aj@arthur.rhein-neckar.de>

	* sysdeps/unix/sysv/linux/net/if.h: Add IFF_*defines.  Suggested
	by Roland McGrath. [PR libc/395]

1998-01-08  Andreas Jaeger  <aj@arthur.rhein-neckar.de>

 	* manual/arith.texi (Parsing of Integers): Correct description of
 	strtoul. Pointed out by Scott Snyder <snyder@fnald0.fnal.gov>.
 	[PR libc/396]

1997-12-30 14:14  Matthias Urlichs  <urlichs@noris.de>

        * misc/lsearch.c (lsearch): Return a pointer to the new element
        if one was "allocated".

1997-12-26  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

        * string/strsignal.c: NSIG is not a valid index into
        _sys_siglist.  Don't zap the last character of the "Unknown
        signal" message.

1998-01-19 15:08  Ulrich Drepper  <drepper@cygnus.com>
	
	* locale/programs/charmap.c (parse_charmap): Correct parsing of
	ellipsis expressions.

	* locale/programs/charset.c (insert_char): Correctly insert value
	of eliipsis expression.
1998-01-21 17:04:36 +00:00
Ulrich Drepper
f4017d2057 Update.
1997-11-26 04:28  Ulrich Drepper  <drepper@cygnus.com>

	* eld/dl-profile.c (_dl_start_profile): Avoid FP calculation when
	computing s_scale.  Patch by a sun <asun@zoology.washington.edu>.

	* iconv/gconv_close.c: Correct freeing of descriptor data.
	* iconv/gconv_simple.c: Return correct error values for illegal or
	incomplete characters.

	* Makefile (iconvdata/%): Special goal to simplify iconvdata
	development.
	* iconvdata/Makefile: New file.
	* iconvdata/configure: Likewise.
	* iconvdata/extra-module.mk: Likewise.
	* iconvdata/gconv-modules: Likewise.
	* iconvdata/iso6937.c: Likewise.
	* iconvdata/iso8859-1.c: Likewise.
	* iconvdata/iso8859-10.c: Likewise.
	* iconvdata/iso8859-10.h: Likewise.
	* iconvdata/iso8859-2.c: Likewise.
	* iconvdata/iso8859-2.h: Likewise.
	* iconvdata/iso8859-3.c: Likewise.
	* iconvdata/iso8859-3.h: Likewise.
	* iconvdata/iso8859-4.c: Likewise.
	* iconvdata/iso8859-4.h: Likewise.
	* iconvdata/iso8859-5.c: Likewise.
	* iconvdata/iso8859-5.h: Likewise.
	* iconvdata/iso8859-6.c: Likewise.
	* iconvdata/iso8859-6.h: Likewise.
	* iconvdata/iso8859-7.c: Likewise.
	* iconvdata/iso8859-7.h: Likewise.
	* iconvdata/iso8859-8.c: Likewise.
	* iconvdata/iso8859-8.h: Likewise.
	* iconvdata/iso8859-9.c: Likewise.
	* iconvdata/iso8859-9.h: Likewise.
	* iconvdata/iso8859-generic.c: Likewise.
	* iconvdata/t61.c: Likewise.

	* string/Makefile (routines): Add strcasestr.
	* string/string.h: Add prototype for strcasestr.
	* sysdeps/generic/strcasestr.c: New file.
	* wcsmbs/mbrtowc.c: Simplify special case a bit.
	* wcsmbs/wcrtomb.c: Likewise.
	* wcsmbs/mbsnrtowcs.c: Correctly handle incomplete characters.
	* wcsmbs/wcsnrtombs.c: Likewise.
	* wcsmbs/mbsrtowcs.c: Make sure SRC argument is correct when
	partial character is read.
	* wcsmbs/wcsrtombs.c: Likewise.
	* wcsmbs/wmemrtombs.c: Likewise.
	* wcsmbs/wmemrtowcs.c: Likewise.

	* io/ftw.h: Include <sys/stat.h> instead of <bits/stat.h>.
	* login/pty.h: Include <sys/ioctl.h> instead og <bits/ioctl-types.h>.
	* sysdeps/i386/__longjmp.S: Define _SETJMP_H.
	* sysdeps/i386/elf/setjmp.S: Likewise.
	* sysdeps/unix/sysv/linux/kernel_termios.h: Do include
	<bits/termios.h>.

	* sysdeps/posix/mk-stdiolim.c: Output file with comment.
	* sysdeps/unix/sysv/linux/stdio_lim.h.in: Add comment.

	* sysdeps/unix/sysv/linux/sys/mman.h: Pretty print.
	* sysvipc/sys/ipc.h: Likewise.
	* sysvipc/sys/msg.h: Likewise.
	* sysvipc/sys/sem.h: Likewise.
	* sysvipc/sys/shm.h: Likewise.

	* sysdeps/alpha/bits/endian.h: Issue error message if the header is
	used directly.
	* sysdeps/alpha/bits/setjmp.h: Likewise.
	* sysdeps/alpha/fpu/bits/fenv.h: Likewise.
	* sysdeps/arm/bits/endian.h: Likewise.
	* sysdeps/arm/bits/setjmp.h: Likewise.
	* sysdeps/generic/bits/byteswap.h: Likewise.
	* sysdeps/generic/bits/confname.h: Likewise.
	* sysdeps/generic/bits/dirent.h: Likewise.
	* sysdeps/generic/bits/dlfcn.h: Likewise.
	* sysdeps/generic/bits/endian.h: Likewise.
	* sysdeps/generic/bits/fenv.h: Likewise.
	* sysdeps/generic/bits/huge_val.h: Likewise.
	* sysdeps/generic/bits/in.h: Likewise.
	* sysdeps/generic/bits/ioctl-types.h: Likewise.
	* sysdeps/generic/bits/ioctls.h: Likewise.
	* sysdeps/generic/bits/ipc.h: Likewise.
	* sysdeps/generic/bits/msq.h: Likewise.
	* sysdeps/generic/bits/poll.h: Likewise.
	* sysdeps/generic/bits/resource.h: Likewise.
	* sysdeps/generic/bits/sched.h: Likewise.
	* sysdeps/generic/bits/sem.h: Likewise.
	* sysdeps/generic/bits/setjmp.h: Likewise.
	* sysdeps/generic/bits/shm.h: Likewise.
	* sysdeps/generic/bits/sigaction.h: Likewise.
	* sysdeps/generic/bits/sigcontext.h: Likewise.
	* sysdeps/generic/bits/socket.h: Likewise.
	* sysdeps/generic/bits/stat.h: Likewise.
	* sysdeps/generic/bits/statfs.h: Likewise.
	* sysdeps/generic/bits/stdio_lim.h: Likewise.
	* sysdeps/generic/bits/termios.h: Likewise.
	* sysdeps/generic/bits/time.h: Likewise.
	* sysdeps/generic/bits/uio.h: Likewise.
	* sysdeps/generic/bits/utmp.h: Likewise.
	* sysdeps/generic/bits/utmpx.h: Likewise.
	* sysdeps/generic/bits/utsname.h: Likewise.
	* sysdeps/generic/bits/waitflags.h: Likewise.
	* sysdeps/generic/bits/waitstatus.h: Likewise.
	* sysdeps/gnu/bits/utmp.h: Likewise.
	* sysdeps/gnu/bits/utmpx.h: Likewise.
	* sysdeps/i386/bits/byteswap.h: Likewise.
	* sysdeps/i386/bits/endian.h: Likewise.
	* sysdeps/i386/bits/huge_val.h: Likewise.
	* sysdeps/i386/bits/setjmp.h: Likewise.
	* sysdeps/i386/fpu/bits/fenv.h: Likewise.
	* sysdeps/ieee754/bits/huge_val.h: Likewise.
	* sysdeps/m68k/bits/byteswap.h: Likewise.
	* sysdeps/m68k/bits/endian.h: Likewise.
	* sysdeps/m68k/bits/setjmp.h: Likewise.
	* sysdeps/m68k/fpu/bits/fenv.h: Likewise.
	* sysdeps/mach/hurd/alpha/bits/sigcontext.h: Likewise.
	* sysdeps/mach/hurd/bits/ioctls.h: Likewise.
	* sysdeps/mach/hurd/bits/stat.h: Likewise.
	* sysdeps/mach/hurd/hppa/bits/sigcontext.h: Likewise.
	* sysdeps/mach/hurd/i386/bits/sigcontext.h: Likewise.
	* sysdeps/mach/hurd/mips/bits/sigcontext.h: Likewise.
	* sysdeps/mips/bits/dlfcn.h: Likewise.
	* sysdeps/mips/bits/endian.h: Likewise.
	* sysdeps/mips/bits/setjmp.h: Likewise.
	* sysdeps/mips/dec/bits/endian.h: Likewise.
	* sysdeps/mips/mips64/bits/setjmp.h: Likewise.
	* sysdeps/mips/mipsel/bits/endian.h: Likewise.
	* sysdeps/mips/p40/bits/endian.h: Likewise.
	* sysdeps/powerpc/bits/endian.h: Likewise.
	* sysdeps/powerpc/bits/fenv.h: Likewise.
	* sysdeps/powerpc/bits/setjmp.h: Likewise.
	* sysdeps/sparc/sparc32/bits/endian.h: Likewise.
	* sysdeps/sparc/sparc32/bits/setjmp.h: Likewise.
	* sysdeps/sparc/sparc32/fpu/bits/fenv.h: Likewise.
	* sysdeps/sparc/sparc64/bits/endian.h: Likewise.
	* sysdeps/sparc/sparc64/fpu/bits/fenv.h: Likewise.
	* sysdeps/unix/bsd/bits/dirent.h: Likewise.
	* sysdeps/unix/bsd/bits/stat.h: Likewise.
	* sysdeps/unix/bsd/bits/waitflags.h: Likewise.
	* sysdeps/unix/bsd/bsd4.4/bits/dirent.h: Likewise.
	* sysdeps/unix/bsd/osf/alpha/bits/stat.h: Likewise.
	* sysdeps/unix/bsd/osf/bits/sigaction.h: Likewise.
	* sysdeps/unix/bsd/sun/m68k/bits/sigcontext.h: Likewise.
	* sysdeps/unix/bsd/sun/sparc/bits/sigcontext.h: Likewise.
	* sysdeps/unix/bsd/sun/sunos4/bits/resource.h: Likewise.
	* sysdeps/unix/bsd/sun/sunos4/bits/termios.h: Likewise.
	* sysdeps/unix/bsd/sun/sunos4/bits/utsname.h: Likewise.
	* sysdeps/unix/bsd/ultrix4/bits/utsname.h: Likewise.
	* sysdeps/unix/bsd/ultrix4/mips/bits/sigcontext.h: Likewise.
	* sysdeps/unix/common/bits/dirent.h: Likewise.
	* sysdeps/unix/sysv/bits/dirent.h: Likewise.
	* sysdeps/unix/sysv/bits/stat.h: Likewise.
	* sysdeps/unix/sysv/bits/utmp.h: Likewise.
	* sysdeps/unix/sysv/bits/utsname.h: Likewise.
	* sysdeps/unix/sysv/irix4/bits/confname.h: Likewise.
	* sysdeps/unix/sysv/irix4/bits/stat.h: Likewise.
	* sysdeps/unix/sysv/linux/alpha/bits/ioctls.h: Likewise.
	* sysdeps/unix/sysv/linux/alpha/bits/ipc.h: Likewise.
	* sysdeps/unix/sysv/linux/alpha/bits/mman.h: Likewise.
	* sysdeps/unix/sysv/linux/alpha/bits/sigaction.h: Likewise.
	* sysdeps/unix/sysv/linux/alpha/bits/stat.h: Likewise.
	* sysdeps/unix/sysv/linux/alpha/bits/termios.h: Likewise.
	* sysdeps/unix/sysv/linux/alpha/bits/time.h: Likewise.
	* sysdeps/unix/sysv/linux/bits/dirent.h: Likewise.
	* sysdeps/unix/sysv/linux/bits/in.h: Likewise.
	* sysdeps/unix/sysv/linux/bits/ioctl-types.h: Likewise.
	* sysdeps/unix/sysv/linux/bits/ioctls.h: Likewise.
	* sysdeps/unix/sysv/linux/bits/ipc.h: Likewise.
	* sysdeps/unix/sysv/linux/bits/msq.h: Likewise.
	* sysdeps/unix/sysv/linux/bits/poll.h: Likewise.
	* sysdeps/unix/sysv/linux/bits/resource.h: Likewise.
	* sysdeps/unix/sysv/linux/bits/sched.h: Likewise.
	* sysdeps/unix/sysv/linux/bits/sem.h: Likewise.
	* sysdeps/unix/sysv/linux/bits/shm.h: Likewise.
	* sysdeps/unix/sysv/linux/bits/sigaction.h: Likewise.
	* sysdeps/unix/sysv/linux/bits/sigcontext.h: Likewise.
	* sysdeps/unix/sysv/linux/bits/socket.h: Likewise.
	* sysdeps/unix/sysv/linux/bits/stat.h: Likewise.
	* sysdeps/unix/sysv/linux/bits/statfs.h: Likewise.
	* sysdeps/unix/sysv/linux/bits/termios.h: Likewise.
	* sysdeps/unix/sysv/linux/bits/time.h: Likewise.
	* sysdeps/unix/sysv/linux/bits/uio.h: Likewise.
	* sysdeps/unix/sysv/linux/bits/utsname.h: Likewise.
	* sysdeps/unix/sysv/linux/bits/waitflags.h: Likewise.
	* sysdeps/unix/sysv/linux/i386/bits/mman.h: Likewise.
	* sysdeps/unix/sysv/linux/m68k/bits/mman.h: Likewise.
	* sysdeps/unix/sysv/linux/m68k/bits/poll.h: Likewise.
	* sysdeps/unix/sysv/linux/mips/bits/endian.h: Likewise.
	* sysdeps/unix/sysv/linux/mips/bits/ioctl-types.h: Likewise.
	* sysdeps/unix/sysv/linux/mips/bits/ipc.h: Likewise.
	* sysdeps/unix/sysv/linux/mips/bits/mman.h: Likewise.
	* sysdeps/unix/sysv/linux/mips/bits/poll.h: Likewise.
	* sysdeps/unix/sysv/linux/mips/bits/shm.h: Likewise.
	* sysdeps/unix/sysv/linux/mips/bits/sigaction.h: Likewise.
	* sysdeps/unix/sysv/linux/mips/bits/socket.h: Likewise.
	* sysdeps/unix/sysv/linux/mips/bits/stat.h: Likewise.
	* sysdeps/unix/sysv/linux/mips/bits/statfs.h: Likewise.
	* sysdeps/unix/sysv/linux/mips/bits/termios.h: Likewise.
	* sysdeps/unix/sysv/linux/mips/bits/time.h: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/bits/ioctl-types.h: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/bits/mman.h: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/bits/termios.h: Likewise.
	* sysdeps/unix/sysv/linux/sparc/bits/ioctls.h: Likewise.
	* sysdeps/unix/sysv/linux/sparc/bits/poll.h: Likewise.
	* sysdeps/unix/sysv/linux/sparc/bits/sigaction.h: Likewise.
	* sysdeps/unix/sysv/linux/sparc/bits/termios.h: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/bits/mman.h: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/bits/mman.h: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/bits/setjmp.h: Likewise.
	* sysdeps/unix/sysv/minix/bits/sigaction.h: Likewise.
	* sysdeps/unix/sysv/sco3.2.4/bits/confname.h: Likewise.
	* sysdeps/unix/sysv/sco3.2.4/bits/sigaction.h: Likewise.
	* sysdeps/unix/sysv/sysv4/bits/sigaction.h: Likewise.
	* sysdeps/unix/sysv/sysv4/bits/utsname.h: Likewise.
	* sysdeps/unix/sysv/sysv4/bits/waitflags.h: Likewise.
	* sysdeps/unix/sysv/sysv4/i386/bits/stat.h: Likewise.
	* sysdeps/unix/sysv/sysv4/solaris2/bits/stat.h: Likewise.
	* sysdeps/unix/sysv/sysv4/solaris2/sparc/bits/sigcontext.h: Likewise.
	* sysdeps/vax/bits/huge_val.h: Likewise.
	* sysdeps/vax/bits/setjmp.h: Likewise.
	* sysdeps/wordsize-32/bits/elfclass.h: Likewise.
	* sysdeps/wordsize-64/bits/elfclass.h: Likewise.

1997-11-25  Andreas Jaeger  <aj@arthur.rhein-neckar.de>

	* libio/stdio.h: Correct comment of sys_nerr/sys_errlist

1997-11-25  Paul Eggert  <eggert@shade.twinsun.com>

	* strftime.c (strftime):
	No longer any need to undef or declare if emacs is defined.
	(my_strftime): When checking a -1 returned by mktime, don't blow up
	if localtime_r returns NULL.

1997-11-24  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* README.template: Fix spelling.

1997-11-25  Andreas Jaeger  <aj@arthur.rhein-neckar.de>

	* configure.in: Enhance --enable-add-ons description a wee bit.

1997-11-24  Andreas Jaeger  <aj@arthur.rhein-neckar.de>

	* glibcbug.in: Add more information of build environment and flags.

1997-11-23  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* sysdeps/posix/getcwd.c: Recognize EOF from readdir and translate
	it into ENOENT.
1997-11-26 04:23:08 +00:00
Ulrich Drepper
af6f39063b Update.
1997-10-26 18:12  Ulrich Drepper  <drepper@cygnus.com>

	* libio/genops.c: Partial undo of last patch.
	* libio/stdfiles.c: Likewise.
	* libio/iofdopen.c: Use _IO_FILE_complete, not _IO_file_plus.
	* libio/iopopen.c: Likewise.
	* libio/iovdprintf.c: Likewise.
	* libio/libio.h: Remove duplicated `;'.
	* libio/stdio.c: Remove misleading comment.
	* libio/stdio.h: Declare standard streams as variables.

	* login/Makefile (distribute): Add README.utmpd.
	* login/README.utmpd: New file.
	Provided by Mark M. Kettenis <kettenis@phys.uva.nl>.

	* manual/job.texi: Document tcgetsid.
	* manual/pattern.texi: Document globfree.
	* manual/terminal.texi: Document B38400 ... B460800.

	* posix/confstr.c: Print "-D_FILE_OFFSET_SIZE=64" for _CS_LFS_CFLAGS.

	* posix/unistd.h: Add explanation of _POSIX_* constants.

	* posix/unists.h: Add prototypes for __pread, __pread64, __pwrite
	and __pwrite64.
	* sysdeps/generic/pread.c: Define as __pread and make pread weak alias.
	* sysdeps/generic/pread64.c: Likewise.
	* sysdeps/generic/pwrite.c: Likewise.
	* sysdeps/generic/pwrite64.c: Likewise.
	* sysdeps/posix/pread.c: Likewise.
	* sysdeps/posix/pwrite.c: Likewise.
	* sysdeps/posix/pread64.c: New file.
	* sysdeps/posix/pwrite64.c: Likewise.
	* sysdeps/unix/sysv/linux/Makefile [$(subdir)=posix] (sysdep_routines):
	Add s_pread64 and s_pwrite64.
	* sysdeps/unix/sysv/linux/pread.c: New file.
	* sysdeps/unix/sysv/linux/pread64.c: New file.
	* sysdeps/unix/sysv/linux/pwrite.c: New file.
	* sysdeps/unix/sysv/linux/pwrite64.c: New file.
	* sysdeps/unix/sysv/linux/s_pread64.c: New file.
	* sysdeps/unix/sysv/linux/s_pwrite64.c: New file.
	* sysdeps/unix/sysv/linux/syscalls.list: Add pread and pwrite.
	* sysdeps/unix/sysv/linux/alpha/pread64.c: New (empty) file.
	* sysdeps/unix/sysv/linux/alpha/pwrite64.c: New (empty) file.
	* sysdeps/unix/sysv/linux/sparc/sparc64/pread64.c: New (empty) file.
	* sysdeps/unix/sysv/linux/sparc/sparc64/pwrite64.c: New (empty) file.
	* sysdeps/unix/sysv/linux/alpha/syscalls.list: Add pread and pwrite
	with weak aliases for *64 functions.
	* sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list: Likewise.

	* string/bits/string2.h: Add casts to allow void * arguments.

	* sysdeps/i386/i486/bits/string.h: Define index and rindex only if
	__USE_BSD or __USE_XOPEN_EXTENDED.

	* sysdeps/unix/sysv/linux/bits/socket.h: Add SCM_RIGHTS and other
	SCM_* constants from kernel header.

	* termios/termios.h: Add prototype for tcgetsid.

1997-10-26 13:26  Thorsten Kukuk  <kukuk@vt.uni-paderborn.de>

	* sunrpc/clnt_perr.c: Add trailing '\0' to strings.

	* sunrpc/get_myaddr.c: Include rpc/clnt.h for prototypes.

	* sunrpc/pmap_clnt.c: Use get_myaddress from header file.

1997-10-26 05:26  Ulrich Drepper  <drepper@cygnus.com>

	* configure.in: Punt if any directory mentioned in the
	enable-add-on parameter does not exist.

1997-10-25 19:25  Ulrich Drepper  <drepper@cygnus.com>

	* termios/Makefile (routines): Add tcgetsid.
	* termios/tcgetsid.c: New file.
	Provided by Mark M. Kettenis <kettenis@phys.uva.nl>.

1997-10-25 18:56  Ulrich Drepper  <drepper@cygnus.com>

	* stdlib/stdlib.h: Remove mblen optimization.
	* stdlib/mblen.c: Rewrite to make sure global state is not changed.
	Reported by anderson@metrolink.com.

1997-10-19 21:51  Wolfram Gloger  <wg@wolfram.dent.med.uni-muenchen.de>

	* malloc/thread-m.h [_LIBC]:  Use new __libc_internal_tsd_{set,get}
	interface for thread-specific data.

1997-10-25 06:51  Ulrich Drepper  <drepper@cygnus.com>

	* elf/dl-addr.c: Use braces for correct logical grouping.
	Patch by Wolfram Gloger <wmglo@dent.med.uni-muenchen.de>.

1997-10-18 09:15  Geoff Keating  <geoffk@ozemail.com.au>

	* io/ftwtest-sh: Sometimes /tmp is a symlink to somewhere more
	convenient; that caused this test to break.

	* sysdeps/powerpc/dl-machine.h: Fix typo.

	* sysdeps/powerpc/bits/fenv.h: Don't use floating-point registers
	when -msoft-float is in effect, because this causes compilation to
	stop.
	* sysdeps/powerpc/bits/mathinlines.h: Likewise.

	* rpm/template: Add description, use RPM flags rather than the ones
	used to build the spec.  Build in a temporary directory, not /.

	* elf/dl-lookup.c: Don't include _itoa.h, it's not used.
	* elf/dl-minimal.c: Use _itoa_word rather than _itoa.  It seems that
	_itoa is the only routine that ld.so uses that requires something
	from libgcc.a on powerpc, so it would be best to avoid it in ld.so.
	* elf/rtld.c: Likewise.
	* sysdeps/generic/_strerror.c: Likewise.
	* stdio-common/_itoa.c: Split out digits strings.
	* stdio-common/itoa-digits.c: New file.
	* stdio-common/Makefile: Add itoa-digits.

1997-10-21  Andreas Jaeger  <aj@arthur.rhein-neckar.de>

	* manual/filesys.texi (Scanning Directory Content): Document error
	case more.

	* dirent/scandir.c (scandir): Ignore errors from select function.
	Suggested by urbanw@cs.umu.se (closes PR libc/316).

1997-10-25 06:18  Ulrich Drepper  <drepper@cygnus.com>

	* sysdeps/unix/sysv/linux/sparc/sparc32/socket.S: Corrections.
	Patch by Erik Troan <ewt@redhat.com>.

1997-10-25 04:00  Ulrich Drepper  <drepper@cygnus.com>

	* sysdeps/generic/dl-cache.c (_dl_load_cache_lookup): Favour exact
	matching of version function if both the general (1) and
	glibc-specific (3) entry are present.

1997-10-22 18:47  Thorsten Kukuk  <kukuk@vt.uni-paderborn.de>

	* sunrpc/rpc/clnt.h: Add get_myaddress prototype.

	* nis/libnsl.map: Fix typo.

	* nis/nis_call.c: Fix memory leak.

1997-10-22 19:29  Ulrich Drepper  <drepper@cygnus.com>

	* sysdeps/generic/memcmp.c: Define __P if not defined before.
	Patch by Jim Meyering <meyering@eng.ascend.com>.

1997-10-21 22:09  Ulrich Drepper  <drepper@cygnus.com>

	* sysdeps/unix/sysv/linux/sys/prctl.h: New file by Richard Gooch
	<rgooch@atnf.csiro.au>.

1997-10-21 21:50  Ulrich Drepper  <drepper@cygnus.com>

	* misc/syslog.c (vsyslog): Open console with O_NOCTTY.
	Patch by Zack Weinberg <zack@rabi.phys.columbia.edu>.

1997-10-21 18:07  Ulrich Drepper  <drepper@cygnus.com>

	* posix/wordexp.c: Improve handling of $... expressions.
	Patch by Tim Waugh <tim@cyberelk.demon.co.uk>.

1997-10-21 16:12  Ulrich Drepper  <drepper@cygnus.com>

	* manual/string.texi: Correct return values of bcopy and bzero.
	Patch by Matthew Wilcox <willy@odie.barnet.ac.uk>.

1997-10-18 15:03  Philip Blundell  <Philip.Blundell@pobox.com>

	* sysdeps/unix/sysv/linux/bits/socket.h: Correct types of some
	elements in struct msghdr and struct cmsghdr, to keep in step with
	the kernel.

1997-10-17 22:29  Ulrich Drepper  <drepper@cygnus.com>

	* sysdeps/unix/sysv/linux/sparc/sparc32/init-first.h: Fix another
	bug in startup code.
	Patch by Eric Delaunay <delaunay@lix.polytechnique.fr>.

1997-10-16 20:17  Richard Henderson  <rth@cygnus.com>

	* sysdeps/unix/sysv/linux/sparc/sparc32/socket.S: Dump args to the
	stack and give the kernel a pointer.  Use the sysdep.h macros.

1997-10-17 04:07  Ulrich Drepper  <drepper@cygnus.com>

	* sysdeps/sparc/sparc32/elf/start.S: Calculate argv correctly.
	Patch by Eric Delaunay <delaunay@lix.polytechnique.fr>.

1997-10-16  Andreas Jaeger  <aj@arthur.rhein-neckar.de>

	* sysdeps/libm-ieee754/s_nextafterxf.c [!__STDC__]: Correct typo.

1997-10-16 14:50  Ulrich Drepper  <drepper@cygnus.com>

	* manual/pattern.texi: Document globfree.

1997-10-15 21:11  Philip Blundell  <Philip.Blundell@pobox.com>

	* sysdeps/unix/sysv/linux/net/if_packet.h: New file.
	* sysdeps/unix/sysv/linux/Makefile (sysdep_headers): Add
	net/if_packet.h.

	* sysdeps/unix/sysv/linux/net/if_arp.h (ARPHRD_ASH): New type, for
	64Mbps ASH.
	(ARPHRD_ETHER): This is used for 100Mbps networks too.

1997-10-15  Andreas Jaeger  <aj@arthur.rhein-neckar.de>

	* Makerules (install): Use full pathnames for linker script.
	This is to work around a limitation in `ld' while no better solution
	is possible.

1997-10-15  Andreas Jaeger  <aj@arthur.rhein-neckar.de>

	* malloc/malloc.c (mmap_chunk): Put inline before static in
	function definition to avoid compiler warning.
	(malloc_extend): Likewise.

	* sysdeps/generic/des_impl.c: Include "des.h" to avoid warning.

1997-10-15  Andreas Jaeger  <aj@arthur.rhein-neckar.de>

	* NEWS: Fix @gnu.ai.mit.edu -> @gnu.org.
	* README.template: Likewise.
	* db/makedb.c: Likewise.
	* elf/ldd.bash.in: Likewise.
	* elf/ldd.sh.in: Likewise.
	* intl/locale.alias: Likewise.
	* login/programs/utmpd.c: Likewise.
	* libio/stdfiles.c [!_IO_MTSAFE] (DEF_STDFILE): Fix parameter list.

1997-10-14  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* Rules: Remove all empty.* files.
	(shared-only-routines): Correct implementation.

1997-10-14  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* sysdeps/libm-ieee754/s_lrintl.c: Make compilable.
	* sysdeps/libm-ieee754/s_llrintl.c: Likewise.  Optimized.

1997-10-14  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* elf/ldd.bash.in: Only prepend ./ if the file contains no slash
	at all.
	* elf/ldd.sh.in: Likewise.

1997-10-14  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* sysdeps/m68k/sys/ucontext.h: New file.

1997-10-13  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* sysdeps/m68k/fpu/s_scalbln.c: New (empty) file.
	* sysdeps/m68k/fpu/s_scalblnf.c: New (empty) file.
	* sysdeps/m68k/fpu/s_scalblnl.c: New (empty) file.

	* sysdeps/m68k/fpu/s_scalbn.c: Add scalbln alias.
	* sysdeps/m68k/fpu/s_scalbnf.c: Adapted.
	* sysdeps/m68k/fpu/s_scalbnl.c: Adapted.

	* sysdeps/m68k/fpu/s_lrint.c: Add standard skeleton stuff.
	* sysdeps/m68k/fpu/s_lrintf.c: New file.
	* sysdeps/m68k/fpu/s_lrintl.c: New file.

	* sysdeps/m68k/fpu/bits/mathinline.h: Add fma and scalbln.  Update
	lrint and scalbn.
	(__m81_inline) [__cplusplus]: Define to __inline.

	* math/bits/mathcalls.h: Remove whitespace before second argument
	of __MATHDECL.  Add note explaining this.

1997-10-13  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* manual/arith.texi (Absolute Value): Spelling fix.

1997-10-13  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* malloc/obstack.h (obstack_empty_p) [!__GNUC__]: Properly
	parenthesize the macro parameter.

	* Rules: Remove rules to magically install <subdir>.h headers.
1997-10-26 20:13:00 +00:00
Ulrich Drepper
800d775e42 Update.
1997-08-29 21:45  Ulrich Drepper  <drepper@cygnus.com>

	* sunrpc/auth_des.c: New file.  Copied from former secure_rpc add-on.
	* sunrpc/authdes_prot.c: New file.  Likewise.
	* sunrpc/des.h: New file.  Likewise.
	* sunrpc/des_crypt.c: New file.  Likewise.
	* sunrpc/des_soft.c: New file.  Likewise.
	* sunrpc/key_call.c: New file.  Likewise.
	* sunrpc/key_prot.c: New file.  Likewise.
	* sunrpc/netname.c: New file.  Likewise.
	* sunrpc/openchild.c: New file.  Likewise.
	* sunrpc/rtime.c: New file.  Likewise.
	* sunrpc/svc_auth.c: New file.  Likewise.
	* sunrpc/svcauth_des.c: New file.  Likewise.
	* sunrpc/xcrypt.c: New file.  Likewise.
	* sunrpc/rpc/auth.h: New file.  Likewise.
	* sunrpc/rpc/auth_des.h: New file.  Likewise.
	* sunrpc/rpc/des_crypt.h: New file.  Likewise.
	* sunrpc/rpc/key_prot.h: New file.  Likewise.
	* sunrpc/rpcsvc/key_prot.x: New file.  Likewise.
	* sysdeps/generic/svc_auth.h: Removed.
	* sysdeps/generic/rpc/auth.h: Removed.
	* sysdeps/generic/rpc/auth_des.h: Removed.
	* sysdeps/stub/des_impl.c: New file.  Stub version for DES.
	* sunrpc/Makefile (rpcsvc): Add keyprot.x.
	(headers): Add des_crypt.h and key_prot.h.
	(routines): Add auth_des, authdes_prot, des_crypt, des_impl, des_soft,
	key_call, key_prot, netname, openchild, rtime, svcauth_des, xcrypt.
	(distribute): Add des.h.

	* db2/Makefile: Add all headers and other files to distribute.
	(others): Add db_printlog.

	* sysdeps/mach/hurd/Dist: Add net/* headers.
	* sysdeps/mach/hurd/mips/Dist: New file.
	* sysdeps/powerpc/Dist: Add fe_nomask.c and t_sqrt.c.
	* sysdeps/sparc/Dist: Add sys/trap.h.
	* sysdeps/sparc/sparc32/Dist: Remove sys/trap.h.
	* sysdeps/sparc/sparc32/sparcv8/Dist: New file.
	* sysdeps/unix/sysv/linux/mips/Dist: Add sgidefs.h.
	* sysdeps/unix/sysv/linux/sparc/Dist: Add sys/trap.h.
	* sysdeps/unix/sysv/linux/sparc/sparc32/Dist: Remove sys/trap.h.

	Add previously missing assembler files for PPC.
	* sysdeps/powerpc/add_n.s: New file.
	* sysdeps/powerpc/addmul_1.s: New file.
	* sysdeps/powerpc/lshift.s: New file.
	* sysdeps/powerpc/memset.s: New file.
	* sysdeps/powerpc/mul_1.s: New file.
	* sysdeps/powerpc/rshift.s: New file.
	* sysdeps/powerpc/strchr.s: New file.
	* sysdeps/powerpc/strcmp.s: New file.
	* sysdeps/powerpc/sub_n.s: New file.
	* sysdeps/powerpc/submul_1.s: New file.

1997-08-28 18:42  Thorsten Kukuk  <kukuk@uni-paderborn.de>

	* nis/nis_server.c: Rewritten to fix a lot of bugs.

1997-08-28  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* md5-crypt/Makefile (LDFLAGS-md5crypt.so, libmd5crypt-map): New
	variables.

	in NLSPATH environment variable.  Patch by HJ Lu <hjl@gnu.ai.mit.edu>.
1997-08-29 21:01:47 +00:00
Ulrich Drepper
f41c80910d Update.
1997-08-24 12:24  Ulrich Drepper  <drepper@cygnus.com>

	* configure.in (INSTALL): Quote `$'.

	* libc.map: Add __xpg_basename.

	* csu/Makefile (initfini.s): Disable optimization.

	* elf/dl-deps.c: Implement handling of DL_FILTER.

	* elf/dl-load.c (_dl_init_paths): Add error check.

	* intl/finddomain.c (_nl_find_domain): Correct comment.
	* intl/localealias.c: Include <bits/libc-lock.h> not <libc-lock.h>.

	* libio/stdio.h: Make {,v}snprintf available if __USE_BSD.
	Change extern inline functions to work correctly in C++.

	* locale/iso-4217.def: Update for more recent ISO 4217 version.

	* locale/loadlocale.c (_nl_load_locale): Add cast.

	* manual/message.texi: Finish gettext section.

	* posix/getopt_init.c: Don't use relative #include path.
	(__getopt_clean_environment): Change function to take pointer to
	environment as argument.  Optimize generation of test string a bit.
	* sysdeps/unix/sysv/linux/init-first.c: Call __getopt_clean_environment
	with additional argument.

	* poisx/glob.c: Add prototype for next_brace_sub.

	* sysdeps/generic/dl-sysdep.c: Recognize AT_BASE value on auxiliary
	vector.

	* sysdeps/i386/dl-machine.h (elf_machine_load_address): Rewrite
	to not generate relocation entry.  Suggested by Richard Henderson.
	(ELF_MACHINE_BEFORE_RTLD_RELOC): Removed.
	(elf_machine_runtime_setup): Add .aligns.

	* sysdeps/i386/fpu/fraiseexcpt.c: Add volatile to asms.

	* sysdeps/i386/fpu/bits/mathinline.h: Partially undo change of
	1997-08-14 03:14.  gcc 2.7.2* is really broken in some aspects.

	* sysdeps/standalone/i386/i386.h: Clean up asm statements a bit.
	* sysdeps/standalone/i960/i960ca.h: Likewise.

1997-08-22 19:04  Richard Henderson  <rth@cygnus.com>

	* elf/rtld.c (_dl_start): Init _dl_rtld_map.l_opencount due to
	undocumented test addition in _dl_map_object.

	Support ET_EXEC versions of ld.so, for debugging at least:

	* elf/dl-load.c (_dl_map_object): Add_name_to_object could get
	called despite the DT_SONAME != NULL test, segfaulting.  Simplify
	the code here as well.
	* elf/dl-lookup.c (do_lookup): Skip objects with no symtab.
	(_dl_setup_hash): Likewise for hash tables.
	* elf/dl-version.c (_dl_check_map_versions): Likewise for strtabs.
	* elf/rtld.c (_dl_start): Likewise for rpath.
	(_dl_rtld_libname2): New variable.
	(dl_main): Use it to add an soname for ourselves when we don't have
	one of our own.  Base it on the target's .interp.
	(dl_main): Again, skip printing of objects that don't have strtabs.

	Sparc 32 merge:

	* elf/dl-runtime.c (ELF_FIXUP_RETURN_VALUE): Provide default value.
	(fixup): Simplify code.  Use ELF_FIXUP_RETURN_VALUE.
	(profile_fixup): Likewise, though this still needs fixing for
	Sparc32 and PPC.
	* sysdeps/powerpc/dl-machine.h: Transmute ELF_FIXUP_RETURNS_ADDRESS
	to ELF_FIXUP_RETURN_VALUE.

	* sysdeps/sparc/sparc32/dl-machine.h: Implement lazy relocation.
	Fix up _dl_start_user to handle _dl_skip_args properly.
	Use _dl_hwcap to determine if "flush" is available/needed.

	* sysdeps/sparc/configure.in: Remove.  It doesn't actually do
	anything anymore, and what it did do is done somewhere else.
	* sysdeps/sparc/configure: Likewise.

	* sysdeps/sparc/fpu/bits/mathdef.h (FP_ILOGB0, FP_ILOGBNAN): New.

	* sysdeps/sparc/fpu/fraiseexcpt.c: Rearrange for smaller code.

	* sysdeps/sparc/sparc32/Makefile: Fix sparc->sparc/sparc32 bits
	in divrem expansions.

	* sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h (END, LOC): New
	definitions for assembly syntax differences.

	* sysdeps/sparc/sparc32/__longjmp.S: %g6,%g7 are reserved to the
	"system".  Use %g2,%g3 instead.  Use new local label macro.
	* sysdeps/sparc/sparc32/add_n.S: Use <sysdep.h> and ENTRY, END,
	and LOC for proper assembly headers/footers.
	* sysdeps/sparc/sparc32/addmul_1.S: Likewise.
	* sysdeps/sparc/sparc32/alloca.S: Likewise.
	* sysdeps/sparc/sparc32/dotmul.S: Likewise.
	* sysdeps/sparc/sparc32/lshift.S: Likewise.
	* sysdeps/sparc/sparc32/mul_1.S: Likewise.
	* sysdeps/sparc/sparc32/rshift.S: Likewise.
	* sysdeps/sparc/sparc32/sparcv8/addmul_1.S: Likewise.
	* sysdeps/sparc/sparc32/sparcv8/mul_1.S: Likewise.
	* sysdeps/sparc/sparc32/sparcv8/submul_1.S: Likewise.
	* sysdeps/sparc/sparc32/sparcv8/udiv_qrnnd.S: Likewise.
	* sysdeps/sparc/sparc32/sub_n.S: Likewise.
	* sysdeps/sparc/sparc32/submul_1.S: Likewise.
	* sysdeps/sparc/sparc32/udiv_qrnnd.S: Likewise.
	* sysdeps/sparc/sparc32/umul.S: Likewise.
	* sysdeps/sparc/sparc32/divrem.m4: Likewise.
	* sysdeps/sparc/sparc32/rem.S: Regenerate.
	* sysdeps/sparc/sparc32/sdiv.S: Regenerate.
	* sysdeps/sparc/sparc32/udiv.S: Regenerate.
	* sysdeps/sparc/sparc32/urem.S: Regenerate.

	* sysdeps/sparc/sparc32/sparcv8/dotmul.S: New file.
	* sysdeps/sparc/sparc32/sparcv8/rem.S: New file.
	* sysdeps/sparc/sparc32/sparcv8/sdiv.S: New file.
	* sysdeps/sparc/sparc32/sparcv8/udiv.S: New file.
	* sysdeps/sparc/sparc32/sparcv8/umul.S: New file.
	* sysdeps/sparc/sparc32/sparcv8/urem.S: New file.

	* sysdeps/sparc/sparc32/bsd-_setjmp.S: Dike out.
	* sysdeps/sparc/sparc32/bsd-setjmp.S: Likewise.
	* sysdeps/sparc/sparc32/setjmp.S: Add _setjmp and setjmp entry points.

	* sysdeps/unix/sysv/linux/sparc/sparc32/__sigtrampoline.S:
	Clean up PIC code.

	* sysdeps/sparc/sparc32/elf/start.S: New file, slightly modified
	from the sparc64 version.
	* sysdeps/sparc/sparc32/elf/start.c: Removed.

	* sysdeps/unix/sysv/linux/sparc/sparc32/init-first.h: Rewrite in
	assembly based on the sparc64 version.

	* sysdeps/sparc/sparc32/fpu/bits/fenv.h: Duh.  Use proper syntax
	for manipulating %fsr.
	* sysdeps/sparc/sparc32/fpu/fpu_control.h: Make IEEE conformance
	be the default.

	* elf/elf.h (HWCAP_SPARC_*): New definitions.
	* elf/rtld.c (_dl_hwcap): New variable.
	* sysdeps/generic/dl-sysdep.c (_dl_sysdep_start): Record AT_HWCAP.

	* sysdeps/unix/sysv/linux/sparc/sparc32/getpagesize.c: New file.
	Attempt to get hold of the page size based on what we might have
	been told at startup time in _dl_pagesize.  This will be obsolete
	when I finish the kernel hooks for a proper sysconf(), stay tuned.

	Sparc 64 merge:

	* sysdeps/sparc/sparc64/dl-machine.h (ELF_FIXUP_RETURN_VALUE): New.
	Figure out the right thing to return based on the .plt format.

	* sysdeps/sparc/sparc64/fpu/fpu_control.h: Update comment.

	* sysdeps/unix/sysv/linux/sparc/sparc64/bits/types.h (__dev_t):
	Should have been 64-bits wide.

	* sysdeps/unix/sysv/linux/sparc/sparc64/init-first.h: sll->sllx,
	optimize for branch delay slot usage.

1997-08-22  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* csu/Makefile ($(objpfx)crt%.o): Fix a missing *.so -> *.os
	change.

1997-08-20  Andreas Jaeger  <aj@arthur.rhein-neckar.de>

	* math/libm-test.c (identities): Change epsilon.

	* sysdeps/i386/fpu/bits/mathinline.h: Correct arguments to fabs,
	fabsf, fabsl, __fabsl.

	* sysdeps/libm-i387/e_remainderl.S: Pop extra value from FPU stack.
	* sysdeps/libm-ieee754/s_csinhl.c: Include <fenv.h>.
1997-08-24 10:55:18 +00:00
Ulrich Drepper
40a55d2054 Update.
1997-08-20 05:30  Ulrich Drepper  <drepper@cygnus.com>

	* catgets/catgets.c (catclose): Use __munmap instead of munmap.
	* catgets/gencat.c (read_input_file): Fix typo.

	* dirent/dirent.h: Make seekdir and telldir available for __USE_XOPEN.

	* elf/dl-load.c: Fix case of missing DT_RPATH in object which gets
	executed (e.g., when it is a static binary).

	* intl/bindtextdomain.c: Use strdup in glibc.  Correct comment.
	* intl/dcgettext.c: Likewise.
	* intl/dgettext.c: Likewise.
	* intl/explodename.c: Likewise.
	* intl/finddomain.c: Likewise.
	* intl/gettext.c: Likewise.
	* intl/gettext.h: Likewise.
	* intl/hash-string.h: Likewise.
	* intl/l10nflist.c: Likewise.
	* intl/libintl.h: Likewise.
	* intl/loadinfo.h: Likewise.
	* intl/loadmsgcat.c: Likewise.
	* intl/localealias.c: Likewise.
	* intl/textdomain.c: Likewise.

	Unify libio sources with code in libg++.
	* libio/fcloseall.c: Update and reformat copyright.  Protect use
	of weak_alias.  Use _IO_* thread macros instead of __libc_*.
	* libio/feof.c: Likewise.
	* libio/feof_u.c: Likewise.
	* libio/ferror.c: Likewise.
	* libio/ferror_u.c: Likewise.
	* libio/fgetc.c: Likewise.
	* libio/filedoalloc.c: Likewise.
	* libio/fileno.c: Likewise.
	* libio/fileops.c: Likewise.
	* libio/fputc.c: Likewise.
	* libio/fputc_u.c: Likewise.
	* libio/freopen.c: Likewise.
	* libio/fseek.c: Likewise.
	* libio/genops.c: Likewise.
	* libio/getc.c: Likewise.
	* libio/getc_u.c: Likewise.
	* libio/getchar.c: Likewise.
	* libio/getchar_u.c: Likewise.
	* libio/iofclose.c: Likewise.
	* libio/iofdopen.c: Likewise.
	* libio/iofflush.c: Likewise.
	* libio/iofflush_u.c: Likewise.
	* libio/iofgetpos.c: Likewise.
	* libio/iofgets.c: Likewise.
	* libio/iofopen.c: Likewise.
	* libio/iofopncook.c: Likewise.
	* libio/iofprintf.c: Likewise.
	* libio/iofputs.c: Likewise.
	* libio/iofread.c: Likewise.
	* libio/iofsetpos.c: Likewise.
	* libio/ioftell.c: Likewise.
	* libio/iofwrite.c: Likewise.
	* libio/iogetdelim.c: Likewise.
	* libio/iogetline.c: Likewise.
	* libio/iogets.c: Likewise.
	* libio/iopadn.c: Likewise.
	* libio/iopopen.c: Likewise.
	* libio/ioputs.c: Likewise.
	* libio/ioseekoff.c: Likewise.
	* libio/ioseekpos.c: Likewise.
	* libio/iosetbuffer.c: Likewise.
	* libio/iosetvbuf.c: Likewise.
	* libio/iosprintf.c: Likewise.
	* libio/ioungetc.c: Likewise.
	* libio/iovdprintf.c: Likewise.
	* libio/iovsprintf.c: Likewise.
	* libio/iovsscanf.c: Likewise.
	* libio/libio.h: Likewise.
	* libio/libioP.h: Likewise.
	* libio/obprintf.c: Likewise.
	* libio/pclose.c: Likewise.
	* libio/peekc.c: Likewise.
	* libio/putc.c: Likewise.
	* libio/putchar.c: Likewise.
	* libio/rewind.c: Likewise.
	* libio/setbuf.c: Likewise.
	* libio/setlinebuf.c: Likewise.
	* libio/stdfiles.c: Likewise.
	* libio/stdio.c: Likewise.
	* libio/strfile.h: Likewise.
	* libio/strops.c: Likewise.
	* libio/vasprintf.c: Likewise.
	* libio/vscanf.c: Likewise.
	* libio/vsnprintf.c: Likewise.

	* manual/libc.texinfo: Add menu entries for chapter on message
	translation.
	* manual/locale.texi: Correct next entry in @node for new chapter.
	* manual/search.texi: Likewise for previous link.
	* manual/message.texi: New file.
	* manual/startup.texi: Document LC_ALL, LC_MESSAGES, NLSPATH,
	setenv, unsetenv, and clearenv.
	* manual/string.texi: Fix typos.  Patch by Jim Meyering.

	* math/Makefile (test-longdouble-yes): Enable.  We want long double
	tests now.

	Crusade against strcat.
	* nis/nss_nisplus/nisplus-publickey.c: Remove uses of strcat.
	* stdlib/canonicalize.c: Likewise.

	* posix/glob.h: Define __const if necessary.  Use __const in all
	prototypes.

	* sysdeps/generic/stpcpy.c: Use K&R form to allow use in other
	GNU packages.

	* posix/wordexp.c: Completely reworked buffer handling for much
	better performance.  Patch by Tim Waugh.

	* socket/sys/sochet.h (getpeername): Fix type of LEN parameter,
	it must be socklen_t.

	* sysdeps/libm-i387/e_remainder.S: Pretty print.
	* sysdeps/libm-i387/e_remainderf.S: Likewise.
	* sysdeps/libm-i387/e_remainderl.S: Pop extra value for FPU stack.
	* sysdeps/libm-i387/s_cexp.S: Little optimization.
	* sysdeps/libm-i387/s_cexpl.S: Likewise.
	* sysdep/libm-ieee754/s_csinhl.c: Include <fenv.h>.

1997-08-18 15:21  Ulrich Drepper  <drepper@cygnus.com>

	* sysdeps/unix/sysv/linux/if_index.c (if_nameindex): Fix memory leak
	in cleanup code.

1997-08-17  Paul Eggert  <eggert@twinsun.com>

	* tzset.c (__tzset_internal): Fix memory leak when the user
	specifies a TZ value that uses a default rule file.
	Do not assume US DST rules when the user specifies
	that there is no DST.

1997-08-10 19:17  Philip Blundell  <Philip.Blundell@pobox.com>

	* inet/getnameinfo.c: Tidy up.
	* sysdeps/posix/getaddrinfo.c: Likewise.

	* sysdeps/unix/sysv/linux/if_index.c (if_nametoindex): Return 0 if
	using stub code.
	(if_indextoname): Use SIOGIFNAME ioctl if the kernel supports it.
	(if_nameindex): Use alloca() rather than malloc(); use
	SIOCGIFCOUNT ioctl if the kernel supports it.

1997-08-16  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* sysdeps/unix/sysv/linux/sys/mount.h: Remove the IS_* macros,
	they operate on internal kernel structures and have no place in a
	user header.

1997-08-16  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* Makerules (lib%.so): Depend on $(+preinit) and $(+postinit).
	(build-shlib): Filter them out of $^.

1997-08-15  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* elf/dl-error.c (_dl_signal_error): Fix error message.

1997-08-16 04:06  Ulrich Drepper  <drepper@cygnus.com>

	* assert/assert.h [__USE_GNU]: Undefine assert_perror.
	Reported by Theodore C. Belding <Ted.Belding@umich.edu>.

1997-08-13  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* Makeconfig: Change object suffixes from *.[spgb]o to *.o[spgb]
	to avoid conflict with PO files.
	* Makerules: Likewise.
	* Rules: Likewise.
	* elf/Makefile: Likewise.
	* extra-lib.mk: Likewise.
	* gmon/Makefile: Likewise.
	* nis/Makefile: Likewise.
	* nss/Makefile: Likewise.
	* resolv/Makefile: Likewise.
	* rpm/Makefile: Likewise.
	* sunrpc/Makefile: Likewise.
	* sysdeps/sparc/elf/Makefile: Likewise.
	* sysdeps/sparc64/elf/Makefile: Likewise.
	* sysdeps/unix/sysv/linux/sparc/Makefile: Likewise.
	(ASFLAGS-.os): Renamed from as-FLAGS.os.
1997-08-20 03:53:21 +00:00
Ulrich Drepper
ca34d7a7c7 Update.
1997-08-14 03:14  Ulrich Drepper  <drepper@cygnus.com>

	* elf/dl-minimal.c: Don't use relative #include paths.
	(malloc): Don't try to initialize _dl_pagesize, it already is.
	(__sigjmp_save, longjmp): Reformat.

	* sysdeps/generic/dl-sysdep.c: Implement _dl_show_auxv function to
	show content of auxiliary array.
	(_dl_sysdep_start): Remember start of auxiliary vector.
	* sysdeps/mach/hurd/dl-sysdep.c: (_dl_show_auxv): New dummy function.
	* elf/link.h: Add prototype for _dl_show_auxv.
	* elf/rtld.c (dl_main): Call _dl_show_auxv if LD_SHOW_AUXV envvar
	is present.

	* libio/iofdopen.c: Better prepare for use in libstdc++.
	* libio/iofflush.c: Likewise.
	* libio/iofgetpos.c: Likewise.
	* libio/iofgets.c: Likewise.
	* libio/iofopen.c: Likewise.
	* libio/iofputs.c: Likewise.
	* libio/iofread.c: Likewise.
	* libio/iofsetpos.c: Likewise.
	* libio/ioftell.c: Likewise.
	* libio/iofwrite.c: Likewise.
	* libio/iogetdelim.c: Likewise.
	* libio/iogets.c: Likewise.
	* libio/iopopen.c: Likewise.
	* libio/ioputs.c: Likewise.
	* libio/iosetbuffer.c: Likewise.
	* libio/iosetvbuf.c: Likewise.
	* libio/ioungetc.c: Likewise.
	* libio/iovsprintf.c: Likewise.
	* libio/iovsscanf.c: Likewise.

	* manual/creature.texi: Mention _XOPEN_SOURCE_EXTENDED in correct
	place.

	* manual/math.texi: Add comment to sincos decsription to say it's a
	GNU extension.
	Fix description of random function.

	* posix/fnmatch.h: Recognize Windog by _WINDOWS32 not WIN32.
	* posix/glob.c: Likewise.  Handle stupid system headers on SunOS.
	Add casts for all __alloca calls.
	* posix/glob.h: Recognize Windog by _WINDOWS32 not WIN32.
	Declare additional GLOB_* constants also if _GNU_SOURCE is defined.
	Patches by Paul D. Smith <psmith@BayNetworks.COM>.

	* stdio-common/_itoa.c: Don't use relateive #include paths.

	* sysdeps/i386/fpu/bits/mathinline.h: Enable optimizations even for
	gcc 2.7.
	(atan): Loading 1.0 from memory does not pay off.
	(asinh): Fix typo.

1997-08-13 09:44  Philip Blundell  <Philip.Blundell@pobox.com>

	* sysdeps/stub/accept.c: Use socklen_t where necessary.
	* sysdeps/stub/bind.c: Likewise.
	* sysdeps/stub/connect.c: Likewise.
	* sysdeps/stub/getsockname.c: Likewise.
	* sysdeps/stub/getsockopt.c: Likewise.
	* sysdeps/stub/recvfrom.c: Likewise.
	* sysdeps/stub/sendto.c: Likewise.
	* sysdeps/stub/setsockopt.c: Likewise.

1997-08-11  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* io/ftw.c (object_compare): Avoid memcmp when comparing scalar
	types.

1997-08-12  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* math/libm-test.c (cbrt_test): Add epsilon for long double to
	`cbrt (-0.001)'.

1997-08-11  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* sysdeps/stub/bits/string.h: Fix comment.

1997-08-01  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* elf/Makefile (routines): Remove dl-version.
	(dl-routines): Add it here instead.  This removes dead code from
	libc.so.

1997-08-12 17:17  Wolfram Gloger  <wmglo@dent.med.uni-muenchen.de>

	* malloc/thread-m.h (thread_atfork, thread_atfork_static): New
	macros to encapsulate pthread_atfork's functionality.
	* malloc/malloc.c (ptmalloc_lock_all, ptmalloc_unlock_all): New
	functions, registered via thread_atfork in the initialization
	routine or via thread_atfork_static in global scope.  This
	ensures a consistent state of all locks across fork().

1997-08-11 23:00:32 1997  Mark Kettenis  <kettenis@phys.uva.nl>

	* login/programs/xtmp.c (compare_entry):
	Partially undo patch made by Klaus Espenlaub.  There
	was no xtmp/utmp typo.  Added comment to cclarify this.
	* login/programs/xtmp.h: Likewise.

	* posix/getopt.c: Recognize Windog by _WINDOWS32 not WIN32.
	Patch by Paul D. Smith <psmith@BayNetworks.COM>.

1997-08-12 13:51  Ulrich Drepper  <drepper@cygnus.com>

	* login/getutid.c: Rename to __getutid and make getutid and getutxid
	weak aliases.
	Patch by ir. Mark M._Kettenis <kettenis@phys.uva.nl>.

1997-08-11 23:55  Ulrich Drepper  <drepper@cygnus.com>

	* sysdeps/unix/sysv/linux/Makefile [subdir=misc] (sysdep_headers):
	Add bits/mman.h.

1997-08-11 08:51:21 1997  H.J. Lu  <hjl@gnu.ai.mit.edu>

	* stdlib/fmtmsg.c (fmtmsg): Add static to
	__libc_once_define macro.

	* libc.map (__progname_full, __progname): Added.

1997-08-04 08:31  H.J. Lu  <hjl@gnu.ai.mit.edu>

	* sysdeps/unix/sysv/linux/if_index.c (if_nametoindex): Return 0
	if SIOGIFINDEX is not defined.
	(if_indextoname): Initialize "result" to NULL.
	(if_nametoindex, if_nameindex): Fix ENOSYS setting.

1997-08-11 11:58  Richard Henderson  <rth@cygnus.com>

	Sparc ISO C 9x exception handling:
	* sysdeps/sparc/fpu/bits/mathdef.h: New file.
	* sysdeps/sparc/fpu/fclrexcpt.c: New file.
	* sysdeps/sparc/fpu/fegetenv.c: New file.
	* sysdeps/sparc/fpu/fegetround.c: New file.
	* sysdeps/sparc/fpu/feholdexcpt.c: New file.
	* sysdeps/sparc/fpu/fesetenv.c: New file.
	* sysdeps/sparc/fpu/fesetround.c: New file.
	* sysdeps/sparc/fpu/feupdateenv.c: New file.
	* sysdeps/sparc/fpu/fgetexcptflg.c: New file.
	* sysdeps/sparc/fpu/fraiseexcpt.c: New file.
	* sysdeps/sparc/fpu/fsetexcptflg.c: New file.
	* sysdeps/sparc/fpu/ftestexcept.c: New file.
	* sysdeps/sparc/sparc32/fpu/bits/fenv.h: New file.
	* sysdeps/sparc/sparc64/fpu/bits/fenv.h: New file.

1997-08-11 11:58  Richard Henderson  <rth@cygnus.com>

	Sparc64 merge:
	* configure.in: Change up subdirectories, rename sparc8->sparcv8.

	* csu/Makefile: Nuke need-nopic-initfini bits.  The problem was
	that sparc64 ld did not recognize pic relocs at all.

	* elf/dl-deps.c: Include <string.h>.
	* elf/do-rel.h (elf_dynamic_do_rel): Take reloc address and size
	directly instead of the DT names to get them from.
	* elf/dynamic-link.h (_ELF_DYNAMIC_DO_RELOC): New macro distilled
	from ELF_DYNAMIC_DO_REL{,A}.  Define a second version that accounts
	for the possibility that DT_RELA and DT_JMPPLT overlap, as such is
	the case on the Sparc.

	* elf/elf.h: Stub out Elf64_Ver*, and make them the same as the
	Elf32_Ver* bits.  The linker does not even know to differentiate
	between the word sizes.  Someone should examine this and figure
	out what the proper sizes of things should be for 64-bit hosts
	before the sparc64 libraries are distributed.

	* shlib-versions: Rename sparc64 ld.so to not conflict with sparc32
	on the same machine.

	Move old sysdeps/sparc contents to sysdeps/sparc/sparc32,
	rename sparc8 subdir to sparcv8, move sysdeps/sparc64 content to
	sysdeps/sparc/sparc64.  Same for sysdeps/unix/sysv/linux/sparc.

	* sysdeps/sparc/Implies: Do ieee754 here.
	* sysdeps/sparc/configure.in: Move from sparc32/.
	* sysdeps/sparc/sparc32/Implies: Do wordsize here.
	* sysdeps/sparc/sparc64/Implies: Likewise.

	* sysdeps/sparc/sparc32/dl-machine.h (elf_machine_load_address):
	Use uninitialized .got to find load address instead of AT_BASE, as
	the later does not exist when running ld.so directly.

	* sysdeps/sparc/sparc32/fpu/fpu_control.h: Move from ../.
	* sysdeps/sparc/sparc64/fpu/fpu_control.h: Likewise.

	* sysdeps/sparc/sparc32/udiv_qrnnd.S: Clean up PIC support.

	* sysdeps/sparc/sparc64/Makefile (sysdep_routines): Add s_finitel
	and s_signbitl for stdio.
	* sysdeps/sparc/sparc64/configure.in: Remove, we no longer need
	nopic_initfini.

	* sysdeps/sparc/sparc64/bsd-_setjmp.S: Remove.
	* sysdeps/sparc/sparc64/bsd-setjmp.S: Remove.
	* sysdeps/unix/sysv/linux/sparc/sparc64/bsd-_setjmp.S: New empty file.
	* sysdeps/unix/sysv/linux/sparc/sparc64/bsd-setjmp.S: New empty file.
	* sysdeps/unix/sysv/linux/sparc/sparc64/longjmp.S: Add __longjmp alias.
	* sysdeps/unix/sysv/linux/sparc/sparc64/setjmp.S: Add weak _setjmp
	and setjmp entry points.

	* sysdeps/sparc/sparc64/dl-machine.h: Finish real implementation.

	* sysdeps/sparc/sparc64/elf/crtbegin.S: Add copyright, fix PIC.
	* sysdeps/sparc/sparc64/elf/crtend.S: Likewise.

	* sysdeps/unix/sysv/linux/sparc/bits/sigaction.h (struct sigaction):
	Fix sa_flags size for sparc64; add sa_restorer for kernel.

	* sysdeps/unix/sysv/linux/sparc/sparc64/brk.S: Fix PIC.
	* sysdeps/unix/sysv/linux/sparc/sparc64/clone.S: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/init-first.h: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h: Likewise.

	* sysdeps/unix/sysv/linux/sparc/sparc64/syscall.S: New file.

1997-08-10 18:29:08 1997  Mark Kettenis  <kettenis@phys.uva.nl>

	* login/login.c (login): Check for correct return value of
	utmpname.

1997-08-11 16:49  Ulrich Drepper  <drepper@cygnus.com>

	* time/tzset.c (__tzset_internal): Correctly handle TZ strings
	following incorrect old POSIX specs.
	Patch by Paul Eggert <eggert@twinsun.com>.

	* sysdeps/generic/bits/sigaction.h: Correct comment for SA_RESTART.
	* sysdeps/unix/bsd/osf/bits/sigaction.h: Likewise.
	* sysdeps/unix/sysv/linux/alpha/bits/sigaction.h: Likewise.
	* sysdeps/unix/sysv/linux/bits/sigaction.h: Likewise.
	* sysdeps/unix/sysv/linux/mips/bits/sigaction.h: Likewise.
	* sysdeps/unix/sysv/linux/sparc/bits/sigaction.h: Likewise.
	* sysdeps/unix/sysv/minix/bits/sigaction.h: Likewise.
	* sysdeps/unix/sysv/sysv4/bits/sigaction.h: Likewise.
	Reported by NIIBE Yutaka <gniibe@mri.co.jp>.

1997-08-09  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* manual/math.texi: Define the macros @mul and @infinity and use
	them to format the multiplication and infinity signs.
	(FP Comparison Functions): Use @code, not @math, for C code
	examples.

	* elf/dl-profile.c: Add descriptions and implement reading of
1997-08-14 01:54:13 +00:00