Commit Graph

456 Commits

Author SHA1 Message Date
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
Andreas Schwab 9e2ff6c9cc arm: mark __startcontext as .cantunwind (bug 20435)
__startcontext marks the bottom of the call stack of the contexts created
by makecontext.
2016-08-15 17:10:21 +02: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
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 f5c77f78ec Remove __ASSUME_FUTEX_LOCK_PI
This patch removes __ASSUME_FUTEX_LOCK_PI usage and assumes that
kernel will correctly return if it supports or not
futex_atomic_cmpxchg_inatomic.

Current PI mutex code already has runtime support by calling
prio_inherit_missing and returns ENOTSUP if the futex operation fails
at initialization (it issues a FUTEX_UNLOCK_PI futex operation).

Also, current minimum supported kernel (v3.2) will return ENOSYS if
futex_atomic_cmpxchg_inatomic is not supported in the system:

kernel/futex.c:

2628 long do_futex(u32 __user *uaddr, int op, u32 val, ktime_t *timeout,
2629                 u32 __user *uaddr2, u32 val2, u32 val3)
2630 {
2631         int ret = -ENOSYS, cmd = op & FUTEX_CMD_MASK;
[...]
2667         case FUTEX_UNLOCK_PI:
2668                 if (futex_cmpxchg_enabled)
2669                         ret = futex_unlock_pi(uaddr, flags);
[...]
2686         return ret;
2687 }

The futex_cmpxchg_enabled is initialized by calling cmpxchg_futex_value_locked,
which calls futex_atomic_cmpxchg_inatomic.

For ARM futex_atomic_cmpxchg_inatomic will be either defined (if both
CONFIG_CPU_USE_DOMAINS and CONFIG_SMP are not defined) or use the
default generic implementation that returns ENOSYS.

For m68k is uses the default generic implementation.

For mips futex_atomic_cmpxchg_inatomic will return ENOSYS if cpu has no
'cpu_has_llsc' support (defined by each chip supporte inside kernel).

For sparc, 32-bit kernel will just use default generic implementation,
while 64-bit kernel has support.

Tested on ARM (v3.8 kernel) and x86_64.

	* nptl/pthread_mutex_init.c [__ASSUME_FUTEX_LOCK_PI]
	(prio_inherit_missing): Remove define.
	* sysdeps/unix/sysv/linux/arm/kernel-features.h
	(__ASSUME_FUTEX_LOCK_PI): Likewise.
	* sysdeps/unix/sysv/linux/kernel-features.h (__ASSUME_FUTEX_LOCK_PI):
	Likewise.
	* sysdeps/unix/sysv/linux/m68k/kernel-features.h
	(__ASSUME_FUTEX_LOCK_PI): Likewise.
	* sysdeps/unix/sysv/linux/mips/kernel-features.h
	(__ASSUME_FUTEX_LOCK_PI): Likewise.
	* sysdeps/unix/sysv/linux/sparc/kernel-features.h
	(__ASSUME_FUTEX_LOCK_PI): Likewise.
2016-06-13 08:36:34 -03:00
Adhemerval Zanella 78880cc185 Revert {send,sendm,recv,recvm}msg conformance changes
After some discussion in libc-alpha about this POSIX compliance fix, I see
that GLIBC should indeed revert back to previous definition of msghdr and
cmsghdr and implementation of sendmsg, recvmsg, sendmmsg, recvmmsg due some
reasons:

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

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

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

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

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

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

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

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

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

	* conform/data/sys/socket.h-data (msghdr.msg_iovlen): Add xfail-.
	(msghdr.msg_controllen): Likewise.
	(cmsghdr.cmsg_len): Likewise.
	* nptl/Makefile (libpthread-routines): Remove ptw-oldrecvmsg and
	ptw-oldsendmsg.
	(CFLAGS-oldrecvmsg.c): Remove rule.
	(CFLAGS-oldsendmsg.c): Likewise.
	(CFLAGS-recvmsg.c): Add rule.
	(CFLAGS-sendmsg.c): Likewise.
	* sysdeps/unix/sysv/linux/Makefile (sysdep_routines): Remove
	oldrecvmsg, oldsendmsg, oldrecvmmsg, oldsendmmsg.
	(CFLAGS-recvmsg.c): Remove rule.
	(CFLAGS-sendmsg.c): Likewise.
	(CFLAGS-oldrecvmsg.c): Likewise.
	(CFLAGS-oldsendmsg.c): Likewise.
	(CFLAGS-recvmmsg.c): Likewise.
	* sysdeps/unix/sysv/linux/bits/socket.h (msghdr.msg_iovlen): Revert
	to kernel defined interfaces.
	(msghdr.msg_controllen): Likewise.
	(cmsghdr.cmsg_len): Likewise.
	(msghdr.__glibc_reserved1): Remove member.
	(msghdr.__glibc_reserved2): Likewise.
	(cmsghdr.__glibc_reserved1): Likewise.
	* sysdeps/unix/sysv/linux/oldrecvmmsg.c: Remove file.
	* sysdeps/unix/sysv/linux/oldrecvmsg.c: Likewise.
	* sysdeps/unix/sysv/linux/oldsendmmsg.c: Likewise.
	* sysdeps/unix/sysv/linux/oldsendmsg.c: Likewise.
	* sysdeps/unix/sysv/linux/recvmmsg.c: Revert back to previous
	version.
	* sysdeps/unix/sysv/linux/recvmsg.c: Likewise.
	* sysdeps/unix/sysv/linux/sendmmsg.c: Likewise.
	* sysdeps/unix/sysv/linux/sendmsg.c: Likewise.
	* sysdeps/unix/sysv/linux/aarch64/Versions [libc] (GLIBC_2.24):
	Remove recvmsg and sendmsg.
	* sysdeps/unix/sysv/linux/alpha/Versions [libc] (GLIBC_2.24):
	Likewise.
	* sysdeps/unix/sysv/linux/hppa/Versions [libc] (GLIBC_2.24):
	Likewise.
	* sysdeps/unix/sysv/linux/i386/Versions [libc] (GLIBC_2.24): Likewise.
	* sysdeps/unix/sysv/linux/m68k/Versions [libc] (GLIBC_2.24): Likewise.
	* sysdeps/unix/sysv/linux/microblaze/Versions [libc] (GLIBC_2.24):
	Likewise.
	* sysdeps/unix/sysv/linux/mips/mips32/Versions [libc] (GLIBC_2.24):
	Likewise.
	* sysdeps/unix/sysv/linux/mips/mips64/n32/Versions
	[libc] (GLIBC_2.24): Likewise.
	* sysdeps/unix/sysv/linux/nios2/Versions [libc] (GLIBC_2.24):
	Likewise.
	* sysdeps/unix/sysv/linux/powerpc/Versions [libc] (GLIBC_2.24):
	Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/Versions
	[libc] (GLIBC_2.24): Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/Versions [libc] (GLIBC_2.24):
	Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-64/Versions [libc] (GLIBC_2.24):
	Likewise.
	* sysdeps/unix/sysv/linux/sh/Versions [libc] (GLIBC_2.24): Likewise.
	* sysdeps/unix/sysv/linux/sparc/Versions [libc] (GLIBC_2.24):
	Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/Versions [libc] (GLIBC_2.24):
	Likewise.
	* sysdeps/unix/sysv/linux/tile/Versions [libc] (GLIBC_2.24):
	Likewise.
	* sysdeps/unix/sysv/linux/x86_64/Versions [libc] (GLIBC_2.24):
	Likewise.
	* sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/Versions: Remove file
	* sysdeps/unix/sysv/linux/x86_64/64/Versions: Likewise.
	* sysdeps/unix/sysv/linux/mips/mips64/n64/Versions: Likewise.
	* sysdeps/unix/sysv/linux/aarch64/libc.abilist: Remove new 2.24
	version for {recv,send,recm,sendm}msg.
	* sysdeps/unix/sysv/linux/alpha/libc.abilist: Likewise.
	* sysdeps/unix/sysv/linux/arm/libc.abilist: Likewise.
	* sysdeps/unix/sysv/linux/hppa/libc.abilist: Likewise.
	* sysdeps/unix/sysv/linux/i386/libc.abilist: Likewise.
	* sysdeps/unix/sysv/linux/ia64/libc.abilist: Likewise.
	* sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist: Likewise.
	* sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist: Likewise.
	* sysdeps/unix/sysv/linux/microblaze/libc.abilist: Likewise.
	* sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist: Likewise.
	* sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist: Likewise.
	* sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist: Likewise.
	* sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist:
	Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist:
	Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist: Likewise.
	* sysdeps/unix/sysv/linux/nios2/libc.abilist: Likewise.
	* sysdeps/unix/sysv/linux/sh/libc.abilist: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist: Likewise.
	* sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libc.abilist: Likewise.
	* sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libc.abilist: Likewise.
	* sysdeps/unix/sysv/linux/tile/tilepro/libc.abilist: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/64/libc.abilist: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist: Likewise.
2016-06-10 11:58:16 -03:00
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 abf29edd4a Adjust kernel-features.h defaults for recvmsg and sendmsg
This patch removes the auto-generation for recvmsg and sendmsg syscall
and adjust the kernel-features.h for all architectures supported on
Linux.  This patch follows the idea of 'Adjust kernel-features.h defaults
for socket syscalls.' (35ade9f11b) by define
__ASSUME_SENDMSG_SYSCALL and __ASSUME_RECVMSG_SYSCALL as supported by
default and undefine it for the architecture that do not support it
directly.

The main rationale is to make is easier add code wrapper over the syscall
to fix BZ#16919 (recvmsg standard compliance).

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

	* sysdeps/unix/sysv/linux/alpha/syscalls.list (recvmsg): Remove
	from auto-generation.
	(sendmsg): Likewise.
	* sysdeps/unix/sysv/linux/arm/syscalls.list (recvmsg): Likewise.
	(sendmsg): Likewise.
	* sysdeps/unix/sysv/linux/generic/syscalls.list (recvmsg): Likewise.
	(sendmsg): Likewise.
	* sysdeps/unix/sysv/linux/hppa/syscalls.list (recvmsg): Likewise.
	(sendmsg): Likewise.
	* sysdeps/unix/sysv/linux/ia64/syscalls.list (recvmsg): Likewise.
	(sendmsg): Likewise.
	* sysdeps/unix/sysv/linux/mips/syscalls.list (recvmsg): Likewise.
	(sendmsg): Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list (recvmsg):
	Likewise.
	(sendmsg): Likewise.
	* sysdeps/unix/sysv/linux/x86_64/syscalls.list (recvmsg): Likewise.
	(sendmsg): Likewise.
	* sysdeps/unix/sysv/linux/i386/kernel-features.h
	[__LINUX_KERNEL_VERSION >= 0x040300] (__ASSUME_SENDMSG_SYSCALL):
	Remove.
	[__LINUX_KERNEL_VERSION >= 0x040300] (__ASSUME_RECVMSG_SYSCALL):
	Likewise.
	[__LINUX_KERNEL_VERSION < 0x040300] (__ASSUME_SENDMSG_SYSCALL):
	Undefine.
	[__LINUX_KERNEL_VERSION < 0x040300] (__ASSUME_RECVMSG_SYSCALL):
	Likewise.
	* sysdeps/unix/sysv/linux/kernel-features.h
	(__ASSUME_SENDMSG_SYSCALL): Define.
	(__ASSUME_RECVMSG_SYSCALL): Likewise.
	* sysdeps/unix/sysv/linux/m68k/kernel-features.h
	[__LINUX_KERNEL_VERSION >= 0x040300] (__ASSUME_SENDMSG_SYSCALL):
	Remove.
	[__LINUX_KERNEL_VERSION >= 0x040300] (__ASSUME_RECVMSG_SYSCALL):
	Likewise.
	[__LINUX_KERNEL_VERSION < 0x040300] (__ASSUME_SENDMSG_SYSCALL):
	Undefine.
	[__LINUX_KERNEL_VERSION < 0x040300] (__ASSUME_RECVMSG_SYSCALL):
	Likewise.
	* sysdeps/unix/sysv/linux/s390/kernel-features.h
	[__LINUX_KERNEL_VERSION >= 0x040300] (__ASSUME_SENDMSG_SYSCALL):
	Remove.
	[__LINUX_KERNEL_VERSION >= 0x040300] (__ASSUME_RECVMSG_SYSCALL):
	Likewise.
	[__LINUX_KERNEL_VERSION < 0x040300] (__ASSUME_SENDMSG_SYSCALL):
	Undefine.
	[__LINUX_KERNEL_VERSION < 0x040300] (__ASSUME_RECVMSG_SYSCALL):
	Likewise.
	* sysdeps/unix/sysv/linux/microblaze/kernel-features.h
	(__ASSUME_SENDMSG_SYSCALL): Undefine.
	(__ASSUME_RECVMSG_SYSCALL): Likewise.
	* sysdeps/unix/sysv/linux/powerpc/kernel-features.h
	(__ASSUME_SENDMSG_SYSCALL): Likewise.
	(__ASSUME_RECVMSG_SYSCALL): Likewise.
	* sysdeps/unix/sysv/linux/sh/kernel-features.h
	(__ASSUME_SENDMSG_SYSCALL): Likewise.
	(__ASSUME_RECVMSG_SYSCALL): Likewise.
2016-05-25 17:27:57 -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 071af4769f Consolidate pwrite/pwrite64 implementations
This patch consolidates all the pwrite/pwrite64 implementation for Linux
in only one (sysdeps/unix/sysv/linux/pwrite{64}.c).  It also removes the
syscall from the auto-generation using assembly macros.

For pwrite{64} offset argument placement the new SYSCALL_LL{64} macro
is used.  For pwrite ports that do not define __NR_pwrite will use
__NR_pwrite64 and for pwrite64 ports that dot define __NR_pwrite64 will
use __NR_pwrite for the syscall.

Checked on x86_64, x32, i386, aarch64, and ppc64le.

	* sysdeps/unix/sysv/linux/arm/pwrite.c: Remove file.
	* sysdeps/unix/sysv/linux/arm/pwrite64.c: Likewise.
	* sysdeps/unix/sysv/linux/generic/wordsize-32/pwrite.c: Likewise.
	* sysdeps/unix/sysv/linux/generic/wordsize-32/pwrite64.c: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/pwrite.c: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/pwrite64.c: Likewise.
	* sysdeps/unix/sysv/linux/wordsize-64/pwrite64.c: Likewise.
	* sysdeps/unix/sysv/linux/wordsize-64/syscalls.list (prite): Remove
	syscalls generation.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep.h
	[__NR_pwrite64] (__NR_write): Remove define.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep.h
	[__NR_pwrite64] (__NR_write): Remove define.
	* sysdeps/unix/sysv/linux/pwrite.c [__NR_pwrite64] (__NR_pwrite):
	Remove define.
	(__libc_pwrite): Use SYSCALL_LL macro on offset argument.
	* sysdeps/unix/sysv/linux/pwrite64.c [__NR_pwrite64] (__NR_pwrite):
	Remove define.
	(__libc_pwrite64): Use SYSCALL_LL64 macro on offset argument.
	* sysdeps/unix/sysv/linux/sh/pwrite.c: Rewrite using default
	Linux implementation as base.
	* sysdeps/unix/sysv/linux/sh/pwrite64.c: Likewise.
	* sysdeps/unix/sysv/linux/mips/pwrite.c: Likewise.
	* sysdeps/unix/sysv/linux/mips/pwrite64.c: Likewise.
2016-04-11 10:08:01 -03:00
Adhemerval Zanella 77a4fbd536 Consolidate pread/pread64 implementations
This patch consolidates all the pread/pread64 implementation for Linux
in only one (sysdeps/unix/sysv/linux/pread.c).  It also removes the
syscall from the auto-generation using assembly macros.

For pread{64} offset argument placement the new SYSCALL_LL{64} macro
is used.  For pread ports that do not define __NR_pread will use
__NR_pread64 and for pread64 ports that dot define __NR_pread64 will
use __NR_pread for the syscall.

Checked on x86_64, x32, i386, aarch64, and ppc64le.

	* sysdeps/unix/sysv/linux/arm/pread.c: Remove file.
	* sysdeps/unix/sysv/linux/arm/pread64.c: Likewise.
	* sysdeps/unix/sysv/linux/generic/wordsize-32/pread.c: Likewise.
	* sysdeps/unix/sysv/linux/generic/wordsize-32/pread64.c: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/pread.c: Likewise,
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/pread64.c: Likewise.
	* sysdeps/unix/sysv/linux/wordsize-64/pread64.c: Likewise.
	* sysdeps/unix/sysv/linux/wordsize-64/syscalls.list (pread): Remove
	syscall generation.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep.h
	[__NR_pread64] (__NR_pread): Remove define.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep.h:
	[__NR_pread64] (__NR_pread): Likewise.
	* sysdeps/unix/sysv/linux/pread.c [__NR_pread64] (__NR_pread): Remove
	define.
	(__libc_pread): Use SYSCALL_LL macro on offset argument.
	* sysdeps/unix/sysv/linux/pread64.c [__NR_pread64] (__NR_pread):
	Remove define.
	(__libc_pread64): Use SYSCALL_LL64 macro on offset argument.
	* sysdeps/unix/sysv/linux/sh/pread.c: Rewrite using default
	Linux implementation as base.
	* sysdeps/unix/sysv/linux/sh/pread64.c: Likewise.
	* sysdeps/unix/sysv/linux/mips/pread.c: Likewise.
	* sysdeps/unix/sysv/linux/mips/pread64.c: Likewise.
2016-04-11 10:08:01 -03:00
Adhemerval Zanella 482b2f87a8 Define __ASSUME_ALIGNED_REGISTER_PAIRS for missing ports
This patch defines __ASSUME_ALIGNED_REGISTER_PAIRS for the missing
ports that require 64-bit value (e.g., long long) to be aligned to
an even register pair in argument passing.

No code change is expected, tested with builds for powerpc32,
mips-o32, and armhf.

	* sysdeps/unix/sysv/linux/arm/kernel-features.h
	(__ASSUME_ALIGNED_REGISTER_PAIRS): Define.
	* sysdeps/unix/sysv/linux/mips/kernel-features.h
	[_MIPS_SIM == _ABIO32] (__ASSUME_ALIGNED_REGISTER_PAIRS): Likewise.
	* sysdeps/unix/sysv/linux/powerpc/kernel-features.h
	[!__powerpc64__] (__ASSUME_ALIGNED_REGISTER_PAIRS): Likewise.
2016-04-11 09:15:11 -03:00
Joseph Myers 35ade9f11b Adjust kernel-features.h defaults for socket syscalls.
This patch adjusts the defaults for kernel-features.h macros relating
to availability of accept4, recvmmsg and sendmmsg.  It is not intended
to affect which macros end up getting defined in any configuration.

At present, all architectures with syscalls for those functions need
to define __ASSUME_*_SYSCALL macros; in particular, any new
architecture needs its own kernel-features.h file for that purpose,
though it may not otherwise need such a header.  Those macros are then
used together with __ASSUME_SOCKETCALL to define macros for whether
the functions in question are available.

This patch changes the defaults so that the syscalls are assumed to be
available by default with recent-enough kernels, and it is the
responsibility of architecture headers to undefine the macros if they
are unavailable in supported kernels at least as recent as the version
where the architecture-independent functionality was introduced.  The
__ASSUME_<function> macros are defaulted similarly instead of being
defined based on other macros (defining based on other macros would no
longer work because the #undefs appear after the generic header is
included), so where the syscall being unavailable means the function
is unavailable this means the architecture header has to undefine the
__ASSUME_<function> macro; this only affects __ASSUME_ACCEPT4 for
ia64, as other cases where the syscalls were added late enough to be
relevant with current kernel version requirements are all on
socketcall architectures.

As a consequence, the AArch64 and Nios II kernel-features.h header
files are removed, and others simplified.  When the minimum kernel
version becomes 4.3 or later on all architectures, the syscalls in
question can just be assumed unconditionally, permitting further
simplification.

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

	* sysdeps/unix/sysv/linux/kernel-features.h
	(__ASSUME_ACCEPT4_SYSCALL): Define unconditionally.
	(__ASSUME_ACCEPT4): Likewise.
	[__LINUX_KERNEL_VERSION >= 0x020621] (__ASSUME_RECVMMSG_SYSCALL):
	Define.
	[__LINUX_KERNEL_VERSION >= 0x020621] (__ASSUME_RECVMMSG):
	Likewise.
	[__LINUX_KERNEL_VERSION >= 0x030000] (__ASSUME_SENDMMSG_SYSCALL):
	Likewise.
	[__LINUX_KERNEL_VERSION >= 0x030000] (__ASSUME_SENDMMSG):
	Likewise.
	* sysdeps/unix/sysv/linux/aarch64/kernel-features.h: Remove file.
	* sysdeps/unix/sysv/linux/nios2/kernel-features.h: Likewise.
	* sysdeps/unix/sysv/linux/alpha/kernel-features.h
	(__ASSUME_RECVMMSG_SYSCALL): Do not define.
	(__ASSUME_ACCEPT4_SYSCALL): Likewise.
	(__ASSUME_SENDMMSG_SYSCALL): Likewise.
	* sysdeps/unix/sysv/linux/arm/kernel-features.h
	(__ASSUME_RECVMMSG_SYSCALL): Likewise.
	(__ASSUME_ACCEPT4_SYSCALL): Likewise.
	(__ASSUME_SENDMMSG_SYSCALL): Likewise.
	* sysdeps/unix/sysv/linux/hppa/kernel-features.h
	(__ASSUME_ACCEPT4_SYSCALL): Likewise.
	(__ASSUME_RECVMMSG_SYSCALL): Likewise.
	(__ASSUME_SENDMMSG_SYSCALL): Likewise.
	* sysdeps/unix/sysv/linux/i386/kernel-features.h
	[__LINUX_KERNEL_VERSION >= 0x020621] (__ASSUME_RECVMMSG_SYSCALL):
	Likewise.
	[__LINUX_KERNEL_VERSION >= 0x030000] (__ASSUME_SENDMMSG_SYSCALL):
	Likewise.
	(__ASSUME_ACCEPT4_SYSCALL): Undefine if [__LINUX_KERNEL_VERSION <
	0x040300] instead of defining if [__LINUX_KERNEL_VERSION >=
	0x040300].
	* sysdeps/unix/sysv/linux/ia64/kernel-features.h
	(__ASSUME_RECVMMSG_SYSCALL): Do not define.
	(__ASSUME_SENDMMSG_SYSCALL): Likewise.
	(__ASSUME_ACCEPT4_SYSCALL): Undefine if [__LINUX_KERNEL_VERSION <
	0x030300] instead of defining if [__LINUX_KERNEL_VERSION >=
	0x030300].
	[__LINUX_KERNEL_VERSION < 0x030300] (__ASSUME_ACCEPT4): Undefine.
	* sysdeps/unix/sysv/linux/m68k/kernel-features.h
	(__ASSUME_ACCEPT4_SYSCALL): Undefine if [__LINUX_KERNEL_VERSION <
	0x040300] instead of defining if [__LINUX_KERNEL_VERSION >=
	0x040300].
	(__ASSUME_RECVMMSG_SYSCALL): Likewise.
	(__ASSUME_SENDMMSG_SYSCALL): Likewise.
	* sysdeps/unix/sysv/linux/microblaze/kernel-features.h
	(__ASSUME_ACCEPT4_SYSCALL): Do not define.
	(__ASSUME_RECVMMSG_SYSCALL): Likewise.
	(__ASSUME_SENDMMSG_SYSCALL): Undefine if [__LINUX_KERNEL_VERSION <
	0x030300] instead of defining if [__LINUX_KERNEL_VERSION >=
	0x030300].
	* sysdeps/unix/sysv/linux/mips/kernel-features.h
	(__ASSUME_ACCEPT4_SYSCALL): Do not define.
	(__ASSUME_RECVMMSG_SYSCALL): Likewise.
	(__ASSUME_SENDMMSG_SYSCALL): Likewise.
	* sysdeps/unix/sysv/linux/powerpc/kernel-features.h
	(__ASSUME_ACCEPT4_SYSCALL): Likewise.
	(__ASSUME_RECVMMSG_SYSCALL): Likewise.
	(__ASSUME_SENDMMSG_SYSCALL): Likewise.
	* sysdeps/unix/sysv/linux/s390/kernel-features.h
	(__ASSUME_ACCEPT4_SYSCALL): Undefine if [__LINUX_KERNEL_VERSION <
	0x040300] instead of defining if [__LINUX_KERNEL_VERSION >=
	0x040300].
	(__ASSUME_RECVMMSG_SYSCALL): Likewise.
	(__ASSUME_SENDMMSG_SYSCALL): Likewise.
	* sysdeps/unix/sysv/linux/sh/kernel-features.h
	(__ASSUME_ACCEPT4_SYSCALL): Do not define.
	(__ASSUME_RECVMMSG_SYSCALL): Likewise.
	(__ASSUME_SENDMMSG_SYSCALL): Likewise.
	* sysdeps/unix/sysv/linux/sparc/kernel-features.h
	(__ASSUME_ACCEPT4_SYSCALL): Likewise.
	(__ASSUME_RECVMMSG_SYSCALL): Likewise.
	(__ASSUME_SENDMMSG_SYSCALL): Likewise.
	* sysdeps/unix/sysv/linux/tile/kernel-features.h
	(__ASSUME_ACCEPT4_SYSCALL): Likewise.
	(__ASSUME_RECVMMSG_SYSCALL): Likewise.
	(__ASSUME_SENDMMSG_SYSCALL): Likewise.
	* sysdeps/unix/sysv/linux/x86_64/kernel-features.h
	(__ASSUME_ACCEPT4_SYSCALL): Likewise.
	[__LINUX_KERNEL_VERSION >= 0x020621] (__ASSUME_RECVMMSG_SYSCALL):
	Likewise.
	[__LINUX_KERNEL_VERSION >= 0x030000] (__ASSUME_SENDMMSG_SYSCALL):
	Likewise.
2016-03-15 21:09:33 +00: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
Joseph Myers ad1b6d85ba Remove kernel-features.h conditionals on pre-3.2 kernels.
This patch follows up on the increase in minimum kernel version by
removing conditionals in non-x86, non-x86_64 kernel-features.h headers
that are now constant for all supported kernel versions.

	* sysdeps/unix/sysv/linux/alpha/kernel-features.h
	[__LINUX_KERNEL_VERSION >= 0x020621]: Make code unconditional.
	[__LINUX_KERNEL_VERSION >= 0x030200]: Likewise.
	[__LINUX_KERNEL_VERSION < 0x020621]: Remove conditional code.
	* sysdeps/unix/sysv/linux/arm/kernel-features.h
	[__LINUX_KERNEL_VERSION >= 0x020621]: Make code unconditional.
	[__LINUX_KERNEL_VERSION >= 0x020624]: Likewise.
	[__LINUX_KERNEL_VERSION >= 0x030000]: Likewise.
	* sysdeps/unix/sysv/linux/hppa/kernel-features.h
	[__LINUX_KERNEL_VERSION >= 0x020622]: Likewise.
	[__LINUX_KERNEL_VERSION >= 0x030100]: Likewise.
	[__LINUX_KERNEL_VERSION < 0x020625]: Remove conditional code.
	* sysdeps/unix/sysv/linux/ia64/kernel-features.h
	[__LINUX_KERNEL_VERSION >= 0x020621]: Make code unconditional.
	[__LINUX_KERNEL_VERSION >= 0x030000]: Likewise.
	* sysdeps/unix/sysv/linux/m68k/kernel-features.h
	[__LINUX_KERNEL_VERSION < 0x030000]: Remove conditional code.
	* sysdeps/unix/sysv/linux/microblaze/kernel-features.h
	[__LINUX_KERNEL_VERSION >= 0x020621]: Make code unconditional.
	[__LINUX_KERNEL_VERSION < 0x020621]: Remove conditional code.
	[__LINUX_KERNEL_VERSION < 0x020625]: Likewise.
	* sysdeps/unix/sysv/linux/mips/kernel-features.h
	[__LINUX_KERNEL_VERSION >= 0x020621]: Make code unconditional.
	[__LINUX_KERNEL_VERSION >= 0x030100]: Likewise.
	[_MIPS_SIM == _ABIN32 && __LINUX_KERNEL_VERSION < 0x020623]:
	Remove conditional code.
	* sysdeps/unix/sysv/linux/powerpc/kernel-features.h
	[__LINUX_KERNEL_VERSION >= 0x020625]: Make code unconditional.
	[__LINUX_KERNEL_VERSION >= 0x030000]: Likewise.
	* sysdeps/unix/sysv/linux/sh/kernel-features.h
	[__LINUX_KERNEL_VERSION >= 0x020625]: Likewise.
	[__LINUX_KERNEL_VERSION >= 0x030000]: Likewise.
	[__LINUX_KERNEL_VERSION < 0x020625]: Remove conditional code.
	* sysdeps/unix/sysv/linux/sparc/kernel-features.h
	[__LINUX_KERNEL_VERSION >= 0x020621]: Make code unconditional.
	[__LINUX_KERNEL_VERSION >= 0x030000]: Likewise.
	* sysdeps/unix/sysv/linux/tile/kernel-features.h
	[__LINUX_KERNEL_VERSION >= 0x030000]: Likewise.
2016-02-26 16:17:25 +00:00
Joseph Myers f7a9f785e5 Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
Dmitry V. Levin e0043e17df Fix linux personality syscall wrapper
The personality system call, starting with linux kernel commit
v2.6.29-6609-g11d06b2a1e5658f448a308aa3beb97bacd64a940, always
successfully changes the personality if requested.  The syscall
wrapper, however, still can return an error in the following cases:
- the value returned by the system call looks like an error
due to architecture limitations of 32-bit kernels;
- a personality greater than 0xffffffff is passed to the system call,
and the 64-bit kernel does not have commit
v2.6.35-rc1-372-g485d527686850d68a0e9006dd9904f19f122485e
that would truncate this value to unsigned int;
- on sparc64, the value returned by the system call looks like an error
due to sparc64 kernel sign extension bug.

The solution is three-fold:
- move generic syscalls.list personality entry to generic 64-bit
syscalls.list file;
- for each 32-bit architecture that use negated errno semantics,
add a NOERRNO personality entry to their syscalls.list file;
- for sparc64 and 32-bit architectures that use dedicated registers
to flag syscall errors, add a wrapper around personality syscall;
if the system call return value is flagged as an error, this wrapper
returns the negated "would be errno" value, otherwise it returns
the system call return value; on sparc64, it also truncates the
personality argument to unsigned int before passing it to the kernel.

[BZ #19408]
* sysdeps/unix/sysv/linux/personality.c: New file.
* sysdeps/unix/sysv/linux/sparc/sparc64/personality.c: Likewise.
* sysdeps/unix/sysv/linux/tst-personality.c: Likewise.
* sysdeps/unix/sysv/linux/Makefile [$(subdir) == misc]
(sysdep_routines): Add personality.
(tests): Add tst-personality.
* sysdeps/unix/sysv/linux/syscalls.list (personality): Move ...
* sysdeps/unix/sysv/linux/wordsize-64/syscalls.list: ... here.
* sysdeps/unix/sysv/linux/arm/syscalls.list (personality): New entry.
* sysdeps/unix/sysv/linux/hppa/syscalls.list (personality): Likewise.
* sysdeps/unix/sysv/linux/i386/syscalls.list (personality): Likewise.
* sysdeps/unix/sysv/linux/m68k/syscalls.list (personality): Likewise.
* sysdeps/unix/sysv/linux/microblaze/syscalls.list (personality):
Likewise.
* sysdeps/unix/sysv/linux/mips/mips64/n32/syscalls.list (personality):
Likewise.
* sysdeps/unix/sysv/linux/s390/s390-32/syscalls.list (personality):
Likewise.
* sysdeps/unix/sysv/linux/sh/syscalls.list (personality): Likewise.
* sysdeps/unix/sysv/linux/x86_64/x32/syscalls.list (personality):
Likewise.
2015-12-31 00:17:48 +00:00
Aurelien Jarno cc42170ef6 Cleanup ARM ioperm implementation (step 2)
Since GLIBC requires a minimum 2.6.32 kernel, the sysctl (CTL_BUS,
CTL_BUS_ISA, ISA_*) is always available.  We can therefore remove the
fallback code reading /etc/arm_systype or parsing /proc/cpuinfo.

Remove fscanf from localplt.data as it is no longer called from within
GLIBC.

	* sysdeps/unix/sysv/linux/arm/ioperm.c: Do not include <string.h>.
	(PATH_ARM_SYSTYPE): Remove.
	(PATH_CPUINFO): Likewise.
	(IO_BASE_FOOTBRIDGE): Likewise.
	(IO_SHIFT_FOOTBRIDGE): Likewise.
	(struct platform): Likewise.
	(init_iosys): Remove compatibility code for 2.4 kernels.
	* sysdeps/unix/sysv/linux/arm/localplt.data: Remove fscanf.
2015-12-30 23:31:18 +01:00
Aurelien Jarno 5db0877750 Cleanup ARM ioperm implementation
Since GLIBC requires a minimum 2.6.32 kernel, the patch cleanups
the ARM ioperm by removing pre-2.4.23 kernel support.
2015-12-12 11:52:06 +01: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
Wilco Dijkstra 755f6e0ad5 Remove __signbit* from localplt.data as they are no longer called from within GLIBC.
* sysdeps/unix/sysv/linux/aarch64/localplt.data: Remove __signbit*.
	* sysdeps/unix/sysv/linux/arm/localplt.data: Likewise.
	* sysdeps/unix/sysv/linux/microblaze/localplt.data: Likewise.
	* sysdeps/unix/sysv/linux/nios2/localplt.data: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/localplt.data: Likewise.
2015-11-10 11:15:43 +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
Joseph Myers bd2260a206 Convert 231 sysdeps function definitions to prototype style.
This mostly automatically-generated patch converts 231 sysdeps
function definitions in glibc from old-style K&R to prototype-style.

For __aio_sigqueue and __gai_sigqueue I had to add internal_function
to the definitions as noted by Florian in
<https://sourceware.org/ml/libc-alpha/2015-10/msg00595.html> to keep
the functions compiling on x86 after conversion to prototype
definitions.  Otherwise, the patch is automatically generated with all
the same exclusions and caveats as in
<https://sourceware.org/ml/libc-alpha/2015-10/msg00594.html> except
that it's a patch for sysdeps files.

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

	* sysdeps/arm/backtrace.c (__backtrace): Convert to
	prototype-style function definition.
	* sysdeps/i386/backtrace.c (__backtrace): Likewise.
	* sysdeps/i386/ffs.c (__ffs): Likewise.
	* sysdeps/i386/i686/ffs.c (__ffs): Likewise.
	* sysdeps/ia64/nptl/pthread_spin_lock.c (pthread_spin_lock):
	Likewise.
	* sysdeps/ia64/nptl/pthread_spin_trylock.c (pthread_spin_trylock):
	Likewise.
	* sysdeps/ieee754/ldbl-128/e_log2l.c (__ieee754_log2l): Likewise.
	* sysdeps/ieee754/ldbl-128ibm/e_log2l.c (__ieee754_log2l):
	Likewise.
	* sysdeps/m68k/ffs.c (__ffs): Likewise.
	* sysdeps/m68k/m680x0/fpu/e_acos.c (FUNC): Likewise.
	* sysdeps/m68k/m680x0/fpu/e_fmod.c (FUNC): Likewise.
	* sysdeps/mach/adjtime.c (__adjtime): Likewise.
	* sysdeps/mach/gettimeofday.c (__gettimeofday): Likewise.
	* sysdeps/mach/hurd/_exit.c (_exit): Likewise.
	* sysdeps/mach/hurd/access.c (__access): Likewise.
	* sysdeps/mach/hurd/adjtime.c (__adjtime): Likewise.
	* sysdeps/mach/hurd/chdir.c (__chdir): Likewise.
	* sysdeps/mach/hurd/chmod.c (__chmod): Likewise.
	* sysdeps/mach/hurd/chown.c (__chown): Likewise.
	* sysdeps/mach/hurd/cthreads.c (cthread_keycreate): Likewise.
	(cthread_getspecific): Likewise.
	(cthread_setspecific): Likewise.
	(__libc_getspecific): Likewise.
	* sysdeps/mach/hurd/euidaccess.c (__euidaccess): Likewise.
	* sysdeps/mach/hurd/faccessat.c (faccessat): Likewise.
	* sysdeps/mach/hurd/fchdir.c (__fchdir): Likewise.
	* sysdeps/mach/hurd/fchmod.c (__fchmod): Likewise.
	* sysdeps/mach/hurd/fchmodat.c (fchmodat): Likewise.
	* sysdeps/mach/hurd/fchown.c (__fchown): Likewise.
	* sysdeps/mach/hurd/fchownat.c (fchownat): Likewise.
	* sysdeps/mach/hurd/flock.c (__flock): Likewise.
	* sysdeps/mach/hurd/fsync.c (fsync): Likewise.
	* sysdeps/mach/hurd/ftruncate.c (__ftruncate): Likewise.
	* sysdeps/mach/hurd/getgroups.c (__getgroups): Likewise.
	* sysdeps/mach/hurd/gethostname.c (__gethostname): Likewise.
	* sysdeps/mach/hurd/getitimer.c (__getitimer): Likewise.
	* sysdeps/mach/hurd/getlogin_r.c (__getlogin_r): Likewise.
	* sysdeps/mach/hurd/getpgid.c (__getpgid): Likewise.
	* sysdeps/mach/hurd/getrusage.c (__getrusage): Likewise.
	* sysdeps/mach/hurd/getsockname.c (__getsockname): Likewise.
	* sysdeps/mach/hurd/group_member.c (__group_member): Likewise.
	* sysdeps/mach/hurd/isatty.c (__isatty): Likewise.
	* sysdeps/mach/hurd/lchown.c (__lchown): Likewise.
	* sysdeps/mach/hurd/link.c (__link): Likewise.
	* sysdeps/mach/hurd/linkat.c (linkat): Likewise.
	* sysdeps/mach/hurd/listen.c (__listen): Likewise.
	* sysdeps/mach/hurd/mkdir.c (__mkdir): Likewise.
	* sysdeps/mach/hurd/mkdirat.c (mkdirat): Likewise.
	* sysdeps/mach/hurd/openat.c (__openat): Likewise.
	* sysdeps/mach/hurd/poll.c (__poll): Likewise.
	* sysdeps/mach/hurd/readlink.c (__readlink): Likewise.
	* sysdeps/mach/hurd/readlinkat.c (readlinkat): Likewise.
	* sysdeps/mach/hurd/recv.c (__recv): Likewise.
	* sysdeps/mach/hurd/rename.c (rename): Likewise.
	* sysdeps/mach/hurd/renameat.c (renameat): Likewise.
	* sysdeps/mach/hurd/revoke.c (revoke): Likewise.
	* sysdeps/mach/hurd/rewinddir.c (__rewinddir): Likewise.
	* sysdeps/mach/hurd/rmdir.c (__rmdir): Likewise.
	* sysdeps/mach/hurd/seekdir.c (seekdir): Likewise.
	* sysdeps/mach/hurd/send.c (__send): Likewise.
	* sysdeps/mach/hurd/setdomain.c (setdomainname): Likewise.
	* sysdeps/mach/hurd/setegid.c (setegid): Likewise.
	* sysdeps/mach/hurd/seteuid.c (seteuid): Likewise.
	* sysdeps/mach/hurd/setgid.c (__setgid): Likewise.
	* sysdeps/mach/hurd/setgroups.c (setgroups): Likewise.
	* sysdeps/mach/hurd/sethostid.c (sethostid): Likewise.
	* sysdeps/mach/hurd/sethostname.c (sethostname): Likewise.
	* sysdeps/mach/hurd/setlogin.c (setlogin): Likewise.
	* sysdeps/mach/hurd/setpgid.c (__setpgid): Likewise.
	* sysdeps/mach/hurd/setregid.c (__setregid): Likewise.
	* sysdeps/mach/hurd/setreuid.c (__setreuid): Likewise.
	* sysdeps/mach/hurd/settimeofday.c (__settimeofday): Likewise.
	* sysdeps/mach/hurd/setuid.c (__setuid): Likewise.
	* sysdeps/mach/hurd/shutdown.c (shutdown): Likewise.
	* sysdeps/mach/hurd/sigaction.c (__sigaction): Likewise.
	* sysdeps/mach/hurd/sigaltstack.c (__sigaltstack): Likewise.
	* sysdeps/mach/hurd/sigpending.c (sigpending): Likewise.
	* sysdeps/mach/hurd/sigprocmask.c (__sigprocmask): Likewise.
	* sysdeps/mach/hurd/sigsuspend.c (__sigsuspend): Likewise.
	* sysdeps/mach/hurd/socket.c (__socket): Likewise.
	* sysdeps/mach/hurd/symlink.c (__symlink): Likewise.
	* sysdeps/mach/hurd/symlinkat.c (symlinkat): Likewise.
	* sysdeps/mach/hurd/telldir.c (telldir): Likewise.
	* sysdeps/mach/hurd/truncate.c (__truncate): Likewise.
	* sysdeps/mach/hurd/umask.c (__umask): Likewise.
	* sysdeps/mach/hurd/unlink.c (__unlink): Likewise.
	* sysdeps/mach/hurd/unlinkat.c (unlinkat): Likewise.
	* sysdeps/mips/mips64/__longjmp.c (__longjmp): Likewise.
	* sysdeps/posix/alarm.c (alarm): Likewise.
	* sysdeps/posix/cuserid.c (cuserid): Likewise.
	* sysdeps/posix/dirfd.c (dirfd): Likewise.
	* sysdeps/posix/dup.c (__dup): Likewise.
	* sysdeps/posix/dup2.c (__dup2): Likewise.
	* sysdeps/posix/euidaccess.c (euidaccess): Likewise.
	(main): Likewise.
	* sysdeps/posix/flock.c (__flock): Likewise.
	* sysdeps/posix/fpathconf.c (__fpathconf): Likewise.
	* sysdeps/posix/getcwd.c (__getcwd): Likewise.
	* sysdeps/posix/gethostname.c (__gethostname): Likewise.
	* sysdeps/posix/gettimeofday.c (__gettimeofday): Likewise.
	* sysdeps/posix/isatty.c (__isatty): Likewise.
	* sysdeps/posix/killpg.c (killpg): Likewise.
	* sysdeps/posix/libc_fatal.c (__libc_fatal): Likewise.
	* sysdeps/posix/mkfifoat.c (mkfifoat): Likewise.
	* sysdeps/posix/raise.c (raise): Likewise.
	* sysdeps/posix/remove.c (remove): Likewise.
	* sysdeps/posix/rename.c (rename): Likewise.
	* sysdeps/posix/rewinddir.c (__rewinddir): Likewise.
	* sysdeps/posix/seekdir.c (seekdir): Likewise.
	* sysdeps/posix/sigblock.c (__sigblock): Likewise.
	* sysdeps/posix/sigignore.c (sigignore): Likewise.
	* sysdeps/posix/sigintr.c (siginterrupt): Likewise.
	* sysdeps/posix/signal.c (__bsd_signal): Likewise.
	* sysdeps/posix/sigset.c (sigset): Likewise.
	* sysdeps/posix/sigsuspend.c (__sigsuspend): Likewise.
	* sysdeps/posix/sysconf.c (__sysconf): Likewise.
	* sysdeps/posix/sysv_signal.c (__sysv_signal): Likewise.
	* sysdeps/posix/time.c (time): Likewise.
	* sysdeps/posix/ttyname.c (getttyname): Likewise.
	(ttyname): Likewise.
	* sysdeps/posix/ttyname_r.c (__ttyname_r): Likewise.
	* sysdeps/posix/utime.c (utime): Likewise.
	* sysdeps/powerpc/fpu/s_isnan.c (__isnan): Likewise.
	* sysdeps/powerpc/nptl/pthread_spin_lock.c (pthread_spin_lock):
	Likewise.
	* sysdeps/powerpc/nptl/pthread_spin_trylock.c
	(pthread_spin_trylock): Likewise.
	* sysdeps/pthread/aio_error.c (aio_error): Likewise.
	* sysdeps/pthread/aio_read.c (aio_read): Likewise.
	* sysdeps/pthread/aio_read64.c (aio_read64): Likewise.
	* sysdeps/pthread/aio_write.c (aio_write): Likewise.
	* sysdeps/pthread/aio_write64.c (aio_write64): Likewise.
	* sysdeps/pthread/flockfile.c (__flockfile): Likewise.
	* sysdeps/pthread/ftrylockfile.c (__ftrylockfile): Likewise.
	* sysdeps/pthread/funlockfile.c (__funlockfile): Likewise.
	* sysdeps/pthread/timer_create.c (timer_create): Likewise.
	* sysdeps/pthread/timer_getoverr.c (timer_getoverrun): Likewise.
	* sysdeps/pthread/timer_gettime.c (timer_gettime): Likewise.
	* sysdeps/s390/ffs.c (__ffs): Likewise.
	* sysdeps/s390/nptl/pthread_spin_lock.c (pthread_spin_lock):
	Likewise.
	* sysdeps/s390/nptl/pthread_spin_trylock.c (pthread_spin_trylock):
	Likewise.
	* sysdeps/sh/nptl/pthread_spin_lock.c (pthread_spin_lock):
	Likewise.
	* sysdeps/sparc/nptl/pthread_barrier_destroy.c
	(pthread_barrier_destroy): Likewise.
	* sysdeps/sparc/nptl/pthread_barrier_wait.c
	(__pthread_barrier_wait): Likewise.
	* sysdeps/sparc/sparc32/e_sqrt.c (__ieee754_sqrt): Likewise.
	* sysdeps/sparc/sparc32/pthread_barrier_wait.c
	(__pthread_barrier_wait): Likewise.
	* sysdeps/sparc/sparc32/sem_init.c (__old_sem_init): Likewise.
	* sysdeps/tile/memcmp.c (memcmp_common_alignment): Likewise.
	(memcmp_not_common_alignment): Likewise.
	(MEMCMP): Likewise.
	* sysdeps/tile/wordcopy.c (_wordcopy_fwd_aligned): Likewise.
	(_wordcopy_fwd_dest_aligned): Likewise.
	(_wordcopy_bwd_aligned): Likewise.
	(_wordcopy_bwd_dest_aligned): Likewise.
	* sysdeps/unix/bsd/ftime.c (ftime): Likewise.
	* sysdeps/unix/bsd/gtty.c (gtty): Likewise.
	* sysdeps/unix/bsd/stty.c (stty): Likewise.
	* sysdeps/unix/bsd/tcflow.c (tcflow): Likewise.
	* sysdeps/unix/bsd/tcflush.c (tcflush): Likewise.
	* sysdeps/unix/bsd/tcgetattr.c (__tcgetattr): Likewise.
	* sysdeps/unix/bsd/tcgetpgrp.c (tcgetpgrp): Likewise.
	* sysdeps/unix/bsd/tcsendbrk.c (tcsendbreak): Likewise.
	* sysdeps/unix/bsd/tcsetattr.c (tcsetattr): Likewise.
	* sysdeps/unix/bsd/tcsetpgrp.c (tcsetpgrp): Likewise.
	* sysdeps/unix/bsd/ualarm.c (ualarm): Likewise.
	* sysdeps/unix/bsd/wait3.c (__wait3): Likewise.
	* sysdeps/unix/getlogin_r.c (__getlogin_r): Likewise.
	* sysdeps/unix/sockatmark.c (sockatmark): Likewise.
	* sysdeps/unix/stime.c (stime): Likewise.
	* sysdeps/unix/sysv/linux/_exit.c (_exit): Likewise.
	* sysdeps/unix/sysv/linux/aio_sigqueue.c (__aio_sigqueue):
	Likewise.  Use internal_function.
	* sysdeps/unix/sysv/linux/arm/sigaction.c (__libc_sigaction):
	Convert to prototype-style function definition.
	* sysdeps/unix/sysv/linux/faccessat.c (faccessat): Likewise.
	* sysdeps/unix/sysv/linux/fchmodat.c (fchmodat): Likewise.
	* sysdeps/unix/sysv/linux/fpathconf.c (__fpathconf): Likewise.
	* sysdeps/unix/sysv/linux/gai_sigqueue.c (__gai_sigqueue):
	Likewise.  Use internal_function.
	* sysdeps/unix/sysv/linux/gethostid.c (sethostid): Convert to
	prototype-style function definition
	* sysdeps/unix/sysv/linux/getlogin_r.c (__getlogin_r_loginuid):
	Likewise.
	(__getlogin_r): Likewise.
	* sysdeps/unix/sysv/linux/getpt.c (__posix_openpt): Likewise.
	* sysdeps/unix/sysv/linux/hppa/pthread_cond_broadcast.c
	(__pthread_cond_broadcast): Likewise.
	* sysdeps/unix/sysv/linux/hppa/pthread_cond_destroy.c
	(__pthread_cond_destroy): Likewise.
	* sysdeps/unix/sysv/linux/hppa/pthread_cond_init.c
	(__pthread_cond_init): Likewise.
	* sysdeps/unix/sysv/linux/hppa/pthread_cond_signal.c
	(__pthread_cond_signal): Likewise.
	* sysdeps/unix/sysv/linux/hppa/pthread_cond_wait.c
	(__pthread_cond_wait): Likewise.
	* sysdeps/unix/sysv/linux/i386/getmsg.c (getmsg): Likewise.
	* sysdeps/unix/sysv/linux/i386/setegid.c (setegid): Likewise.
	* sysdeps/unix/sysv/linux/ia64/sigaction.c (__libc_sigaction):
	Likewise.
	* sysdeps/unix/sysv/linux/ia64/sigpending.c (sigpending):
	Likewise.
	* sysdeps/unix/sysv/linux/ia64/sigprocmask.c (__sigprocmask):
	Likewise.
	* sysdeps/unix/sysv/linux/mips/sigaction.c (__libc_sigaction):
	Likewise.
	* sysdeps/unix/sysv/linux/msgget.c (msgget): Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/ftruncate64.c
	(__ftruncate64): Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/truncate64.c
	(truncate64): Likewise.
	* sysdeps/unix/sysv/linux/pt-raise.c (raise): Likewise.
	* sysdeps/unix/sysv/linux/pthread_getcpuclockid.c
	(pthread_getcpuclockid): Likewise.
	* sysdeps/unix/sysv/linux/pthread_getname.c (pthread_getname_np):
	Likewise.
	* sysdeps/unix/sysv/linux/pthread_setname.c (pthread_setname_np):
	Likewise.
	* sysdeps/unix/sysv/linux/pthread_sigmask.c (pthread_sigmask):
	Likewise.
	* sysdeps/unix/sysv/linux/pthread_sigqueue.c (pthread_sigqueue):
	Likewise.
	* sysdeps/unix/sysv/linux/raise.c (raise): Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-64/sigaction.c
	(__libc_sigaction): Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-64/sigpending.c (sigpending):
	Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-64/sigprocmask.c
	(__sigprocmask): Likewise.
	* sysdeps/unix/sysv/linux/semget.c (semget): Likewise.
	* sysdeps/unix/sysv/linux/semop.c (semop): Likewise.
	* sysdeps/unix/sysv/linux/setrlimit64.c (setrlimit64): Likewise.
	* sysdeps/unix/sysv/linux/shmat.c (shmat): Likewise.
	* sysdeps/unix/sysv/linux/shmdt.c (shmdt): Likewise.
	* sysdeps/unix/sysv/linux/shmget.c (shmget): Likewise.
	* sysdeps/unix/sysv/linux/sigaction.c (__libc_sigaction):
	Likewise.
	* sysdeps/unix/sysv/linux/sigpending.c (sigpending): Likewise.
	* sysdeps/unix/sysv/linux/sigprocmask.c (__sigprocmask): Likewise.
	* sysdeps/unix/sysv/linux/sigqueue.c (__sigqueue): Likewise.
	* sysdeps/unix/sysv/linux/sigstack.c (sigstack): Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/sigpending.c (sigpending):
	Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/sigprocmask.c
	(__sigprocmask): Likewise.
	* sysdeps/unix/sysv/linux/speed.c (cfgetospeed): Likewise.
	(cfgetispeed): Likewise.
	(cfsetospeed): Likewise.
	(cfsetispeed): Likewise.
	* sysdeps/unix/sysv/linux/tcflow.c (tcflow): Likewise.
	* sysdeps/unix/sysv/linux/tcflush.c (tcflush): Likewise.
	* sysdeps/unix/sysv/linux/tcgetattr.c (__tcgetattr): Likewise.
	* sysdeps/unix/sysv/linux/tcsetattr.c (tcsetattr): Likewise.
	* sysdeps/unix/sysv/linux/time.c (time): Likewise.
	* sysdeps/unix/sysv/linux/timer_create.c (timer_create): Likewise.
	* sysdeps/unix/sysv/linux/timer_delete.c (timer_delete): Likewise.
	* sysdeps/unix/sysv/linux/timer_getoverr.c (timer_getoverrun):
	Likewise.
	* sysdeps/unix/sysv/linux/timer_gettime.c (timer_gettime):
	Likewise.
	* sysdeps/unix/sysv/linux/x86_64/sigpending.c (sigpending):
	Likewise.
	* sysdeps/unix/sysv/linux/x86_64/sigprocmask.c (__sigprocmask):
	Likewise.
	* sysdeps/x86_64/backtrace.c (__backtrace): Likewise.
2015-10-19 12:04:33 +00:00
H.J. Lu fb1cf10811 Add INLINE_SYSCALL_ERROR_RETURN_VALUE
For ia32 PIC, the first thing of many syscalls does is to call
__x86.get_pc_thunk.reg to load PC into reg in case there is an error,
which is required for setting errno.  In most cases, there are no
errors.  But we still call __x86.get_pc_thunk.reg.  This patch adds
INLINE_SYSCALL_ERROR_RETURN_VALUE so that i386 can optimize setting
errno by branching to the internal __syscall_error without PLT.

With i386 INLINE_SYSCALL_ERROR_RETURN_VALUE and i386 syscall inlining
optimization for GCC 5, for sysdeps/unix/sysv/linux/fchmodat.c with
-O2 -march=i686 -mtune=generic, GCC 5.2 now generates:

<fchmodat>:
   0:	push   %ebx
   1:	mov    0x14(%esp),%eax
   5:	mov    0x8(%esp),%ebx
   9:	mov    0xc(%esp),%ecx
   d:	mov    0x10(%esp),%edx
  11:	test   $0xfffffeff,%eax
  16:	jne    38 <fchmodat+0x38>
  18:	test   $0x1,%ah
  1b:	jne    48 <fchmodat+0x48>
  1d:	mov    $0x132,%eax
  22:	call   *%gs:0x10
  29:	cmp    $0xfffff000,%eax
  2e:	ja     58 <fchmodat+0x58>
  30:	pop    %ebx
  31:	ret
  32:	lea    0x0(%esi),%esi
  38:	pop    %ebx
  39:	mov    $0xffffffea,%eax
  3e:	jmp    3f <fchmodat+0x3f>	3f: R_386_PC32	__syscall_error
  43:	nop
  44:	lea    0x0(%esi,%eiz,1),%esi
  48:	pop    %ebx
  49:	mov    $0xffffffa1,%eax
  4e:	jmp    4f <fchmodat+0x4f>	4f: R_386_PC32	__syscall_error
  53:	nop
  54:	lea    0x0(%esi,%eiz,1),%esi
  58:	pop    %ebx
  59:	jmp    5a <fchmodat+0x5a>	5a: R_386_PC32	__syscall_error

instead of

<fchmodat>:
   0:	sub    $0x8,%esp
   3:	mov    0x18(%esp),%eax
   7:	mov    %ebx,(%esp)
   a:	call   b <fchmodat+0xb>	b: R_386_PC32	__x86.get_pc_thunk.bx
   f:	add    $0x2,%ebx	11: R_386_GOTPC	_GLOBAL_OFFSET_TABLE_
  15:	mov    %edi,0x4(%esp)
  19:	test   $0xfffffeff,%eax
  1e:	jne    70 <fchmodat+0x70>
  20:	test   $0x1,%ah
  23:	jne    88 <fchmodat+0x88>
  25:	mov    0x14(%esp),%edx
  29:	mov    0x10(%esp),%ecx
  2d:	mov    0xc(%esp),%edi
  31:	xchg   %ebx,%edi
  33:	mov    $0x132,%eax
  38:	call   *%gs:0x10
  3f:	xchg   %edi,%ebx
  41:	cmp    $0xfffff000,%eax
  46:	ja     58 <fchmodat+0x58>
  48:	mov    (%esp),%ebx
  4b:	mov    0x4(%esp),%edi
  4f:	add    $0x8,%esp
  52:	ret
  53:	nop
  54:	lea    0x0(%esi,%eiz,1),%esi
  58:	mov    0x0(%ebx),%edx	5a: R_386_TLS_GOTIE	__libc_errno
  5e:	neg    %eax
  60:	mov    %eax,%gs:(%edx)
  63:	mov    $0xffffffff,%eax
  68:	jmp    48 <fchmodat+0x48>
  6a:	lea    0x0(%esi),%esi
  70:	mov    0x0(%ebx),%eax	72: R_386_TLS_GOTIE	__libc_errno
  76:	movl   $0x16,%gs:(%eax)
  7d:	mov    $0xffffffff,%eax
  82:	jmp    48 <fchmodat+0x48>
  84:	lea    0x0(%esi,%eiz,1),%esi
  88:	mov    0x0(%ebx),%eax	8a: R_386_TLS_GOTIE	__libc_errno
  8e:	movl   $0x5f,%gs:(%eax)
  95:	mov    $0xffffffff,%eax
  9a:	jmp    48 <fchmodat+0x48>

	* sysdeps/unix/sysv/linux/sysdep.h: New file.
	* sysdeps/unix/sysv/linux/i386/sysdep.c: Likewise.
	* sysdeps/unix/sysv/linux/alpha/sysdep.h: Include
	<sysdeps/unix/sysv/linux/sysdep.h>.
	* sysdeps/unix/sysv/linux/arm/sysdep.h: Likewise.
	* sysdeps/unix/sysv/linux/generic/sysdep.h: Likewise.
	* sysdeps/unix/sysv/linux/hppa/sysdep.h: Likewise.
	* sysdeps/unix/sysv/linux/ia64/sysdep.h: Likewise.
	* sysdeps/unix/sysv/linux/m68k/sysdep.h: Likewise.
	* sysdeps/unix/sysv/linux/microblaze/sysdep.h: Likewise.
	* sysdeps/unix/sysv/linux/mips/mips32/sysdep.h: Likewise.
	* sysdeps/unix/sysv/linux/mips/mips64/n32/sysdep.h: Likewise.
	* sysdeps/unix/sysv/linux/mips/mips64/n64/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/sysdep.h: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/sysdep.h: Likewise.
	* sysdeps/unix/sysv/linux/i386/Makefile [$(subdir) == csu]
	(sysdep-dl-routines): Add sysdep.
	[$(subdir) == nptl] (libpthread-routines): Likewise.
	[$(subdir) == rt] (librt-routines): Likewise.
	* sysdeps/unix/sysv/linux/i386/clone.S (__clone): Don't check
	PIC when branching to SYSCALL_ERROR_LABEL.
	* sysdeps/unix/sysv/linux/i386/sysdep.S: Removed.
	* sysdeps/unix/sysv/linux/i386/sysdep.h: Include
	<sysdeps/unix/sysv/linux/sysdep.h>.
	(SYSCALL_ERROR_LABEL): Changed to __syscall_error.
	(SYSCALL_ERROR_ERRNO): Removed.
	(SYSCALL_ERROR_HANDLER): Changed to empty.
	(SYSCALL_ERROR_HANDLER_TLS_STORE): Likewise.
	(__syscall_error): New prototype.
	[IS_IN (libc)] (INLINE_SYSCALL): New macro.
	(INLINE_SYSCALL_ERROR_RETURN_VALUE): Likewise.
2015-10-13 11:59:15 -07:00
Joseph Myers de071d199a Move bits/atomic.h to atomic-machine.h (bug 14912).
It was noted in
<https://sourceware.org/ml/libc-alpha/2012-09/msg00305.html> that the
bits/*.h naming scheme should only be used for installed headers.
This patch renames bits/atomic.h to atomic-machine.h to follow that
convention.

This is the only change in this series that needs to change the
filename rather than simply removing a directory level (because both
atomic.h and bits/atomic.h exist at present).

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

	[BZ #14912]
	* sysdeps/aarch64/bits/atomic.h: Move to ...
	* sysdeps/aarch64/atomic-machine.h: ...here.
	(_AARCH64_BITS_ATOMIC_H): Rename macro to
	_AARCH64_ATOMIC_MACHINE_H.
	* sysdeps/alpha/bits/atomic.h: Move to ...
	* sysdeps/alpha/atomic-machine.h: ...here.
	* sysdeps/arm/bits/atomic.h: Move to ...
	* sysdeps/arm/atomic-machine.h: ...here.  Update comments.
	* bits/atomic.h: Move to ...
	* sysdeps/generic/atomic-machine.h: ...here.
	(_BITS_ATOMIC_H): Rename macro to _ATOMIC_MACHINE_H.
	* sysdeps/i386/bits/atomic.h: Move to ...
	* sysdeps/i386/atomic-machine.h: ...here.
	* sysdeps/ia64/bits/atomic.h: Move to ...
	* sysdeps/ia64/atomic-machine.h: ...here.
	* sysdeps/m68k/coldfire/bits/atomic.h: Move to ...
	* sysdeps/m68k/coldfire/atomic-machine.h: ...here.
	(_BITS_ATOMIC_H): Rename macro to _ATOMIC_MACHINE_H.
	* sysdeps/m68k/m680x0/m68020/bits/atomic.h: Move to ...
	* sysdeps/m68k/m680x0/m68020/atomic-machine.h: ...here.
	* sysdeps/microblaze/bits/atomic.h: Move to ...
	* sysdeps/microblaze/atomic-machine.h: ...here.
	* sysdeps/mips/bits/atomic.h: Move to ...
	* sysdeps/mips/atomic-machine.h: ...here.
	(_MIPS_BITS_ATOMIC_H): Rename macro to _MIPS_ATOMIC_MACHINE_H.
	* sysdeps/powerpc/bits/atomic.h: Move to ...
	* sysdeps/powerpc/atomic-machine.h: ...here.  Update comments.
	* sysdeps/powerpc/powerpc32/bits/atomic.h: Move to ...
	* sysdeps/powerpc/powerpc32/atomic-machine.h: ...here.  Update
	comments.  Include <atomic-machine.h> instead of <bits/atomic.h>.
	* sysdeps/powerpc/powerpc64/bits/atomic.h: Move to ...
	* sysdeps/powerpc/powerpc64/atomic-machine.h: ...here.  Include
	<atomic-machine.h> instead of <bits/atomic.h>.
	* sysdeps/s390/bits/atomic.h: Move to ...
	* sysdeps/s390/atomic-machine.h: ...here.
	* sysdeps/sparc/sparc32/bits/atomic.h: Move to ...
	* sysdeps/sparc/sparc32/atomic-machine.h: ...here.
	(_BITS_ATOMIC_H): Rename macro to _ATOMIC_MACHINE_H.
	* sysdeps/sparc/sparc32/sparcv9/bits/atomic.h: Move to ...
	* sysdeps/sparc/sparc32/sparcv9/atomic-machine.h: ...here.
	* sysdeps/sparc/sparc64/bits/atomic.h: Move to ...
	* sysdeps/sparc/sparc64/atomic-machine.h: ...here.
	* sysdeps/tile/bits/atomic.h: Move to ...
	* sysdeps/tile/atomic-machine.h: ...here.
	* sysdeps/tile/tilegx/bits/atomic.h: Move to ...
	* sysdeps/tile/tilegx/atomic-machine.h: ...here.  Include
	<sysdeps/tile/atomic-machine.h> instead of
	<sysdeps/tile/bits/atomic.h>.
	(_BITS_ATOMIC_H): Rename macro to _ATOMIC_MACHINE_H.
	* sysdeps/tile/tilepro/bits/atomic.h: Move to ...
	* sysdeps/tile/tilepro/atomic-machine.h: ...here.  Include
	<sysdeps/tile/atomic-machine.h> instead of
	<sysdeps/tile/bits/atomic.h>.
	(_BITS_ATOMIC_H): Rename macro to _ATOMIC_MACHINE_H.
	* sysdeps/unix/sysv/linux/arm/bits/atomic.h: Move to ...
	* sysdeps/unix/sysv/linux/arm/atomic-machine.h: ...here.  Include
	<sysdeps/arm/atomic-machine.h> instead of
	<sysdeps/arm/bits/atomic.h>.
	* sysdeps/unix/sysv/linux/hppa/bits/atomic.h: Move to ...
	* sysdeps/unix/sysv/linux/hppa/atomic-machine.h: ...here.
	(_BITS_ATOMIC_H): Rename macro to _ATOMIC_MACHINE_H.
	* sysdeps/unix/sysv/linux/m68k/coldfire/bits/atomic.h: Move to ...
	* sysdeps/unix/sysv/linux/m68k/coldfire/atomic-machine.h: ...here.
	(_BITS_ATOMIC_H): Rename macro to _ATOMIC_MACHINE_H.
	* sysdeps/unix/sysv/linux/nios2/bits/atomic.h: Move to ...
	* sysdeps/unix/sysv/linux/nios2/atomic-machine.h: ...here.
	(_NIOS2_BITS_ATOMIC_H): Rename macro to _NIOS2_ATOMIC_MACHINE_H.
	* sysdeps/unix/sysv/linux/sh/bits/atomic.h: Move to ...
	* sysdeps/unix/sysv/linux/sh/atomic-machine.h: ...here.
	* sysdeps/x86_64/bits/atomic.h: Move to ...
	* sysdeps/x86_64/atomic-machine.h: ...here.
	* include/atomic.h: Include <atomic-machine.h> instead of
	<bits/atomic.h>.
2015-09-11 20:00:19 +00:00
Adhemerval Zanella 2aa6c8af26 arm: Assembly implementation cleanup
This patch removes arm assembly implementation of mmap and mmap64.
The new implementation used is the wordsize-32 generic linux one.

Tested on armhf.
2015-08-05 10:41:03 -03: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 c6bb095eb5 nptl: Rewrite cancellation macros
This patch changes the way cancellation entrypoints are defined to
instead call the macro SYSCALL_CANCEL.  An usual cnacellation definition
is defined as:

  if (SINGLE_THREAD_P)
    return INLINE_SYSCALL (syscall, NARGS, args...)

  int oldtype = LIBC_CANCEL_ASYNC ();

  return INLINE_SYSCALL (syscall, NARGS, args...)

  LIBC_CANCEL_RESET (oldtype);

And it is rewrited as just:

  SYSCALL_CANCEL (syscall, args...)

The idea is to remove LIBC_CANCEL_ASYNC/LIBC_CANCEL_RESET explicit
usage.

Tested on i386, x86_64, powerpc32, powerpc64le, arm, and aarch64.

	* sysdeps/unix/sysdep.h [SYSCALL_CANCEL]: New macro: define
	cancellable syscalls.
	(SYS_ify): Add guard to no redefine it.
	(INLINE_SYSCALL): Likewise.
	* sysdeps/unix/sysv/linux/accept4.c (accept4): Remove
	LIBC_CANCEL_ASYNC/INLINE_SYSCALL/LIBC_CANCEL_RESET and use
	SYSCALL_CANCEL instead.
	* sysdeps/unix/sysv/linux/alpha/fdatasync.c (__fdatasync): Likewise.
	* sysdeps/unix/sysv/linux/arm/pread.c (__libc_pread): Likewise.
	* sysdeps/unix/sysv/linux/arm/pread64.c (__libc_pread64): Likewise.
	* sysdeps/unix/sysv/linux/arm/pwrite.c (__libc_pwrite): Likewise.
	* sysdeps/unix/sysv/linux/arm/pwrite64.c (__libc_pwrite64): Likewise.
	* sysdeps/unix/sysv/linux/epoll_pwait.c (epoll_pwait): Likewise.
	* sysdeps/unix/sysv/linux/fallocate.c (fallocate): Likewise.
	* sysdeps/unix/sysv/linux/fallocate64.c (fallocate64): Likewise.
	* sysdeps/unix/sysv/linux/generic/open.c (__libc_open): Likewise.
	* sysdeps/unix/sysv/linux/generic/open64.c (__libc_open64): Likewise.
	* sysdeps/unix/sysv/linux/generic/pause.c (__libc_pause): Likewise.
	* sysdeps/unix/sysv/linux/generic/poll.c (__poll): Likewise.
	* sysdeps/unix/sysv/linux/generic/recv.c (__libc_recv): Likewise.
	* sysdeps/unix/sysv/linux/generic/select.c (__select): Likewise.
	* sysdeps/unix/sysv/linux/generic/send.c (__libc_send): Likewise.
	* sysdeps/unix/sysv/linux/generic/wordsize-32/pread.c (__libc_pread):
	Likewise.
	* sysdeps/unix/sysv/linux/generic/wordsize-32/pread64.c
	(__libc_pread64): Likewise.
	* sysdeps/unix/sysv/linux/generic/wordsize-32/preadv.c
	(__libc_preadv): Likewise.
	* sysdeps/unix/sysv/linux/generic/wordsize-32/preadv64.c
	(__libc_readv64): Likewise.
	* sysdeps/unix/sysv/linux/generic/wordsize-32/pwrite.c
	(__libc_pwrite): Likewise.
	* sysdeps/unix/sysv/linux/generic/wordsize-32/pwrite64.c
	(__libc_pwrite64): Likewise.
	* sysdeps/unix/sysv/linux/generic/wordsize-32/pwritev.c
	(__libc_pwritev): Likewise.
	* sysdeps/sysv/linux/generic/wordsize-32/pwritev64.c
	(__libc_pwritev64): Likewise.
	* sysdeps/unix/sysv/linux/i386/fcntl.c (__libc_fcntl): Likewise.
	* sysdeps/unix/sysv/linux/mips/mips32/sync_file_range.c
	(sync_file_range): Likewise.
	* sysdeps/unix/sysv/linux/mips/mips64/n32/fallocate.c (fallocate):
	Likewise.
	* sysdeps/unix/sysv/linux/mips/mips64/n32/fallocate64.c (fallocate64):
	Likewise.
	* sysdeps/unix/sysv/linux/mips/pread.c (__libc_pread): Likewise.
	* sysdeps/unix/sysv/linux/mips/pread64.c (__libc_pread64): Likewise.
	* sysdeps/unix/sysv/linux/mips/pwrite.c (__libc_pwrite): Likewise.
	* sysdeps/unix/sysv/linux/mips/pwrite64.c (__libc_pwrite64): Likewise.
	* sysdeps/unix/sysv/linux/msgrcv.c (__libc_msgrcv): Likewise.
	* sysdeps/unix/sysv/linux/msgsnd.c (__libc_msgsnd): Likewise.
	* sysdeps/unix/sysv/linux/open64.c (__libc_open64): Likewise.
	* sysdeps/unix/sysv/linux/openat.c (__libc_openat): Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/pread.c (__libc_pread):
	Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/pread64.c
	(__libc_read64): Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/pwrite.c (__libc_write):
	Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/pwrite64.c (__libc_write64):
	Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/fcntl.c (__libc_fcntl):
	Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/pread.c (__libc_pread):
	Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/pread64.c
	(__libc_pread64): Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/pwrite.c (__libc_pwrite):
	Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/pwrite64.c
	(__libc_pwrite64): Likewise.
	* sysdeps/sysv/linux/powerpc/powerpc64/sync_file_range.c
	(sync_file_range): Likewise.
	* sysdeps/unix/sysv/linux/ppoll.c (ppoll): Likewise.
	* sysdeps/unix/sysv/linux/pread.c (__libc_pread): Likewise.
	* sysdeps/unix/sysv/linux/pread64.c (__libc_pread64): Likewise.
	* sysdeps/unix/sysv/linux/preadv.c (__libc_preadv): Likewise.
	* sysdeps/unix/sysv/linux/pselect.c (__pselect): Likewise.
	* sysdeps/unix/sysv/linux/pwrite.c (__libc_pwrite): Likewise.
	* sysdeps/unix/sysv/linux/pwrite64.c (__libc_pwrite64): Likewise.
	* sysdeps/unix/sysv/linux/pwritev.c (PWRITEV): Likewise.
	* sysdeps/unix/sysv/linux/readv.c (__libc_readv): Likewise.
	* sysdeps/unix/sysv/linux/recvmmsg.c (recvmmsg): Likewise.
	* sysdeps/unix/sysv/linux/sendmmsg.c (sendmmsg): Likewise.
	* sysdeps/unix/sysv/linux/sh/pread.c (__libc_pread): Likewise.
	* sysdeps/unix/sysv/linux/sh/pread64.c (__libc_pread64): Likewise.
	* sysdeps/unix/sysv/linux/sh/pwrite.c (__libc_pwrite): Likewise.
	* sysdeps/unix/sysv/linux/sh/pwrite64.c (__libc_pwrite64): Likewise.
	* sysdeps/unix/sysv/linux/sigsuspend.c (__sigsuspend): Likewise.
	* sysdeps/unix/sysv/linux/sigtimedwait.c (__sigtimedwait): Likewise.
	* sysdeps/unix/sysv/linux/sigwaitinfo.c (__sigwaitinfo): Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/msgrcv.c (__libc_msgrcv):
	Likewise.
	* sysdeps/unix/sysv/linux/sync_file_range.c (sync_file_range):
	Likewise.
	* sysdeps/unix/sysv/linux/tcdrain.c (__libc_tcdrain): Likewise.
	* sysdeps/unix/sysv/linux/timer_routines.c (timer_helper_thread):
	Likewise.
	* sysdeps/unix/sysv/linux/wait.c (__libc_wait): Likewise.
	* sysdeps/unix/sysv/linux/waitid.c (__waitid): Likewise.
	* sysdeps/unix/sysv/linux/waitpid.c (__libc_waitpid): Likewise.
	* sysdeps/unix/sysv/linux/wordsize-64/fallocate.c (fallocate):
	Likewise.
	* sysdeps/unix/sysv/linux/wordsize-64/preadv.c (preadv): Likewise.
	* sysdeps/unix/sysv/linux/wordsize-64/pwritev.c (pwritev): Likewise.
	* sysdeps/unix/sysv/linux/writev.c (__libc_writev): Likewise.
	* sysdeps/unix/sysv/linux/x86_64/recv.c (__libc_recv): Likewise.
	* sysdeps/unix/sysv/linux/x86_64/send.c (__libc_send): Likewise.
2015-06-04 18:58:36 -03:00
Nathan Lynch b65d3e5f0f ARM: VDSO support
Beginning with the upcoming 4.1 release, Linux on a subset of 32-bit
ARM hardware will provide fast user-space implementations of the
following system calls:

- gettimeofday
- clock_gettime

The kernel implementation depends on the ARMv7 Generic Timers
Extension to accelerate these system calls.  So CPUs such as
Cortex-A15 and -A7 benefit, while Cortex-A9, -A8, and pre-v7 CPUs do
not.  On systems where the VDSO does not provide any speedup, the
kernel prevents the relevant symbol lookups from succeeding.

On OMAP5 (Cortex-A15) gettimeofday latency decreases from ~350ns to
~120ns.  On BeagleBone Black (Cortex-A8) it goes from ~650ns to
~660ns, which to my mind is an acceptable cost.

Verified that no new test failures are introduced on kernels with and
without the VDSO.

	* sysdeps/unix/sysv/linux/arm/Makefile: (sysdep_routines):
	Include dl-vdso.
	* sysdeps/unix/sysv/linux/arm/init-first.c: New file:
	Use VDSO routines for gettimeofday, clock_gettime if
	available.
	* sysdeps/unix/sysv/linux/arm/libc-vdso.h: New file:
	Declare VDSO symbols.
	* sysdeps/unix/sysv/linux/arm/sysdep.h:
	[HAVE_GETTIMEOFDAY_VSYSCALL]: Define.
	[HAVE_CLOCK_GETTIME_VSYSCALL]: Define.
	* sysdeps/unix/sysv/linux/arm/Versions: Add
	__vdso_clock_gettime.
2015-06-04 21:10:43 +00: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
Carlos O'Donell c92d40c0bc Bug 18125: Call exit after last linked context.
There appears to be a discrepancy among the implementations
of setcontext with regards to the function called once the last
linked-to context has finished executing via setcontext.

The POSIX standard says:
~~~
If the uc_link member of the ucontext_t structure pointed to by
the ucp argument is equal to 0, then this context is the main
context, and the thread will exit when this context returns.
~~~

It says "exit" not "exit immediately" nor "exit without running
functions registered with atexit or on_exit."

Therefore the AArch64, ARM, hppa and NIOS II implementations are
wrong and no test detects it.

It is questionable if this should even be fixed or just documented
that the above 4 targets are wrong. The functions are deprecated
and nobody should be using them, but at the same time it silly to
have cross-target differences that make it hard to port old
applications from say x86_64 to AArch64.

Therefore I will ix the 4 arches, and checkin a regression
test to prevent it from changing again.

https://sourceware.org/ml/libc-alpha/2015-03/msg00720.html
2015-05-08 11:29:38 -04:00
Adhemerval Zanella 14bb4e57c0 Function declaration cleanup
This patch changes the some function declaration from K&R style to
default ANSI C.

	* nptl/pthread_cancel.c (pthread_cancel): Use ANSI prototype.
	* nptl/pthread_cond_timedwait.c (__pthread_cond_timedwait): Likewise.
	* nptl/pthread_cond_wait.c (__pthread_cond_wait): Likewise.
	* nptl/pthread_exit.c (__pthread_exit): Likewise.
	* nptl/pthread_join.c (pthread_join): Likewise.
	* nptl/pthread_timedjoin.c (pthread_timedjoin_np): Likewise.
	* sysdeps/posix/waitid.c (__waitid): Likewise.
	* sysdeps/unix/sysv/linux/arm/pread.c (__libc_pread): Likewise.
	* sysdeps/unix/sysv/linux/arm/pread64.c (__libc_pread64): Likewise.
	* sysdeps/unix/sysv/linux/arm/pwrite.c (__libc_pwrite): Likewise.
	* sysdeps/unix/sysv/linux/arm/pwrite64.c (__libc_pwrite64): Likewise.
	* sysdeps/unix/sysv/linux/generic/wordsize-32/pread.c (__libc_pread):
	Likewise.
	* sysdeps/unix/sysv/linux/generic/wordsize-32/pread64.c
	(__libc_pread64): Likewise.
	* sysdeps/unix/sysv/linux/generic/wordsize-32/pwrite.c
	(__libc_pwrite): Likewise.
	* sysdeps/unix/sysv/linux/generic/wordsize-32/pwrite64.c
	(__libc_pwrite64): Likewsie.
	* sysdeps/unix/sysv/linux/mips/pread.c (__libc_pread): Likewise.
	* sysdeps/unix/sysv/linux/mips/pread64.c (__libc_pread64): Likewise.
	* sysdeps/unix/sysv/linux/mips/pwrite.c (__libc_pwrite): Likewise.
	* sysdeps/unix/sysv/linux/mips/pwrite64.c (__libc_pwrite64): Likewise.
	* sysdeps/unix/sysv/linux/msgrcv.c (__libc_msgrcv): Likewise.
	* sysdeps/unix/sysv/linux/msgsnd.c (__libc_msgsnd): Likewise.
	* sysdeps/unix/sysv/linux/openat.c (OPENAT_NOT_CANCEL): Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/pread.c (__libc_pread):
	Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/pread64.c
	(__libc_pread64): Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/pwrite.c (__libc_pwrite):
	Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/pwrite64.c
	(__libc_pwrite64): Likewise.
	* sysdeps/unix/sysv/linux/pread.c (__libc_pread): Likewise.
	* sysdeps/unix/sysv/linux/pread64.c (__libc_pread64): Likewise.
	* sysdeps/unix/sysv/linux/preadv.c (PREADV): Likewise.
	* sysdeps/unix/sysv/linux/pthread_kill.c (__pthread_kill): Likewise.
	* sysdeps/unix/sysv/linux/pwrite.c (__libc_pwrite): Likewise.
	* sysdeps/unix/sysv/linux/pwrite64.c (__libc_pwrite64): Likewise.
	* sysdeps/unix/sysv/linux/pwritev.c (__libc_pwritev): Likewise.
	* sysdeps/unix/sysv/linux/sh/pread.c (__libc_pread): Likewise.
	* sysdeps/unix/sysv/linux/sh/pread64.c (__libc_pread64): Likewise.
	* sysdeps/unix/sysv/linux/sh/pwrite.c (__libc_pwrite): Likewise.
	* sysdeps/unix/sysv/linux/sh/pwrite64.c (__libc_write64): Likewise.
	* sysdeps/unix/sysv/linux/sigsuspend.c (__sigsuspend): Likewise.
	* sysdeps/unix/sysv/linux/sigtimedwait.c (__sigtimedwait): Likewise.
	* sysdeps/unix/sysv/linux/sigwait.c (__sigwait): Likewise.
	* sysdeps/unix/sysv/linux/sigwaitinfo.c (__sigwaitinfo): Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/msgrcv.c (__libc_msgrcv):
	Likewise.
2015-01-06 08:23:58 -08:00
Roland McGrath 46abb64d62 ARM: Consolidate with generic unwinder wrapper code 2015-01-05 15:42:16 -08:00
Joseph Myers ab70da77ea Fix ARM posix_fadvise64 namespace (bug 17793).
ARM posix_fadvise calls __posix_fadvise64_l64, to which
posix_fadvise64 is a strong alias, but posix_fadvise is a POSIX
function and posix_fadvise64 isn't.  This patch changes it into a weak
alias.

Tested for ARM that this fixes the corresponding linknamespace test
failures.

	[BZ #17793]
	* sysdeps/unix/sysv/linux/arm/posix_fadvise64.c (posix_fadvise64):
	Define as weak alias not strong alias.
2015-01-05 16:05:34 +00: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
Roland McGrath f0481d971e Revert "Use pragmas rather than makefiles for necessary options for unwind code."
This reverts commit c324fcfe75.
2014-12-16 15:46:00 -08:00
Roland McGrath c324fcfe75 Use pragmas rather than makefiles for necessary options for unwind code. 2014-12-16 14:31:24 -08:00
Joseph Myers a6f3079bfb Fix sysdeps/unix/sysv/linux/arm/libc-do-syscall.S warning.
This patch fixes a warning

../include/features.h:328:4: warning: #warning _FORTIFY_SOURCE requires compiling with optimization (-O) [-Wcpp]

seen when building for ARM.  This warning comes from libc-do-syscall.S
being built for nscd: the nscd build uses _FORTIFY_SOURCE, while .S
files aren't built with -O, and the combination produces a warning.
As _FORTIFY_SOURCE doesn't do anything for .S files, undefining it in
libc-do-syscall.S seems the simplest solution.

Tested for ARM.

	* sysdeps/unix/sysv/linux/arm/libc-do-syscall.S (_FORTIFY_SOURCE):
	Undefine.
2014-11-26 15:13:27 +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 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
Gratian Crisan 03d41216fe arm: Re-enable PI futex support for ARM kernels >= 3.14.3
ARM linux kernels before 3.14.3 may or may not support
futex_atomic_cmpxchg_inatomic depending on the kernel configuration (e.g.
CONFIG_CPU_USE_DOMAINS && CONFIG_SMP configuration was not supported)

Starting with 3.14.3 the linux kernel unconditionally enables support for
ARM, and this re-enables the relevant __ASSUME_* macros.

Tested on ARM both with kernels >= 3.14.3 and older kernels.

	* sysdeps/unix/sysv/linux/arm/kernel-features.h
	[__LINUX_KERNEL_VERSION >= 0x030E03] (__ASSUME_FUTEX_LOCK_PI): Do
	not undefine.
	[__LINUX_KERNEL_VERSION >= 0x030E03] (__ASSUME_REQUEUE_PI):
	Likewise.
	[__LINUX_KERNEL_VERSION >= 0x030E03] (__ASSUME_SET_ROBUST_LIST):
	Likewise.
2014-10-27 22:45:43 +00: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 abb280f799 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.

In the case of powerpc, chown.c (providing the chown@@GLIBC_2.1
default version) is replaced by a syscalls.list entry (for powerpc32;
powerpc64 has no need for this because of its more recent minimum
symbol version, so can just use the entry in
sysdeps/unix/syscalls.list), but lchown.S is left as-is because it
provides the compat version of chown as an actual alias for __lchown,
which is not yet supported by syscalls.list.  This file can be removed
once such aliases are supported in syscalls.list.

	[BZ #14138]
	* sysdeps/unix/sysv/linux/arm/fchown.c: Remove file.
	* sysdeps/unix/sysv/linux/arm/lchown.c: Likewise.
	* sysdeps/unix/sysv/linux/m68k/fchown.c: Likewise.
	* sysdeps/unix/sysv/linux/m68k/lchown.c: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/chown.c: Likewise.
	* sysdeps/unix/sysv/linux/arm/syscalls.list (lchown): Add syscall.
	(fchown): Likewise.
	* sysdeps/unix/sysv/linux/m68k/syscalls.list (lchown): Likewise.
	(fchown): Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/syscalls.list (chown):
	Likewise.
2014-10-06 22:30:54 +00:00
Joseph Myers 93ae1ebaa6 Clean up gnu/lib-names.h generation (bug 14171).
This patch eliminates the mixture of SONAME information in
shlib-versions files and SONAME information used to generate
gnu/lib-names.h in makefiles, with the information in the makefiles
being removed so all this information comes from the shlib-versions
files.

So that gnu/lib-names.h supports multiple ABIs, it is changed to be
generated on the same basis as gnu/stubs.h: when there are multiple
ABIs, gnu/lib-names.h is a wrapper header (the same header installed
whatever ABI is being built) and separate headers such as
gnu/lib-names-64.h contain the substantive contents (only one such
header being installed by any glibc build).

The rules for building gnu/lib-names.h were moved from Makeconfig to
Makerules because they need to come after sysdeps makefiles are
included (now that "ifndef abi-variants" is a toplevel conditional on
the rules rather than $(abi-variants) being evaluated later inside the
commands for a rule).

Tested for x86_64 and x86 that the installed shared libraries are
unchanged by this patch, and examined the installed gnu/lib-names*.h
headers by hand.  Also tested the case of a single ABI (where there is
just a single header installed, again like stubs.h) by hacking
abi-variants to empty for x86_64.

	[BZ #14171]
	* Makeconfig [$(build-shared) = yes]
	($(common-objpfx)soversions.mk): Don't handle SONAMEs specified in
	makefiles.
	[$(build-shared) = yes && $(soversions.mk-done) = t]
	($(common-objpfx)gnu/lib-names.h): Remove rule.
	[$(build-shared) = yes && $(soversions.mk-done) = t]
	($(common-objpfx)gnu/lib-names.stmp): Likewise.  Split and moved
	to Makerules.
	[$(build-shared) = yes && $(soversions.mk-done) = t]
	(before-compile): Don't append $(common-objpfx)gnu/lib-names.h
	here.
	[$(build-shared) = yes && $(soversions.mk-done) = t]
	(common-generated): Don't append gnu/lib-names.h and
	gnu/lib-names.stmp here.
	* Makerules [$(build-shared) = yes && $(soversions.mk-done) = t]
	(lib-names-h-abi): New variable.
	[$(build-shared) = yes && $(soversions.mk-done) = t]
	(lib-names-stmp-abi): Likewise.
	[$(build-shared) = yes && $(soversions.mk-done) = t &&
	abi-variants] (before-compile): Append
	$(common-objpfx)$(lib-names-h-abi).
	[$(build-shared) = yes && $(soversions.mk-done) = t &&
	abi-variants] (common-generated): Append gnu/lib-names.h.
	[$(build-shared) = yes && $(soversions.mk-done) = t &&
	abi-variants] (install-others-nosubdir): Depend on
	$(inst_includedir)/$(lib-names-h-abi).
	[$(build-shared) = yes && $(soversions.mk-done) = t &&
	abi-variants] ($(common-objpfx)gnu/lib-names.h): New rule.
	[$(build-shared) = yes && $(soversions.mk-done) = t]
	($(common-objpfx)$(lib-names-h-abi)): New rule.
	[$(build-shared) = yes && $(soversions.mk-done) = t]
	($(common-objpfx)$(lib-names-stmp-abi)): Likewise.
	[$(build-shared) = yes && $(soversions.mk-done) = t]
	(common-generated): Append $(lib-names-h-abi) and
	$(lib-names-stmp-abi).
	* scripts/lib-names.awk: Do not handle multi being set.
	* sysdeps/unix/sysv/linux/aarch64/Makefile (abi-lp64-ld-soname):
	Remove variable.
	(abi-lp64_be-ld-soname): Likewise.
	* sysdeps/unix/sysv/linux/arm/Makefile (abi-soft-ld-soname):
	Likewise.
	(abi-hard-ld-soname): Likewise.
	* sysdeps/unix/sysv/linux/i386/shlib-versions: New file.
	* sysdeps/unix/sysv/linux/mips/Makefile (abi-o32_soft-ld-soname):
	Remove variable.
	(abi-o32_hard-ld-soname): Likewise.
	(abi-o32_soft_2008-ld-soname): Likewise.
	(abi-o32_hard_2008-ld-soname): Likewise.
	(abi-n32_soft-ld-soname): Likewise.
	(abi-n32_hard-ld-soname): Likewise.
	(abi-n32_soft_2008-ld-soname): Likewise.
	(abi-n32_hard_2008-ld-soname): Likewise.
	(abi-n64_soft-ld-soname): Likewise.
	(abi-n64_hard-ld-soname): Likewise.
	(abi-n64_soft_2008-ld-soname): Likewise.
	(abi-n64_hard_2008-ld-soname): Likewise.
	* sysdeps/unix/sysv/linux/powerpc/Makefile (abi-64-v1-ld-soname):
	Likewise.
	(abi-64-v2-ld-soname): Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/shlib-versions: Add
	ld.so entries.
	* sysdeps/unix/sysv/linux/s390/Makefile (abi-64-ld-soname): Remove
	variable.
	* sysdeps/unix/sysv/linux/s390/s390-64/shlib-versions: Add ld.so
	entry.
	* sysdeps/unix/sysv/linux/x86/Makefile (abi-32-ld-soname): Remove
	variable.
	(abi-64-ld-soname): Likewise.
	(abi-x32-ld-soname): Likewise.
	* sysdeps/unix/sysv/linux/x86_64/64/shlib-versions: Add ld.so
	entry.
	* sysdeps/unix/sysv/linux/x86_64/x32/shlib-versions: Likewise.
2014-09-26 17:33:04 +00:00
Joseph Myers 68870f1253 Move some setrlimit definitions to syscalls.list (bug 14138).
Bug 14138 is followup cleanup after removal of support for old Linux
kernel versions: moving syscalls to syscalls.list where the only
reason for using C definitions was kernel version conditionals that
are no longer present.

This patch deals with the case of setrlimit
(sysdeps/unix/sysv/linux/i386/setrlimit.c, included by various other
architectures).  Where needed (where there is also a compat symbol for
setrlimit@GLIBC_2.0), new syscalls.list entries are added.  Where not
needed (where there is no such compat symbol and the minimum symbol
version for libc is 2.2 or later), no such entries are added as that
in sysdeps/unix/syscalls.list will suffice.  Thus arm and sh need no
such entries, while m68k and powerpc need entries only in a
subdirectory syscalls.list file rather than for all configurations
that previously used setrlimit.c.

(setrlimit@@GLIBC_2.2 and setrlimit@GLIBC_2.0 are now semantically
identical - the new symbol version was about a change of types from
signed to unsigned and the former compatibility code for dealing with
large unsigned arguments on old kernels is no longer needed or
present, having been removed with support for pre-2.4 kernels.
However, making the two versions into aliases doesn't work at present:
the case of having both default and non-default symbol versions on the
same syscalls.list line results in a compat_symbol call in code built
for static libc, which doesn't compile.  I don't suppose it would be
hard to generate SHARED conditionals from make-syscalls.sh to fix
this, but in any case this patch doesn't make things any worse, as the
functions weren't aliases before the patch either.)

Tested for x86, and ran ABI tests for ARM as an example of an
architecture where the setrlimit.c file was just removed without
adding syscalls.list entries.

	[BZ #14138]
	* sysdeps/unix/sysv/linux/arm/setrlimit.c: Remove file.
	* sysdeps/unix/sysv/linux/i386/setrlimit.c: Likewise.
	* sysdeps/unix/sysv/linux/m68k/setrlimit.c: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/setrlimit.c: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/setrlimit.c: Likewise.
	* sysdeps/unix/sysv/linux/sh/setrlimit.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/syscalls.list (setrlimit): Add
	syscall entry for GLIBC_2.2 symbol version.
	* sysdeps/unix/sysv/linux/m68k/m680x0/syscalls.list (setrlimit):
	Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/syscalls.list
	(setrlimit): Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/syscalls.list (setrlimit):
	Likewise.
2014-09-23 14:12:50 +00:00
Will Newton ea58f20293 ARM: Don't define _SYS_AUXV_H in sysdep.h
sysdep.h was defining _SYS_AUXV_H in order to avoid an include guard check
in hwcap.h. Unfortunately it didn't undefine it so it could leak out into
code and caused a build failure with -Wimplicit-function-declaration
building tst-auxv on ARM.

ChangeLog:

2014-09-23  Will Newton  <will.newton@linaro.org>

	* sysdeps/unix/sysv/linux/arm/bits/hwcap.h: Check for
	_LINUX_ARM_SYSDEP_H include guard too.
	* sysdeps/unix/sysv/linux/arm/sysdep.h (_SYS_AUXV_H): Remove
	define.
2014-09-23 14:58:49 +01: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
Roland McGrath 277cfb315b Remove sysdeps/unix/sysv/linux/arm/lowlevellock.h 2014-08-01 18:59:48 -07:00
Roland McGrath 6f64e7d75f ARM: Move PTR_MANGLE et al out of Linux-specific file. 2014-08-01 11:28:49 -07:00
Joseph Myers 29c4f53e2a Move architecture shlib-versions files to Linux-specific directories.
Various architectures have files such as sysdeps/<arch>/shlib-versions
whose contents are in fact entirely Linux-specific, relating only to
the symbol / shared library versions for the port to Linux on that
architecture, when any future port to a different OS on that
architecture would use the symbol version of the glibc release it goes
in, as standard for new ports.

This patch moves such files under sysdeps/unix/sysv/linux/, merging in
the contents of sysdeps/<arch>/nptl/shlib-versions in the process.
The only bits not moved are those relating to libgcc_s versions, which
don't appear OS-specific in the same way that glibc's symbol versions
so.  It deliberately does not change the regular expressions given for
matching configurations in each file; some match only Linux although
not Linux-specific, or match other OSes although Linux-specific.  It
is with a view to at least the following further cleanups:

* Move architecture-specific content from the toplevel shlib-versions
  and nptl/shlib-versions into sysdeps shlib-versions files, so
  eliminating another difference between ex-ports and non-ex-ports
  architectures.

* Likewise, for OS-specific content in shlib-versions files.

* At that point, the first field in shlib-versions files (the regular
  expression matching a configuration triplet) should be redundant, so
  eliminate that field and leave shlib-versions selection working
  purely on a sysdeps basis (with limited use of %ifdef in
  shlib-versions files when needed) rather than having its own
  separate mechanism to select what configuration information is
  relevant.

* Move the build of gnu/lib-names.h to a similar mechanism to that
  used for gnu/stubs.h (each library build installing a version of the
  header specifically for that build), so we can eliminate the
  duplication of soname information in the makefiles and get it purely
  from shlib-versions files again.

There may be other cleanups possible as well (in particular, I'm not
sure that all cases where the same "Earliest symbol set" information
is repeated for many different libraries actually should need to
repeat it rather than specifying it just once for DEFAULT for the
given configuration, and separately specifying any non-default choices
of soname).

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

	* sysdeps/aarch64/shlib-versions: Move to ...
	* sysdeps/unix/sysv/linux/aarch64/shlib-versions: ... here.
	* sysdeps/alpha/shlib-versions: Move to ...
	* sysdeps/unix/sysv/linux/alpha/shlib-versions: ... here.
	* sysdeps/arm/shlib-versions: Move to ...
	* sysdeps/unix/sysv/linux/arm/shlib-versions: ... here.
	* sysdeps/hppa/shlib-versions: Move all contents except for
	libgcc_s entry to ...
	* sysdeps/unix/sysv/linux/hppa/shlib-versions: ... here.  Merge in
	entry from ...
	* sysdeps/hppa/nptl/shlib-versions: ... here.  Remove file.
	* sysdeps/ia64/shlib-versions: Move to ...
	* sysdeps/unix/sysv/linux/ia64/shlib-versions: ... here.  Merge in
	entry from ...
	* sysdeps/ia64/nptl/shlib-versions: ... here.  Remove file.
	* sysdeps/m68k/coldfire/shlib-versions: Move to ...
	* sysdeps/unix/sysv/linux/m68k/coldfire/shlib-versions: ... here.
	* sysdeps/microblaze/shlib-versions: Move to ...
	* sysdeps/unix/sysv/linux/microblaze/shlib-versions: ... here.
	* sysdeps/mips/shlib-versions: Move to ...
	* sysdeps/unix/sysv/linux/mips/shlib-versions: ... here.  Merge in
	entry from ...
	* sysdeps/mips/nptl/shlib-versions: ... here.  Remove file.
	* sysdeps/tile/shlib-versions: Move to ...
	* sysdeps/unix/sysv/linux/tile/shlib-versions: ... here.
	* sysdeps/unix/sysv/linux/x86_64/64/shlib-versions: Merge in entry
	from ...
	* sysdeps/x86_64/64/shlib-versions: ... here.  Remove file.
	* sysdeps/unix/sysv/linux/x86_64/x32/shlib-versions: Merge in
	entry from ...
	* sysdeps/x86_64/x32/shlib-versions: ... here.  Remove file.
2014-07-17 14:31:12 +00:00
Roland McGrath 37fccd4192 ARM: Clean up EABI-related configury 2014-07-16 15:18:36 -07:00
Roland McGrath c0c6bac945 Get rid of lll_robust_dead. 2014-07-10 11:21:54 -07:00
Roland McGrath 887865fcfa Get rid of lll_robust_trylock. 2014-07-10 10:57:57 -07:00
Roland McGrath f083450f45 NPTL is no longer an add-on! 2014-07-07 09:29:06 -07:00
Roland McGrath 08192659bb Get rid of nptl/sysdeps/ entirely! 2014-07-07 09:28:38 -07:00
Roland McGrath 46f1d8a6b5 ARM: Split Linuxism out of sysdeps/arm/nptl/tls.h 2014-06-30 11:19:22 -07:00
Roland McGrath 3cb4de4741 ARM: Move more aeabi routine magic out of Linux-specific directories 2014-06-26 15:08:29 -07:00
Joseph Myers 11b076bbae Remove stray includes of kernel-features.h.
Now that files using __ASSUME_* macros have been made by
<https://sourceware.org/ml/libc-alpha/2014-06/msg00543.html> to
include <kernel-features.h> directly, any include from a file not
using __ASSUME_* macros can safely be removed (as there will no longer
be some other file relying on indirect inclusion via a header from
which the include is being removed).

This patch removes such unnecessary kernel-features.h includes.

Tested x86_64 that disassembly of installed shared libraries is
unchanged by this patch, except for line numbers in calls to
__assert_fail from libc.so and ld.so.

2014-06-23  Joseph Myers  <joseph@codesourcery.com>

	* nptl/createthread.c: Don't include kernel-features.h.
	* nptl/pthread_cancel.c: Likewise.
	* nptl/pthread_condattr_setclock.c: Likewise.
	* nptl/sysdeps/unix/sysv/linux/pt-raise.c: Likewise.
	* nptl/sysdeps/unix/sysv/linux/pthread_getcpuclockid.c: Likewise.
	* nptl/sysdeps/unix/sysv/linux/pthread_kill.c: Likewise.
	* nptl/sysdeps/unix/sysv/linux/pthread_sigqueue.c: Likewise.
	* nptl/sysdeps/unix/sysv/linux/raise.c: Likewise.
	* nptl/sysdeps/unix/sysv/linux/s390/s390-32/pt-vfork.S: Likewise.
	* nptl/sysdeps/unix/sysv/linux/s390/s390-32/vfork.S: Likewise.
	* nptl/sysdeps/unix/sysv/linux/s390/s390-64/pt-vfork.S: Likewise.
	* nptl/sysdeps/unix/sysv/linux/s390/s390-64/vfork.S: Likewise.
	* nptl/sysdeps/unix/sysv/linux/timer_create.c: Likewise.
	* nptl/sysdeps/unix/sysv/linux/timer_delete.c: Likewise.
	* nptl/sysdeps/unix/sysv/linux/timer_getoverr.c: Likewise.
	* nptl/sysdeps/unix/sysv/linux/timer_gettime.c: Likewise.
	* nptl/sysdeps/unix/sysv/linux/timer_routines.c: Likewise.
	* nptl/sysdeps/unix/sysv/linux/timer_settime.c: Likewise.
	* nscd/gai.c: Likewise.
	* nss/nss_db/db-open.c: Likewise.
	* sysdeps/generic/ldsodefs.h: Likewise.
	* sysdeps/sh/nptl/tls.h: Likewise.
	* sysdeps/unix/sysv/linux/aarch64/sigaction.c: Likewise.
	* sysdeps/unix/sysv/linux/aarch64/sigcontextinfo.h: Likewise.
	* sysdeps/unix/sysv/linux/aarch64/vfork.S: Likewise.
	* sysdeps/unix/sysv/linux/adjtime.c: Likewise.
	* sysdeps/unix/sysv/linux/alpha/xstatconv.h: Likewise.
	* sysdeps/unix/sysv/linux/arm/sigaction.c: Likewise.
	* sysdeps/unix/sysv/linux/arm/sigcontextinfo.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/generic/futimesat.c: Likewise.
	* sysdeps/unix/sysv/linux/generic/poll.c: Likewise.
	* sysdeps/unix/sysv/linux/generic/wordsize-32/fcntl.c: Likewise.
	* sysdeps/unix/sysv/linux/generic/wordsize-32/fxstatat.c: Likewise.
	* sysdeps/unix/sysv/linux/generic/wordsize-32/pread.c: Likewise.
	* sysdeps/unix/sysv/linux/generic/wordsize-32/pread64.c: Likewise.
	* sysdeps/unix/sysv/linux/generic/wordsize-32/preadv.c: Likewise.
	* sysdeps/unix/sysv/linux/generic/wordsize-32/preadv64.c: Likewise.
	* sysdeps/unix/sysv/linux/generic/wordsize-32/pwrite.c: Likewise.
	* sysdeps/unix/sysv/linux/generic/wordsize-32/pwrite64.c: Likewise.
	* sysdeps/unix/sysv/linux/generic/wordsize-32/pwritev.c: Likewise.
	* sysdeps/unix/sysv/linux/generic/wordsize-32/pwritev64.c: Likewise.
	* sysdeps/unix/sysv/linux/getcwd.c: Likewise.
	* sysdeps/unix/sysv/linux/getpagesize.c: Likewise.
	* sysdeps/unix/sysv/linux/getsysstats.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/fxstat.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/sigaction.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/vfork.S: Likewise.
	* sysdeps/unix/sysv/linux/i386/xstat.c: Likewise.
	* sysdeps/unix/sysv/linux/ia64/system.c: Likewise.
	* sysdeps/unix/sysv/linux/if_index.c: Likewise.
	* sysdeps/unix/sysv/linux/ifaddrs.c: Likewise.
	* sysdeps/unix/sysv/linux/ifreq.c: Likewise.
	* sysdeps/unix/sysv/linux/ldsodefs.h: Likewise.
	* sysdeps/unix/sysv/linux/lutimes.c: Likewise.
	* sysdeps/unix/sysv/linux/m68k/vfork.S: Likewise.
	* sysdeps/unix/sysv/linux/microblaze/nptl/vfork.S: Likewise.
	* sysdeps/unix/sysv/linux/mips/mips32/accept4.c: Likewise.
	* sysdeps/unix/sysv/linux/mips/mips32/recvmmsg.c: Likewise.
	* sysdeps/unix/sysv/linux/mips/mips32/sendmmsg.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/sigaction.c: Likewise.
	* sysdeps/unix/sysv/linux/mmap64.c: Likewise.
	* sysdeps/unix/sysv/linux/netlinkaccess.h: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/chown.c: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/dl-sysdep.c: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/fe_mask.c: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/fe_nomask.c: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/getcontext.S: 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/setcontext.S: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext.S: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/fpu/fe_mask.c: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/fpu/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/powerpc/powerpc64/vfork.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/mmap.S: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/mmap64.S: Likewise.
	* sysdeps/unix/sysv/linux/s390/system.c: Likewise.
	* sysdeps/unix/sysv/linux/sh/pread.c: Likewise.
	* sysdeps/unix/sysv/linux/sh/pread64.c: Likewise.
	* sysdeps/unix/sysv/linux/sh/pwrite.c: Likewise.
	* sysdeps/unix/sysv/linux/sh/pwrite64.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/sparc64/xstatconv.c: Likewise.
	* sysdeps/unix/sysv/linux/sparc/system.c: Likewise.
	* sysdeps/unix/sysv/linux/syslog.c: Likewise.
	* sysdeps/unix/sysv/linux/system.c: Likewise.
	* sysdeps/unix/sysv/linux/testrtsig.h: Likewise.
	* sysdeps/unix/sysv/linux/timespec_get.c: Likewise.
	* sysdeps/unix/sysv/linux/ttyname.c: Likewise.
	* sysdeps/unix/sysv/linux/ttyname_r.c: Likewise.
	* sysdeps/unix/sysv/linux/utimensat.c: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/sigaction.c: Likewise.
	* sysdeps/unix/sysv/linux/xstatconv.h: Likewise.
2014-06-25 18:09:01 +00:00
Will Newton 9aea0cb842 ARM: Add support for AT_HWCAP2 in _dl_procinfo
Add support for the new HWCAP2 values for ARMv8 added in the
3.15 kernel. Tested using QEMU which supports these extensions.

ChangeLog:

2014-06-25  Will Newton  <will.newton@linaro.org>

	* sysdeps/unix/sysv/linux/arm/dl-procinfo.c
	(_dl_arm_cap_flags): Add HWCAP2 values.
	* sysdeps/unix/sysv/linux/arm/dl-procinfo.h
	(_DL_HWCAP_COUNT): Increase to 37.
	(_DL_HWCAP_LAST): New define.
	(_DL_HWCAP2_LAST): New define.
	(_dl_procinfo): Add support for printing
	AT_HWCAP2 entries.
	(_dl_string_hwcap): Use _dl_hwcap_string.
2014-06-25 16:02:04 +01:00
Joseph Myers 2272ffc116 Remove ARM __ASSUME_SIGFRAME_V2.
This patch removes ARM __ASSUME_SIGFRAME_V2 now that the
2.6.18-and-later signal frame layout can be assumed, renaming the
affected functions accordingly now only one version of them is needed
in glibc.  (sigrestorer.S did not in fact include <kernel-features.h>
and it appears that, unlike other such cases, it didn't get the header
indirectly, so the v1 functions would have been compiled in even when
sigaction.c didn't reference them.)

(alpha and hppa also have architecture-specific __ASSUME_* macros that
should now be removed: __ASSUME_FDATASYNC and __ASSUME_LWS_CAS
respectively.  I don't have any plans to do anything on that myself.)

Tested on ARM.

	* sysdeps/unix/sysv/linux/arm/kernel-features.h
	(__ASSUME_SIGFRAME_V2): Remove macro.
	* sysdeps/unix/sysv/linux/arm/sigrestorer.S: Update comment.
	[!__ASSUME_SIGFRAME_V2]: Remove conditional code.
	(__default_sa_restorer_v2): Rename to __default_sa_restorer.
	(__default_rt_sa_restorer_v2): Rename to __default_rt_sa_restorer.
	* sysdeps/unix/sysv/linux/arm/sigaction.c (__default_sa_restorer):
	Declare as function.  Remove conditional macro definitions.
	(__default_rt_sa_restorer): Likewise.
	(__default_sa_restorer_v1): Remove declaration.
	(__default_sa_restorer_v2): Likewise.
	(__default_rt_sa_restorer_v1): Likewise.
	(__default_rt_sa_restorer_v2): Likewise.
	* sysdeps/unix/sysv/linux/arm/Versions (GLIBC_PRIVATE): Remove
	__default_sa_restorer_v1, __default_rt_sa_restorer_v1,
	__default_sa_restorer_v2 and __default_rt_sa_restorer_v2.
2014-06-21 00:58:56 +00:00
Roland McGrath 08f41f047c ARM: Define TLS_DEFINE_INIT_TP 2014-06-09 12:53:16 -07:00
Richard Henderson aa2f176d6f arm,aarch64: Remove SINGLE_THREAD_P_PIC
This macro was removed by

2005-11-16  Daniel Jacobowitz  <dan@codesourcery.com>

but not applied to the (still separate) eabi port so necro'd
when the eabi port superceded the old abi.  It was thence
copied into the new AArch64 port.
2014-05-25 12:50:41 -04:00
Joseph Myers 175cef4163 Fix ARM build with GCC trunk.
sysdeps/unix/sysv/linux/arm/unwind-resume.c and
sysdeps/unix/sysv/linux/arm/unwind-forcedunwind.c have static
variables that are written in C code but only read from toplevel asms.
Current GCC trunk now optimizes away such apparently write-only static
variables, so causing a build failure.  This patch marks those
variables with __attribute_used__ to avoid that optimization.

Tested that this fixes the build for ARM.

	* sysdeps/unix/sysv/linux/arm/unwind-forcedunwind.c
	(libgcc_s_resume): Use __attribute_used__.
	* sysdeps/unix/sysv/linux/arm/unwind-resume.c (libgcc_s_resume):
	Likewise.
2014-05-20 21:27:13 +00:00
Roland McGrath fe39b021f4 ARM: Convert fork.c to arch-fork.h 2014-05-16 12:51:39 -07:00
Roland McGrath 5675da1e84 ARM: Consolidate NPTL/non versions of vfork 2014-05-14 09:44:24 -07:00
Joseph Myers 5e7698c6f1 Reduce kernel-features.h duplication.
This patch reduces duplication between different architectures'
kernel-features.h files by making the architecture-independent file
define various macros unconditionally (instead of only for a
particular list of architectures), with the architecture-specific
files then undefining the macros if necessary.

Specifically, __ASSUME_O_CLOEXEC (O_CLOEXEC flag to open) and
__ASSUME_SOCK_CLOEXEC (SOCK_NONBLOCK and SOCK_CLOEXEC flags to socket)
are supported on all architectures as of 2.6.32 or the minimum kernel
version for the architecture if later.  For __ASSUME_IN_NONBLOCK,
__ASSUME_PIPE2, __ASSUME_EVENTFD2, __ASSUME_SIGNALFD4 and
__ASSUME_DUP3, the relevant syscalls were added for alpha in 2.6.33
but otherwise the features are available as of 2.6.32.  For
__ASSUME_UTIMES, support is everywhere in 2.6.32 except for
asm-generic architectures and hppa.

Although those were the main cases of duplication among
kernel-features.h files, some other cases of unnecessary definitions
were also cleaned up: the hppa file defined various macros that were
either no longer used at all, or defined by the main file by default
anyway, the ia64 file had duplicative definitions of __ASSUME_PSELECT
and __ASSUME_PPOLL, while mips had such a definition of
__ASSUME_IPC64.

Really, rather than being defined in the main file then undefined for
asm-generic architectures, __ASSUME_UTIMES should become an
hppa-specific macro.  Given that __ASSUME_ATFCTS and
__ASSUME_UTIMENSAT are now always true, the only live __ASSUME_UTIMES
conditional is in sysdeps/unix/sysv/linux/utimes.c, which is not used
for asm-generic architectures.  I think the desired state would be an
hppa-specific file (that includes sysdeps/unix/sysv/linux/utimes.c if
__ASSUME_UTIMES, and otherwise has fallback code), with the fallback
code being removed from the main utimes.c.  But I think that's most
reasonably a separate cleanup once __ASSUME_ATFCTS and
__ASSUME_UTIMESAT have both had conditional code cleaned up.

Given this patch, I think it's straightforward to move non-ex-ports
architectures to having their own kernel-features.h files, like
ex-ports architectures, rather than conditionals in the main file
(i.e., such a move won't require the architecture-specific file to
contain anything that isn't genuinely architecture-specific), and
would encourage architecture maintainers to do so.

Tested x86_64 that the installed shared libraries are unchanged by
this patch.  Note that on some architectures this *will* cause
__ASSUME_* macros to be defined in cases where they weren't previously
but should have been (but this is just optimization, not a fix to a
user-visible bug, so doesn't need a bug report in Bugzilla).

	* sysdeps/unix/sysv/linux/kernel-features.h (__ASSUME_UTIMES):
	Define unconditionally.
	(__ASSUME_O_CLOEXEC): Likewise.
	(__ASSUME_SOCK_CLOEXEC): Likewise.
	(__ASSUME_IN_NONBLOCK): Likewise.
	(__ASSUME_PIPE2): Likewise.
	(__ASSUME_EVENTFD2): Likewise.
	(__ASSUME_SIGNALFD4): Likewise.
	(__ASSUME_DUP3): Likewise.
	* sysdeps/unix/sysv/linux/aarch64/kernel-features.h
	(__ASSUME_DUP3): Do not define.
	(__ASSUME_EVENTFD2): Likewise.
	(__ASSUME_IN_NONBLOCK): Likewise.
	(__ASSUME_O_CLOEXEC): Likewise.
	(__ASSUME_PIPE2): Likewise.
	(__ASSUME_SIGNALFD4): Likewise.
	(__ASSUME_SOCK_CLOEXEC): Likewise.
	(__ASSUME_UTIMES): Undefine.
	* sysdeps/unix/sysv/linux/alpha/kernel-features.h
	(__ASSUME_UTIMES): Do not define.
	(__ASSUME_O_CLOEXEC): Likewise.
	(__ASSUME_SOCK_CLOEXEC): Likewise.
	(__ASSUME_IN_NONBLOCK): Undefine if [__LINUX_KERNEL_VERSION <
	0x020621] instead of defining if [__LINUX_KERNEL_VERSION >=
	0x020621].
	(__ASSUME_PIPE2): Likewise.
	(__ASSUME_EVENTFD2): Likewise.
	(__ASSUME_SIGNALFD4): Likewise.
	[__LINUX_KERNEL_VERSION < 0x020621] (__ASSUME_DUP3): Undefine.
	* sysdeps/unix/sysv/linux/arm/kernel-features.h (__ASSUME_UTIMES):
	Do not define.
	(__ASSUME_EVENTFD2): Likewise.
	(__ASSUME_SIGNALFD4): Likewise.
	* sysdeps/unix/sysv/linux/hppa/kernel-features.h
	(__ASSUME_32BITUIDS): Likewise.
	(__ASSUME_TRUNCATE64_SYSCALL): Likewise.
	(__ASSUME_IPC64): Likewise.
	(__ASSUME_ST_INO_64_BIT): Likewise.
	(__ASSUME_GETDENTS64_SYSCALL): Likewise.
	[__LINUX_KERNEL_VERSION < 0x030e00] (__ASSUME_UTIMES): Undefine.
	* sysdeps/unix/sysv/linux/ia64/kernel-features.h
	(__ASSUME_UTIMES): Do not define.
	(__ASSUME_PSELECT): Likewise.
	(__ASSUME_PPOLL): Likewise.
	(__ASSUME_O_CLOEXEC): Likewise.
	(__ASSUME_SOCK_CLOEXEC): Likewise.
	(__ASSUME_IN_NONBLOCK): Likewise.
	(__ASSUME_PIPE2): Likewise.
	(__ASSUME_EVENTFD2): Likewise.
	(__ASSUME_SIGNALFD4): Likewise.
	(__ASSUME_DUP3): Likewise.
	* sysdeps/unix/sysv/linux/m68k/kernel-features.h
	(__ASSUME_UTIMES): Likewise.
	(__ASSUME_O_CLOEXEC): Likewise.
	(__ASSUME_SOCK_CLOEXEC): Likewise.
	(__ASSUME_IN_NONBLOCK): Likewise.
	(__ASSUME_PIPE2): Likewise.
	(__ASSUME_EVENTFD2): Likewise.
	(__ASSUME_SIGNALFD4): Likewise.
	(__ASSUME_DUP3): Likewise.
	* sysdeps/unix/sysv/linux/microblaze/kernel-features.h
	(__ASSUME_UTIMES): Likewise.
	(__ASSUME_O_CLOEXEC): Likewise.
	(__ASSUME_SOCK_CLOEXEC): Likewise.
	(__ASSUME_IN_NONBLOCK): Likewise.
	(__ASSUME_PIPE2): Likewise.
	(__ASSUME_EVENTFD2): Likewise.
	(__ASSUME_SIGNALFD4): Likewise.
	(__ASSUME_DUP3): Likewise.
	* sysdeps/unix/sysv/linux/mips/kernel-features.h (__ASSUME_IPC64):
	Likewise.
	(__ASSUME_UTIMES): Likewise.
	(__ASSUME_EVENTFD2): Likewise.
	(__ASSUME_SIGNALFD4): Likewise.
	* sysdeps/unix/sysv/linux/tile/kernel-features.h
	(__ASSUME_O_CLOEXEC): Likewise.
	(__ASSUME_SOCK_CLOEXEC): Likewise.
	(__ASSUME_IN_NONBLOCK): Likewise.
	(__ASSUME_PIPE2): Likewise.
	(__ASSUME_EVENTFD2): Likewise.
	(__ASSUME_SIGNALFD4): Likewise.
	(__ASSUME_DUP3): Likewise.
	(__ASSUME_UTIMES): Undefine.
2014-05-14 00:45:19 +00:00
Joseph Myers 5c521ecdda Clean up ARM old-ABI symbol versioning relics.
This patch cleans up some symbol versioning code in the ARM port that
exists only as relics of the old-ABI port, which was removed some time
ago.

The minimum symbol version in the ARM port is GLIBC_2.4 (the version
where the EABI port was introduced).  Thus, any SHLIB_COMPAT
conditionals where the later version is 2.4 or later are obsolete and
can be removed.  In addition, there is no need to set symbol versions
before 2.4 explicitly if the symbols would have a version of 2.4 by
default anyway.  This includes most of the entries in
sysdeps/unix/sysv/linux/arm/Versions: those for GLIBC_2.0 are for
libgcc unwind functions that aren't actually in ARM EABI glibc at all,
while those for GLIBC_2.2 and GLIBC_2.3.3 are for functions which for
the old-ABI port may have had versions different from the
architecture-independent default, but where for EABI the default
suffices (both the default and the version in that file map to 2.4, so
the entries in that file do nothing).  The GLIBC_2.1 entries are
needed (architecture-specific functions), but it seems less confusing
for those to say GLIBC_2.4, as the actual version those symbols in
fact have.

Various cases in the <fenv.h> functions where a function is defined as
__fe* with an fe* versioned alias are cleaned up just to define fe*
directly, as done e.g. on AArch64.  If in future we actually need an
__fe* name for use from C90 functions in libm as discussed recently,
of course we can add one on all architectures and make the fe* name
into a weak alias for that particular function, but for now the __fe*
names aren't needed.

In the case of posix_fadvise64, the __posix_fadvise64_l64 name and
posix_fadvise64 alias are kept as __posix_fadvise64_l64 is used in
posix_fadvise.  (For that to be a namespace-clean use, posix_fadvise64
needs to be a *weak* alias not a strong one as at present, but that's
an independent preexisting bug.)

(There remain references to GLIBC_2_2 in
sysdeps/unix/sysv/linux/arm/{msgctl.c,semctl.c,shmctl.c}.  As those
files are used by alpha which has a genuine 2.2 version for those
functions, I think those references need to stay as-is.)

Tested that the disassembly of installed shared libraries is unchanged
by this patch (though function names shown in disassembly change to no
longer have @@GLIBC_2.4, now those functions get versioned only by the
version map and not redundantly at assembler time) and that the ABI
tests pass.

	* sysdeps/arm/fclrexcpt.c (__feclearexcept): Rename to
	feclearexcept.  Remove symbol versioning code.
	* sysdeps/arm/fegetenv.c (__fegetenv): Rename to fegetenv.  Remove
	symbol versioning code.
	* sysdeps/arm/fesetenv.c (__fesetenv): Rename to fesetenv.  Remove
	symbol versioning code.
	* sysdeps/arm/feupdateenv.c (__feupdateenv): Rename to
	feupdateenv.  Remove symbol versioning code.
	* sysdeps/arm/fgetexcptflg.c (__fegetexceptflag): Rename to
	fegetexceptflag.  Remove symbol versioning code.
	* sysdeps/arm/fsetexcptflg.c (__fesetexceptflag): Rename to
	fesetexceptflag.  Remove symbol versioning code.
	* sysdeps/unix/sysv/linux/arm/Versions (libc): Remove GLIBC_2.0,
	GLIBC_2.2 and GLIBC_2.3.3 entries.  Change GLIBC_2.1 to GLIBC_2.4.
	* sysdeps/unix/sysv/linux/arm/posix_fadvise64.c
	(__posix_fadvise64_l32): Remove prototype.
	[SHLIB_COMPAT(libc, GLIBC_2_2, GLIBC_2_3_3)]: Remove conditional
	code.
2014-05-14 00:41:20 +00:00
Roland McGrath 5da9dfad43 Move NPTL public ABI headers for ARM to sysdeps/arm/nptl/. 2014-05-13 11:33:49 -07:00
Roland McGrath 58aa195d32 Verbatim NPTL file moves for ARM/Linux. 2014-05-13 10:04:20 -07:00
Roland McGrath 8c6d01f0b1 Consolidate NPTL configury for ARM/Linux. 2014-05-13 10:04:05 -07:00
Roland McGrath bba6da4e1b Consolidate NPTL vs non clone.S for ARM. 2014-05-13 10:03:45 -07:00
Joseph Myers 637461d965 Clean up kernel version conditionals for pre-2.6.32 kernels.
This patch does some initial cleanup, following the move to 2.6.32
minimum kernel version, by removing __LINUX_KERNEL_VERSION
conditionals that are now always-true or always-false.  In the case of
__ASSUME_ARG_MAX_STACK_BASED, where the conditional used a kernel
version that was itself in a macro, the associated sysconf.c code is
also cleaned up and __ASSUME_ARG_MAX_STACK_BASED removed completely.

Tested x86_64 that disassembly of installed shared libraries is
unchanged by the patch.

	* sysdeps/unix/sysv/linux/kernel-features.h [__s390__]
	(__ASSUME_UTIMES): Do not condition on kernel version.
	(__ASSUME_PSELECT): Define unconditionally.
	(__ASSUME_PPOLL): Likewise.
	(__ASSUME_ATFCTS): Likewise.
	(__ASSUME_SET_ROBUST_LIST): Do not condition on kernel version.
	(__ASSUME_COMPLETE_READV_WRITEV): Define unconditionally.
	(__ASSUME_FUTEX_LOCK_PI): Do not condition on kernel version.
	(__ASSUME_UTIMENSAT): Define unconditionally.
	(__ASSUME_PRIVATE_FUTEX): Likewise.
	(__ASSUME_FALLOCATE): Likewise.
	(__ASSUME_O_CLOEXEC): Likewise.
	(__LINUX_ARG_MAX_STACK_BASED_MIN_KERNEL): Remove.
	(__ASSUME_ARG_MAX_STACK_BASED): Likewise.
	(__ASSUME_ADJ_OFFSET_SS_READ): Define unconditionally.
	(__ASSUME_SOCK_CLOEXEC): Do not condition on kernel version.
	(__ASSUME_IN_NONBLOCK): Likewise.
	(__ASSUME_PIPE2): Likewise.
	(__ASSUME_EVENTFD2): Likewise.
	(__ASSUME_SIGNALFD4): Likewise.
	(__ASSUME_DUP3): Likewise.
	[__x86_64__ || __sparc__] (__ASSUME_ACCEPT4_SYSCALL): Likewise.
	(__ASSUME_FUTEX_CLOCK_REALTIME): Define unconditionally.
	(__ASSUME_AT_RANDOM): Likewise.
	(__ASSUME_PREADV): Likewise.
	(__ASSUME_PWRITEV): Likewise.
	(__ASSUME_REQUEUE_PI): Do not condition on kernel version.
	(__ASSUME_F_GETOWN_EX): Define unconditionally.
	(__ASSUME_XFS_RESTRICTED_CHOWN): Likewise.
	* sysdeps/unix/sysv/linux/sysconf.c (__sysconf)
	[!__ASSUME_ARG_MAX_STACK_BASED]: Remove conditional code.
	* sysdeps/unix/sysv/linux/alpha/kernel-features.h
	(__ASSUME_O_CLOEXEC): Define unconditionally.
	(__ASSUME_PSELECT): Do not undefine conditionally.
	(__ASSUME_PPOLL): Likewise.
	(__ASSUME_ATFCTS): Likewise.
	(__ASSUME_SET_ROBUST_LIST): Likewise.
	(__ASSUME_UTIMENSAT): Likewise.
	(__ASSUME_FDATASYNC): Define unconditionally.
	* sysdeps/unix/sysv/linux/arm/kernel-features.h
	(__ASSUME_SIGFRAME_V2): Likewise.
	)__ASSUME_EVENTFD2): Likewise.
	(__ASSUME_SIGNALFD4): Likewise.
	(__ASSUME_PSELECT): Do not undefine conditionally.
	(__ASSUME_PPOLL): Likewise.
	* sysdeps/unix/sysv/linux/ia64/kernel-features.h
	(__ASSUME_PSELECT): Define unconditionally.
	(__ASSUME_PPOLL): Likewise.
	(__ASSUME_O_CLOEXEC): Likewise.
	(__ASSUME_SOCK_CLOEXEC): Likewise.
	(__ASSUME_IN_NONBLOCK): Likewise.
	(__ASSUME_PIPE2): Likewise.
	(__ASSUME_EVENTFD2): Likewise.
	(__ASSUME_SIGNALFD4): Likewise.
	(__ASSUME_DUP3): Likewise.
	* sysdeps/unix/sysv/linux/m68k/kernel-features.h
	(__ASSUME_O_CLOEXEC): Likewise.
	(__ASSUME_SOCK_CLOEXEC): Likewise.
	(__ASSUME_IN_NONBLOCK): Likewise.
	(__ASSUME_PIPE2): Likewise.
	(__ASSUME_EVENTFD2): Likewise.
	(__ASSUME_SIGNALFD4): Likewise.
	(__ASSUME_DUP3): Likewise.
	* sysdeps/unix/sysv/linux/mips/kernel-features.h
	(__ASSUME_EVENTFD2): Likewise.
	(__ASSUME_SIGNALFD4): Likewise.
	(__ASSUME_ACCEPT4_SYSCALL): Likewise.
2014-05-12 22:48:25 +00:00
Roland McGrath 0f58d25277 Move ARM internal unwind.h header to the right sysdeps directory. 2014-05-06 15:55:20 -07:00
Will Newton 6d96f5e4c0 ARM: Remove lowlevellock.c
lowlevellock.c for arm differs from the generic lowlevellock.c only in
insignificant ways, so can be removed. Happily, this fixes BZ 15119
(unnecessary busy loop in __lll_timedlock_wait on arm).

The notable differences between the arm and generic implementations are:

1) arm __lll_timedlock_wait has a fast path out if futex has been set
to 0 between since the function was called. This seems unlikely to
happen very often, so it seems at worst harmless to lose this fast
path.

2) Some function in arm's lowlevellock.c set futex to 2 if it was 1.
The generic version always sets the futex to 2. As futex can only be
0, 1 or 2 on entry into these functions, the behaviour is equivalent.
(If the futex manages to be 0 on entry then we've just lost another
unlikely fast path out.)

There are no test suite regressions.

Note that hppa and sparc also have their own lowlevellock.c. I believe
hppa can also be removed, so I'll send a separate patch for that
shortly. sparc's seems to be genuinely needed as it uses a different
locking structure.

Also note that the analysis at
https://sourceware.org/ml/libc-ports/2013-02/msg00021.html indicates a
further locking performance bug to fix - I've got a partial patch for
that which I can submit once I've finished testing.

2014-05-01  Bernard Ogden <bernie.ogden@linaro.org>

	[BZ #15119]
	* sysdeps/unix/sysv/linux/arm/nptl/lowlevellock.c: Remove file.
2014-05-01 14:25:44 +01:00
Torvald Riegel 36875b06e0 Fixed and unified pthread_once.
[BZ #15215] This unifies various pthread_once architecture-specific
implementations which were using the same algorithm with slightly different
implementations.  It also adds missing memory barriers that are required for
correctness.
2014-04-11 15:54:19 +02:00
Adhemerval Zanella 01f8eac224 Move __PTHREAD_SPINS definition to architecture specific header
This patch moves the __PTHREAD_SPINS definition to arch specific header
since pthread_mutex_t layout is also arch specific.  This leads to no
need to defining __PTHREAD_MUTEX_HAVE_ELISION and thus removing of the
undefined compiler warning.
2014-04-09 06:41:44 -05:00
Joseph Myers 47c5adebd2 Correct robust mutex / PI futex kernel assumptions (bug 9894).
This patch continues fixing __ASSUME_* issues in preparation for
moving to a 2.6.32 minimum kernel version by addressing assumptions on
robust mutex and PI futex support availability.  Those assumptions are
bug 9894, but to be clear this patch does not address all the issues
from that bug about wrong version assumptions, only those still
applicable for --enable-kernel=2.6.32 or later (with the expectation
that the move to that minimum kernel will obsolete the other parts of
the bug).  The patch is independent of
<https://sourceware.org/ml/libc-alpha/2014-03/msg00585.html>, my other
pending-review patch preparing for the kernel version change; the two
together complete all the changes I believe are needed in preparation
regarding any macro in sysdeps/unix/sysv/linux/kernel-features.h that
would be affected by such a change.  (I have not checked the
correctness of macros whose conditions are unaffected by such a
change, or macros only defined in other kernel-features.h files.)

As discussed in that bug, robust mutexes and PI futexes need
futex_atomic_cmpxchg_inatomic to be implemented, in addition to
certain syscalls needed for robust mutexes (and
architecture-independent kernel pieces for all the features in
question).  That is, as I understand it, they need
futex_atomic_cmpxchg_inatomic to *work* (not return an ENOSYS error).

The issues identified in my analysis relate to ARM, M68K, MicroBlaze,
MIPS and SPARC.

On ARM, whether futex_atomic_cmpxchg_inatomic works depends on the
kernel configuration.  As of 3.13, the condition for *not* working is
CONFIG_CPU_USE_DOMAINS && CONFIG_SMP.  As of 2.6.32 it was simply
CONFIG_SMP that meant the feature was not implemented.  I don't know
if there are any circumstances in which we can say "we can assume a
userspace glibc binary built with these options will never run on a
kernel with the problematic configuration", but at least for now I'm
just undefining the relevant __ASSUME_* macros for ARM.

On M68K, two of the three macros are undefined for kernels before
3.10, but as far as I can see __ASSUME_FUTEX_LOCK_PI is in the same
group needing futex_atomic_cmpxchg_inatomic support and so should be
undefined as well.

On MicroBlaze the required support was added in 2.6.33.

On MIPS, the support depends on cpu_has_llsc in the kernel - that is,
actual hardware LL/SC support (GCC and glibc for MIPS GNU/Linux rely
on the instructions being supported in some way, but it may be kernel
emulation; futex_atomic_cmpxchg_inatomic doesn't work with that
emulation).  The same condition as in GCC for indicating LL/SC support
may not be available is used for undefining the macros in glibc,
__mips == 1 || defined _MIPS_ARCH_R5900.  (Maybe we could in fact
desupport MIPS processors without the hardware support in glibc.)

On SPARC, 32-bit kernels don't support futex_atomic_cmpxchg_inatomic;
__arch64__ || __sparc_v9__ is used as the condition for binaries that
won't run on 32-bit kernels.

This patch is not tested beyond the sanity check of an x86_64 build.

	[BZ #9894]
	* sysdeps/unix/sysv/linux/kernel-features.h
	[__sparc__ && !__arch64__ && !__sparc_v9__]
	(__ASSUME_SET_ROBUST_LIST): Do not define.
	[__sparc__ && !__arch64__ && !__sparc_v9__]
	(__ASSUME_FUTEX_LOCK_PI): Likewise.
	[__sparc__ && !__arch64__ && !__sparc_v9__] (__ASSUME_REQUEUE_PI):
	Likewise.
	* sysdeps/unix/sysv/linux/arm/kernel-features.h
	(__ASSUME_FUTEX_LOCK_PI): Undefine.
	(__ASSUME_REQUEUE_PI): Likewise.
	(__ASSUME_SET_ROBUST_LIST): Likewise.
	* sysdeps/unix/sysv/linux/m68k/kernel-features.h
	[__LINUX_KERNEL_VERSION < 0x030a00] (__ASSUME_FUTEX_LOCK_PI):
	Undefine.
	* sysdeps/unix/sysv/linux/microblaze/kernel-features.h
	[__LINUX_KERNEL_VERSION < 0x020621] (__ASSUME_FUTEX_LOCK_PI):
	Likewise.
	[__LINUX_KERNEL_VERSION < 0x020621] (__ASSUME_REQUEUE_PI):
	Likewise.
	[__LINUX_KERNEL_VERSION < 0x020621] (__ASSUME_SET_ROBUST_LIST):
	Likewise.
	* sysdeps/unix/sysv/linux/mips/kernel-features.h
	[__mips == 1 || _MIPS_ARCH_R5900] (__ASSUME_FUTEX_LOCK_PI):
	Undefine.
	[__mips == 1 || _MIPS_ARCH_R5900] (__ASSUME_REQUEUE_PI): Likewise.
	[__mips == 1 || _MIPS_ARCH_R5900] (__ASSUME_SET_ROBUST_LIST):
	Likewise.
2014-03-31 12:55:18 +00:00
Joseph Myers bc688c1029 Fix __ASSUME_SENDMMSG issues (bug 16611).
Similar to the issues for accept4 and recvmmsg, __ASSUME_SENDMMSG is
also confused about whether it relates to function availability or
socketcall operation availability, and the conditions for the
definition are always wrong (sendmmsg appeared in Linux kernel 3.0,
not 2.6.39); this is now bug 16611.

This patch splits the macro into separate macros like those for
accept4 and recvmmsg, defining them for appropriate kernel versions.

Tested x86_64, including that disassembly of the installed shared
libraries is unchanged by this patch.

	[BZ #16611]
	* sysdeps/unix/sysv/linux/kernel-features.h
	[__LINUX_KERNEL_VERSION >= 0x030000 && __ASSUME_SOCKETCALL]
	(__ASSUME_SENDMMSG_SOCKETCALL): Define.
	[__LINUX_KERNEL_VERSION >= 0x030000 && (__i386__ || __x86_64__ ||
	__powerpc__ || __sh__ || __sparc__)] (__ASSUME_SENDMMSG_SYSCALL):
	Likewise.
	[__i386__ || __powerpc__ || __sh__ || __sparc__]
	(__ASSUME_SENDMMSG_SYSCALL_WITH_SOCKETCALL): Likewise.
	[__ASSUME_SENDMMSG_SOCKETCALL || __ASSUME_SENDMMSG_SYSCALL]
	(__ASSUME_SENDMMSG): Define instead of using previous
	[__LINUX_KERNEL_VERSION >= 0x020627] condition.
	* sysdeps/unix/sysv/linux/aarch64/kernel-features.h
	(__ASSUME_SENDMMSG_SYSCALL): Define.
	* sysdeps/unix/sysv/linux/alpha/kernel-features.h
	[__LINUX_KERNEL_VERSION >= 0x030200] (__ASSUME_SENDMMSG_SYSCALL):
	Likewise.
	* sysdeps/unix/sysv/linux/arm/kernel-features.h
	[__LINUX_KERNEL_VERSION >= 0x030000] (__ASSUME_SENDMMSG_SYSCALL):
	Likewise.
	* sysdeps/unix/sysv/linux/ia64/kernel-features.h
	[__LINUX_KERNEL_VERSION >= 0x030000] (__ASSUME_SENDMMSG_SYSCALL):
	Likewise.
	* sysdeps/unix/sysv/linux/internal_sendmmsg.S [__ASSUME_SOCKETCALL
	&& !__ASSUME_SENDMMSG_SYSCALL_WITH_SOCKETCALL &&
	!__ASSUME_SENDMMSG_SYSCALL] (__NR_sendmmsg): Undefine.
	[__ASSUME_SENDMMSG]: Change conditionals to
	[__ASSUME_SENDMMSG_SOCKETCALL].
	* sysdeps/unix/sysv/linux/microblaze/kernel-features.h
	[__LINUX_KERNEL_VERSION >= 0x030300] (__ASSUME_SENDMMSG_SYSCALL):
	Define.
	* sysdeps/unix/sysv/linux/mips/kernel-features.h
	[__LINUX_KERNEL_VERSION >= 0x030100] (__ASSUME_SENDMMSG_SYSCALL):
	Likewise.
	* sysdeps/unix/sysv/linux/sendmmsg.c [__ASSUME_SOCKETCALL &&
	!__ASSUME_SENDMMSG_SYSCALL_WITH_SOCKETCALL &&
	!__ASSUME_SENDMMSG_SYSCALL] (__NR_sendmmsg): Undefine.
	[!__ASSUME_SENDMMSG]: Change conditional to
	[!__ASSUME_SENDMMSG_SOCKETCALL].
	* sysdeps/unix/sysv/linux/tile/kernel-features.h
	[__LINUX_KERNEL_VERSION >= 0x030000] (__ASSUME_SENDMMSG_SYSCALL):
	Define.

	* sysdeps/unix/sysv/linux/hppa/kernel-features.h
	[__LINUX_KERNEL_VERSION >= 0x030100] (__ASSUME_SENDMMSG_SYSCALL):
	Define.
2014-02-20 17:55:35 +00:00
Joseph Myers 0e31b18ca2 Fix __ASSUME_RECVMMSG issues (bug 16610).
Similar to the issues for accept4, __ASSUME_RECVMMSG is also confused
about whether it relates to function availability or socketcall
operation availability; this is now bug 16610.

Nothing actually tests __ASSUME_RECVMMSG for function availability,
but implicit in the definition in kernel-features.h is the idea that
it makes sense when the syscall is available and socketcall is not
being used.  As with accept4, there are architectures where the
syscall was added later than the socketcall operation, meaning that
assuming glibc is built with recent enough kernel headers, it does not
attempt to use socketcall for these operations and __ASSUME_RECVMMSG
gets defined for kernels >= 2.6.33 even when the syscall was only
added later.

This patch splits the macro into separate macros like those used for
accept4; having similar macro structure in both cases (and for
sendmmsg once I've dealt with that) seems likely to be less confusing
than having a different structure on the basis of nothing actually
needing to assume the recvmmsg function works.  Appropriate
definitions are added for all architectures.

Architecture-specific note: Tile's kernel-features.h says "TILE glibc
support starts with 2.6.36", which is accurate in that 2.6.36 was the
first kernel version with Tile support, and on that basis I've made
that header define __ASSUME_RECVMMSG_SYSCALL unconditionally.
However, Tile's configure.ac has arch_minimum_kernel=2.6.32.  Since
arch_minimum_kernel is meant to reflect only kernel.org kernel
versions, I think that should change to 2.6.36.  (If using glibc with
kernel versions from before a port went in kernel.org, it's your
responsibility to change arch_minimum_kernel in a local patch, and at
the same time to adjust any __ASSUME_* definitions that may not be
correct for your older kernel; for developing the official glibc it
should only ever be necessary to consider what official kernel.org
releases support.)

Tested x86_64, including that disassembly of the installed shared
libraries is unchanged by this patch.

	[BZ #16610]
	* sysdeps/unix/sysv/linux/kernel-features.h
	[__LINUX_KERNEL_VERSION >= 0x020621 && __ASSUME_SOCKETCALL]
	(__ASSUME_RECVMMSG_SOCKETCALL): Define.
	[(__LINUX_KERNEL_VERSION >= 0x020621 && (__i386__ || __x86_64__ ||
	__sparc__)) || (__LINUX_KERNEL_VERSION >= 0x020625 && (__powerpc__
	|| __sh__))] (__ASSUME_RECVMMSG_SYSCALL): Likewise.
	[__i386__ || __sparc__]
	(__ASSUME_RECVMMSG_SYSCALL_WITH_SOCKETCALL): Likewise.
	[__ASSUME_RECVMMSG_SOCKETCALL || __ASSUME_RECVMMSG_SYSCALL]
	(__ASSUME_RECVMMSG): Define instead of using previous
	[__LINUX_KERNEL_VERSION >= 0x020621] condition.
	* sysdeps/unix/sysv/linux/aarch64/kernel-features.h
	(__ASSUME_RECVMMSG_SYSCALL): Define.
	* sysdeps/unix/sysv/linux/alpha/kernel-features.h
	[__LINUX_KERNEL_VERSION >= 0x020621] (__ASSUME_RECVMMSG_SYSCALL):
	Likewise.
	* sysdeps/unix/sysv/linux/arm/kernel-features.h
	[__LINUX_KERNEL_VERSION >= 0x020621] (__ASSUME_RECVMMSG_SYSCALL):
	Likewise.
	* sysdeps/unix/sysv/linux/ia64/kernel-features.h
	[__LINUX_KERNEL_VERSION >= 0x020621] (__ASSUME_RECVMMSG_SYSCALL):
	Likewise.
	* sysdeps/unix/sysv/linux/internal_recvmmsg.S [__ASSUME_SOCKETCALL
	&& !__ASSUME_RECVMMSG_SYSCALL_WITH_SOCKETCALL &&
	!__ASSUME_RECVMMSG_SYSCALL] (__NR_recvmmsg): Undefine.
	[__ASSUME_RECVMMSG]: Change condition to
	[__ASSUME_RECVMMSG_SOCKETCALL].
	* sysdeps/unix/sysv/linux/microblaze/kernel-features.h
	[__LINUX_KERNEL_VERSION >= 0x020621] (__ASSUME_RECVMMSG_SYSCALL):
	Define.
	(__ASSUME_RECVMMSG_SYSCALL_WITH_SOCKETCALL): Likewise.
	* sysdeps/unix/sysv/linux/mips/kernel-features.h
	[__LINUX_KERNEL_VERSION >= 0x020621] (__ASSUME_RECVMMSG_SYSCALL):
	Likewise.
	* sysdeps/unix/sysv/linux/recvmmsg.c [__ASSUME_SOCKETCALL &&
	!__ASSUME_RECVMMSG_SYSCALL_WITH_SOCKETCALL &&
	!__ASSUME_RECVMMSG_SYSCALL] (__NR_recvmmsg): Undefine.
	[!__ASSUME_RECVMMSG]: Change condition to
	[!__ASSUME_RECVMMSG_SOCKETCALL].
	* sysdeps/unix/sysv/linux/tile/kernel-features.h
	(__ASSUME_RECVMMSG_SYSCALL): Define.

	* sysdeps/unix/sysv/linux/hppa/kernel-features.h
	[__LINUX_KERNEL_VERSION >= 0x020622] (__ASSUME_RECVMMSG_SYSCALL):
	Define.
2014-02-20 17:53:08 +00:00
Joseph Myers dd481ccffd Fix __ASSUME_ACCEPT4 issues (bug 16609).
In <https://sourceware.org/ml/libc-alpha/2013-12/msg00008.html>,
Aurelien noted issues with the definition of __ASSUME_ACCEPT4, which I
discussed in more detail in
<https://sourceware.org/ml/libc-alpha/2013-12/msg00014.html>; these
are now bug 16609.

As previously noted, __ASSUME_ACCEPT4 is used in two ways:

* In OS-independent code, to mean "accept4 can be assumed to work
  rather than fail with ENOSYS".  It doesn't matter whether it's
  implemented with socketcall or a separate syscall.

* In Linux-specific code, to mean "the socketcall multiplex syscall
  can be assumed to handle the accept4 operation.  When used in
  Linux-specific code, it *never* refers to anything relating to the
  accept4 syscall, only to the socketcall multiplexer.

This patch splits the macro into separate __ASSUME_ACCEPT4_SOCKETCALL,
__ASSUME_ACCEPT4_SYSCALL and __ASSUME_ACCEPT4 to clarify the different
cases involved.  A macro __ASSUME_SOCKETCALL is added for convenience
in writing logic relating to all socketcall architectures.  In
addition, to address the issue of architectures where socketcall
support for accept4 was added before a separate syscall was added (and
so the separate syscall should not be used unless known to be present
or fallback to socketcall is available), a fourth macro
__ASSUME_ACCEPT4_SYSCALL_WITH_SOCKETCALL is added to indicate that the
syscall became available at the same time as socketcall support.  This
is then used in the relevant places in a conditional determining
whether to undefine __NR_accept4 (the simple approach to avoiding the
syscall's presence causing problems; I didn't try to implement runtime
fallback from the syscall to socketcall).

Architecture-specific note: alpha defined __ASSUME_ACCEPT4 for 2.6.33
and later, but actually the syscall was added for alpha in 3.2, so
this patch uses the correct condition for __ASSUME_ACCEPT4_SYSCALL
there.

Tested x86_64, including that disassembly of the installed shared
libraries is unchanged by this patch.

	[BZ #16609]
	* sysdeps/unix/sysv/linux/kernel-features.h [__i386__ ||
	__powerpc__ || __s390__ || __sh__ || __sparc__]
	(__ASSUME_SOCKETCALL): Define.
	[__LINUX_KERNEL_VERSION && __ASSUME_SOCKETCALL]
	(__ASSUME_ACCEPT4_SOCKETCALL): Likewise.
	[(__LINUX_KERNEL_VERSION >= 0x02061c && (__x86_64__ || __sparc__))
	|| (__LINUX_KERNEL_VERSION >= 0x020625 && (__powerpc__ ||
	__sh__))] (__ASSUME_ACCEPT4_SYSCALL): Likewise.
	[__sparc__] (__ASSUME_ACCEPT4_SYSCALL_WITH_SOCKETCALL): Likewise.
	[__ASSUME_ACCEPT4_SOCKETCALL || __ASSUME_ACCEPT4_SYSCALL]
	(__ASSUME_ACCEPT4): Define instead of using previous
	[__LINUX_KERNEL_VERSION >= 0x02061c && (__i386__ || __x86_64__ ||
	__powerpc__ || __sparc__ || __s390__)] condition.
	* sysdeps/unix/sysv/linux/aarch64/kernel-features.h
	(__ASSUME_ACCEPT4): Change to __ASSUME_ACCEPT4_SYSCALL.
	* sysdeps/unix/sysv/linux/accept4.c [__ASSUME_SOCKETCALL &&
	!__ASSUME_ACCEPT4_SYSCALL_WITH_SOCKETCALL &&
	!__ASSUME_ACCEPT4_SYSCALL] (__NR_accept4): Undefine.
	[!__ASSUME_ACCEPT4]: Change condition to
	[!__ASSUME_ACCEPT4_SOCKETCALL].
	* sysdeps/unix/sysv/linux/alpha/kernel-features.h
	(__ASSUME_ACCEPT4): Change to __ASSUME_ACCEPT4_SYSCALL.  Correct
	condition to [__LINUX_KERNEL_VERSION >= 0x030200].
	* sysdeps/unix/sysv/linux/arm/kernel-features.h
	[__LINUX_KERNEL_VERSION >= 0x020624] (__ASSUME_ACCEPT4): Change to
	__ASSUME_ACCEPT4_SYSCALL.
	* sysdeps/unix/sysv/linux/i386/accept4.S [__ASSUME_ACCEPT4]:
	Change conditions to [__ASSUME_ACCEPT4_SOCKETCALL].
	* sysdeps/unix/sysv/linux/ia64/kernel-features.h
	[__LINUX_KERNEL_VERSION >= 0x030300] (__ASSUME_ACCEPT4): Change to
	__ASSUME_ACCEPT4_SYSCALL.
	* sysdeps/unix/sysv/linux/internal_accept4.S [__ASSUME_SOCKETCALL
	&& !__ASSUME_ACCEPT4_SYSCALL_WITH_SOCKETCALL &&
	!__ASSUME_ACCEPT4_SYSCALL] (__NR_accept4): Undefine.
	[__ASSUME_ACCEPT4]: Change condition to
	[__ASSUME_ACCEPT4_SOCKETCALL].
	* sysdeps/unix/sysv/linux/m68k/kernel-features.h
	(__ASSUME_SOCKETCALL): Define.
	[__LINUX_KERNEL_VERSION >= 0x02061c] (__ASSUME_ACCEPT4): Remove.
	* sysdeps/unix/sysv/linux/microblaze/kernel-features.h
	(__ASSUME_SOCKETCALL): Define.
	(__ASSUME_ACCEPT4): Remove.
	[__LINUX_KERNEL_VERSION >= 0x020621] (__ASSUME_ACCEPT4_SYSCALL):
	Define.
	* sysdeps/unix/sysv/linux/mips/kernel-features.h
	[__LINUX_KERNEL_VERSION >= 0x02061f] (__ASSUME_ACCEPT4_SYSCALL):
	Likewise.
	* sysdeps/unix/sysv/linux/tile/kernel-features.h
	(__ASSUME_ACCEPT4): Change to __ASSUME_ACCEPT4_SYSCALL.

	* sysdeps/unix/sysv/linux/hppa/kernel-features.h
	[__LINUX_KERNEL_VERSION >= 0x020622] (__ASSUME_ACCEPT4_SYSCALL):
	Define.
2014-02-20 17:50:31 +00:00
Joseph Myers 5d7b57cad5 Update ARM HWCAP data.
This patch updates the ARM HWCAP data (both bits/hwcap.h and
dl-procinfo.[ch]) to match Linux 3.13.

	* sysdeps/unix/sysv/linux/arm/bits/hwcap.h (HWCAP_ARM_VFPD32): New
	macro.
	(HWCAP_ARM_LPAE): Likewise.
	(HWCAP_ARM_EVTSTRM): Likewise.
	* sysdeps/unix/sysv/linux/arm/dl-procinfo.c (_dl_arm_cap_flags):
	Add vpfd32, lpae and evtstrm.
	* sysdeps/unix/sysv/linux/arm/dl-procinfo.h (_DL_HWCAP_COUNT):
	Increase to 22.
2014-02-20 03:29:34 +00:00
Joseph Myers 4ac049e1c9 Fix whitespace in ARM files to allow move. 2014-02-08 01:52:38 +00:00
Joseph Myers c6bfe5c4d7 Move arm from ports to libc.
I've moved the ARM port from ports to the main sysdeps hierarchy.
Beyond the README update, the move of the files was simply

git mv ports/sysdeps/arm sysdeps/arm
git mv ports/sysdeps/unix/arm sysdeps/unix/arm
git mv ports/sysdeps/unix/sysv/linux/arm sysdeps/unix/sysv/linux/arm

and in addition to the ChangeLog entries here, I put a note at the top
of ports/ChangeLog.arm similar to that at the top of
ChangeLog.powerpc.  There is deliberately no NEWS change, as I think
it makes the most sense to put in a general note above all ports
having moved if we can achieve that for 2.20.

Tested that disassembly of installed shared libraries for arm is the
same before and after this patch, except for data (not instructions)
in ld.so (there are assertions in sysdeps/arm/dl-machine.h, and the
path by which that file is found, and so by which it appears in the
assertion message, changes as a result of the move).

	* sysdeps/arm: Move directory from ports/sysdeps/arm.
	* sysdeps/unix/arm: Move directory from ports/sysdeps/unix/arm.
	* sysdeps/unix/sysv/linux/arm: Move directory from
	ports/sysdeps/unix/sysv/linux/arm.
	* README: Update listing for arm-*-linux-gnueabi.

ports/ChangeLog.arm:
	* sysdeps/arm: Move directory to ../sysdeps/arm.
	* sysdeps/unix/arm: Move directory to ../sysdeps.arm.
	* sysdeps/unix/sysv/linux/arm: Move directory to
	../sysdeps/unix/sysv/linux/arm.
2014-02-08 01:49:39 +00:00
Roland McGrath ce9b3bc17a Move arm port to ports repository
2005-05-23  Roland McGrath  <roland@redhat.com>

	* sysdeps/arm, sysdeps/unix/arm, sysdeps/unix/sysv/linux/arm:
	Subdirectories moved to ports repository.
	* configure.in (base_machine): Remove arm* and thumb* patterns.
	* shlib-versions (arm.*-.*-linux.*): Remove this pattern.
2005-05-24 06:18: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
Roland McGrath 577e4aa1ec * sysdeps/arm/sysdep.h: Define __USE_BX__ if bx is available.
Use it instead of __THUMB_INTERWORK__.  Make RETINSTR take
	only a condition and a register.
	* sysdeps/arm/dl-machine.h: Use __USE_BX__ instead of
	__THUMB_INTERWORK__.
	(_dl_start_user): Use BX.
	* sysdeps/arm/strlen.S: Use DO_RET.
	* sysdeps/unix/arm/brk.S, sysdeps/unix/arm/fork.S,
	sysdeps/unix/arm/sysdep.S, sysdeps/unix/arm/sysdep.h: Likewise.
	* sysdeps/unix/sysv/linux/arm/clone.S,
	sysdeps/unix/sysv/linux/arm/mmap.S,
	sysdeps/unix/sysv/linux/arm/mmap64.S,
	sysdeps/unix/sysv/linux/arm/socket.S,
	sysdeps/unix/sysv/linux/arm/sysdep.h,
	sysdeps/unix/sysv/linux/arm/vfork.S: Update uses of RETINSTR.
2004-12-04 21:20:42 +00:00
Andreas Jaeger c18f7e37a0 [BZ #341] (O_NOATIME): Define. 2004-08-23 07:28:46 +00:00
Ulrich Drepper 5ce98c3f3f Update.
2004-05-03  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/unix/bsd/bits/fcntl.h (F_SETOWN, F_GETOWN): Define if
	__USE_BSD or __USE_UNIX98.
	* sysdeps/unix/bsd/ultrix4/bits/fcntl.h (F_SETOWN, F_GETOWN): Likewise.
	* sysdeps/unix/bsd/bsd4.4/bits/fcntl.h (F_SETOWN, F_GETOWN): Likewise.
	* sysdeps/unix/bsd/sun/sunos4/bits/fcntl.h (F_SETOWN, F_GETOWN):
	Likewise.
	* sysdeps/unix/common/bits/fcntl.h (F_SETOWN, F_GETOWN): Likewise.
	* sysdeps/unix/sysv/aix/bits/fcntl.h (F_SETOWN, F_GETOWN): Likewise.
	* sysdeps/unix/sysv/irix4/bits/fcntl.h (F_SETOWN, F_GETOWN): Likewise.
	* sysdeps/unix/sysv/linux/alpha/bits/fcntl.h (F_SETOWN, F_GETOWN):
	Likewise.
	* sysdeps/unix/sysv/linux/s390/bits/fcntl.h (F_SETOWN, F_GETOWN):
	Likewise.
	* sysdeps/unix/sysv/linux/cris/bits/fcntl.h (F_SETOWN, F_GETOWN):
	Likewise.
	*sysdeps/unix/sysv/linux/powerpc/bits/fcntl.h (F_SETOWN, F_GETOWN):
	Likewise.
	* sysdeps/unix/sysv/linux/sparc/bits/fcntl.h (F_SETOWN, F_GETOWN):
	Likewise.
	* sysdeps/unix/sysv/linux/mips/bits/fcntl.h (F_SETOWN, F_GETOWN):
	Likewise.
	* sysdeps/unix/sysv/linux/sh/bits/fcntl.h (F_SETOWN, F_GETOWN):
	Likewise.
	* sysdeps/unix/sysv/linux/i386/bits/fcntl.h (F_SETOWN, F_GETOWN):
	Likewise.
	* sysdeps/unix/sysv/linux/m68k/bits/fcntl.h (F_SETOWN, F_GETOWN):
	Likewise.
	* sysdeps/unix/sysv/linux/ia64/bits/fcntl.h (F_SETOWN, F_GETOWN):
	Likewise.
	* sysdeps/unix/sysv/linux/arm/bits/fcntl.h (F_SETOWN, F_GETOWN):
	Likewise.
	* sysdeps/unix/sysv/linux/hppa/bits/fcntl.h (F_SETOWN, F_GETOWN):
	Likewise.
	* sysdeps/unix/sysv/linux/x86_64/bits/fcntl.h (F_SETOWN, F_GETOWN):
	Likewise.
	* sysdeps/generic/bits/fcntl.h (F_SETOWN, F_GETOWN): Likewise.
	* sysdeps/mach/hurd/bits/fcntl.h (F_SETOWN, F_GETOWN): Likewise.
	* io/sys/stat.h (S_ISSOCK, S_IFSOCK): Likewise.

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

	* posix/Versions (libc): Remove __libc_wait, __libc_waitpid,
	__libc_pause, __libc_nanosleep, __libc_pread, __libc_pread64,
	__libc_pwrite64, __waitid and __pselect @@GLIBC_PRIVATE.
	* stdlib/Versions (libc): Remove __on_exit@@GLIBC_PRIVATE.
	* sysdeps/unix/sysv/linux/Versions (libc): Remove
	__libc_sigaction@@GLIBC_PRIVATE.
	* sysdeps/unix/sysv/linux/x86_64/Versions (libc): Remove
	__modify_ldt@@GLIBC_PRIVATE.
	* socket/Versions (libc): Remove __libc_accept, __libc_send,
	__libc_recvfrom, __libc_recvmsg, __libc_sendmsg, __libc_recv,
	__libc_sendto and __libc_connect @@GLIBC_PRIVATE.
	* stdio-common/Versions (libc): Remove
	_itoa_upper_digits@@GLIBC_PRIVATE.
	* resolv/Versions (libresolv): Remove __ns_samename@@GLIBC_PRIVATE.
	* misc/Versions (libc): Remove __libc_fsync, __libc_msync,
	__libc_readv and __libc_writev @@GLIBC_PRIVATE.
	* termios/Versions (libc): Remove __libc_tcdrain@@GLIBC_PRIVATE.
	* io/Versions (libc): Remove __libc_open, __libc_close, __libc_read,
	__libc_write, __libc_lseek, __libc_fcntl, __libc_open64 and
	__libc_lseek64 @@GLIBC_PRIVATE.

2004-04-30  Jakub Jelinek  <jakub@redhat.com>

	* elf/dl-load.c (open_verify): Move e_phentsize check after e_type
	check.

2004-04-29  Steven Munroe  <sjmunroe@us.ibm.com>

	* sysdeps/powerpc/powerpc64/fpu/s_ceil.S: New file.
	* sysdeps/powerpc/powerpc64/fpu/s_ceilf.S: New file.
	* sysdeps/powerpc/powerpc64/fpu/s_floor.S: New file.
	* sysdeps/powerpc/powerpc64/fpu/s_floorf.S: New file.
	* sysdeps/powerpc/powerpc64/fpu/s_llrint.c: Removed.
	* sysdeps/powerpc/powerpc64/fpu/s_llrint.S: New file.
	* sysdeps/powerpc/powerpc64/fpu/s_llrintf.c: Removed.
	* sysdeps/powerpc/powerpc64/fpu/s_llrintf.S: New file.
	* sysdeps/powerpc/powerpc64/fpu/s_llround.S: New file.
	* sysdeps/powerpc/powerpc64/fpu/s_llroundf.S: New file.
	* sysdeps/powerpc/powerpc64/fpu/s_lround.S: New file.
	* sysdeps/powerpc/powerpc64/fpu/s_lroundf.S: New file.
	* sysdeps/powerpc/powerpc64/fpu/s_rint.S: New file.
	* sysdeps/powerpc/powerpc64/fpu/s_rintf.S: New file.
	* sysdeps/powerpc/powerpc64/fpu/s_round.S: New file.
	* sysdeps/powerpc/powerpc64/fpu/s_roundf.S: New file.
	* sysdeps/powerpc/powerpc64/fpu/s_trunc.S: New file.
	* sysdeps/powerpc/powerpc64/fpu/s_truncf.S: New file.

	* math/test-misc.c [LDBL_MANT_DIG == 106](main): Correct LDBL_MAX
	mantissa for AIX long double format.
	* misc/qefgcvt.c [LDBL_MANT_DIG == 106] (NDIGIT_MAX): Define for AIX
	long double format.
	* misc/qefgcvt_r.c [LDBL_MANT_DIG == 106] (NDIGIT_MAX): Likewise.
	* stdlib/fpioconst.c [!__NO_LONG_DOUBLE_MATH && __LDBL_MAX_EXP__>1024]
	(_fpioconst_pow10): AIX long double format has same exponent range as
	double.
	* stdlib/fpioconst.h [!__NO_LONG_DOUBLE_MATH && __LDBL_MAX_EXP__>1024]
	(LDBL_MAX_10_EXP_LOG): AIX long double format has same exponent range
	as double.

2004-04-23  Art Haas  <ahaas@airmail.net>

	* sysdeps/unix/sysv/linux/kernel-features.h: Add 'defined'.
2004-05-03 21:40:12 +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 a658675d7b Update.
2004-01-20  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/unix/sysv/linux/readahead.c (__readahead): Use off64_t
	instead of loff_t.  Include <fcntl.h>.
	* sysdeps/unix/sysv/linux/alpha/bits/fcntl.h: Add readahead prototype.
	* sysdeps/unix/sysv/linux/arm/bits/fcntl.h: Likewise.
	* sysdeps/unix/sysv/linux/cris/bits/fcntl.h: Likewise.
	* sysdeps/unix/sysv/linux/hppa/bits/fcntl.h: Likewise.
	* sysdeps/unix/sysv/linux/i386/bits/fcntl.h: Likewise.
	* sysdeps/unix/sysv/linux/ia64/bits/fcntl.h: Likewise.
	* sysdeps/unix/sysv/linux/m68k/bits/fcntl.h: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/bits/fcntl.h: Likewise.
	* sysdeps/unix/sysv/linux/s390/bits/fcntl.h: Likewise.
	* sysdeps/unix/sysv/linux/sh/bits/fcntl.h: Likewise.
	* sysdeps/unix/sysv/linux/sparc/bits/fcntl.h: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/bits/fcntl.h: Likewise.

	* elf/dl-load.c: Don't add attribute_relro to max_dirnamelen.

	* sysdeps/generic/inttypes.h: Fix PRI*FAST{16,32} macros.

	* include/unistd.h (__libc_enable_secure): Mark attribute_relro.
	(__libc_enable_secure_internal): Likewise.
	* elf/dl-load.c: Don't declare __libc_stack_end.
	* sysdeps/generic/libc-start.c: Likewise.
	* sysdeps/unix/sysv/linux/dl-execstack.c: Likewise.
	* sysdeps/generic/segfault.c: Likewise.  Include ldsodefs.h.
	* sysdeps/generic/backtrace.c: Likewise.
2004-01-20 23:25:27 +00:00
Ulrich Drepper ed91314ee8 Update.
* sysdeps/unix/sysv/linux/cris/bits/mman.h: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/bits/mman.h: Likewise.
2003-09-25 16:53:29 +00:00
Ulrich Drepper 06f6ca9019 Update.
2003-09-17  Philip Blundell  <philb@gnu.org>

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

	* dirent/dirent.h: Remove __THROW from scandir.

2003-09-14  Philip Blundell  <philb@gnu.org>

	* sysdeps/unix/sysv/linux/arm/mmap.S: Use sys_mmap2 if it's known
	to be available.

	* sysdeps/unix/sysv/linux/arm/mmap64.S: Optimise code a little.

	* sysdeps/arm/memset.S: Rewrite.
2003-09-14 20:38:01 +00:00
Ulrich Drepper 4a244f0dce Update.
2003-09-02  Jakub Jelinek  <jakub@redhat.com>

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

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

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

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

	* intl/loadmsgcat.c: For _LIBC, call not cancelable versions of
	open, close, and read.
2003-09-03 03:22:23 +00:00
Ulrich Drepper 28c97261ea Update.
2003-08-31  Philip Blundell  <philb@gnu.org>

	* sysdeps/unix/sysv/linux/arm/Versions: Add posix_fadvise64 and
	posix_fallocate64 at GLIBC_2.3.3.
2003-08-31 18:55:52 +00:00
Ulrich Drepper 47ceb39de3 Update.
2003-08-25  Philip Blundell  <philb@gnu.org>

	* sysdeps/unix/sysv/linux/arm/sysdep.h (PSEUDO_ERRVAL): Define.
	(PSEUDO_END_ERRVAL, ret_ERRVAL): Likewise.
2003-08-25 18:31:28 +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
Roland McGrath 312472fc4d * sysdeps/unix/sysv/linux/arm/sysdep.h (PSEUDO_RET_NOERRNO): Use
unconditional mov.  Remove nop.

	* sysdeps/unix/sysv/linux/kernel-features.h
	(__ASSUME_VFORK_SYSCALL): Define for kernel 2.4 on arm.
	* sysdeps/unix/sysv/linux/arm/vfork.S: Elide compatibility code
	when __ASSUME_VFORK_SYSCALL is defined.
	* sysdeps/unix/sysv/linux/arm/mmap64.S: Likewise for
	__ASSUME_MMAP2_SYSCALL.
	* sysdeps/unix/sysv/linux/arm/sigaction.c: Likewise for
	__ASSUME_REALTIME_SIGNALS.
2003-03-27 02:45:58 +00:00
Roland McGrath 8eed661a56 2003-03-27 Philip Blundell <philb@gnu.org>
* sysdeps/unix/sysv/linux/kernel-features.h
	(__ASSUME_VFORK_SYSCALL): Define for kernel 2.4 on arm.
	* sysdeps/unix/sysv/linux/arm/vfork.S: Elide compatibility code
	when __ASSUME_VFORK_SYSCALL is defined.
	* sysdeps/unix/sysv/linux/arm/mmap64.S: Likewise for
	__ASSUME_MMAP2_SYSCALL.
	* sysdeps/unix/sysv/linux/arm/sigaction.c: Likewise for
	__ASSUME_REALTIME_SIGNALS.
2003-03-27 02:45:47 +00:00
Ulrich Drepper c6289757d6 Update.
2003-03-24  Philip Blundell  <philb@gnu.org>

	* sysdeps/unix/sysv/linux/arm/sysdep.h (INTERNAL_SYSCALL):
	Remove a1 from clobber list.

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

	* timezone/antarctica: Update from tzdata2003a.
	* timezone/asia: Likewise.
	* timezone/australasia: Likewise.
	* timezone/europe: Likewise.
	* timezone/iso3166.tab: Likewise.
	* timezone/northamerica: Likewise.
	* timezone/southamerica: Likewise.
	* timezone/zone.tab: Likewise.

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

	* sysdeps/powerpc/powerpc64/sysdep.h (PSEUDO_END_NOERRNO): Fix typo.
2003-03-24 19:36:57 +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 d15a8404ef Update.
2003-03-03  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/unix/sysv/linux/syscalls.list: Add remap_file_pages entry.
	* misc/sys/mman.h: Add prototype for remap_file_pages.
	* sysdeps/generic/remap_file_pages.c: New file.

	* sysdeps/unix/sysv/linux/x86_64/bits/mman.h: Define MAP_POPULATE
	and MAP_NONBLOCK.
	* sysdeps/unix/sysv/linux/s390/bits/mman.h: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/bits/mman.h: Likewise
	* sysdeps/unix/sysv/linux/m68k/bits/mman.h: Likewise.
	* sysdeps/unix/sysv/linux/arm/bits/mman.h: Likewise.
	* sysdeps/unix/sysv/linux/ia64/bits/mman.h: Likewise.
	* sysdeps/unix/sysv/linux/hppa/bits/mman.h: Likewise.
	* sysdeps/unix/sysv/linux/alpha/bits/mman.h: Likewise.
	* sysdeps/unix/sysv/linux/i386/bits/mman.h: Likewise.

	* sysdeps/unix/clock_settime.c (HANDLE_REALTIME): Add missing brace.
2003-03-03 10:05:49 +00:00
Ulrich Drepper 0585697658 Update.
2002-07-24  Philip Blundell  <philb@gnu.org>

	* sysdeps/unix/sysv/linux/arm/ioperm.c (init_iosys): Yield ENODEV
	on unknown systems.

2003-02-20  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>

	* sysdeps/powerpc/powerpc32/atomicity.h: Remove compiler workaround.
	* sysdeps/unix/sysv/linux/kernel-features.h
	(__ASSUME_NEW_PRCTL_SYSCALL): Defined for ppc32 too.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/fe_nomask.c: Use prctl
	if possible.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S: Avoid short
	interprocedure branches.
	* sysdeps/powerpc/soft-fp/Dist (sim-full.c, fenv_const.c): Move to...
	* sysdeps/powerpc/nofpu/Dist: ...here.
	* sysdeps/unix/sysv/linux/powerpc/Dist (fe_nomask.c): Move to...
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/Dist: ...here.
	* sysdeps/unix/sysv/linux/s390/s390-64/Dist (kernel_stat.h): Delete.
	* sysdeps/unix/sysv/linux/sparc/Dist (bits/utmpx.h): Delete.
	* sysdeps/unix/sysv/linux/x86_64/Dist (bits/utmpx.h): Delete.
2003-02-20 22:23:34 +00:00
Ulrich Drepper 44ed664bfd Update.
2003-02-20  Philip Blundell  <philb@gnu.org>

	* sysdeps/unix/sysv/linux/arm/sysdep.h (INLINE_SYSCALL): Add
	missing arguments to INTERNAL_SYSCALL_ERROR_P and
	INTERNAL_SYSCALL_ERRNO.
2003-02-20 20:23:25 +00:00
Ulrich Drepper aff4519d38 Update.
2003-01-11  Jim Meyering  <jim@meyering.net>

	* io/ftw.c [HAVE_CONFIG_H]: Include <config.h>.
	[HAVE_SYS_PARAM_H || _LIBC]: Guard inclusion of <sys/param.h>.
	Include <sys/stat.h>, not <include/sys/stat.h>, if !_LIBC.
	[!_LIBC] (__chdir, __closedir, __fchdir, __getcwd, __opendir): Define.
	[!_LIBC] (__readdir64, __tdestroy, __tfind, __tsearch): Define.
	[!_LIBC] (internal_function, dirent64, MAX): Define.
	(__set_errno): Define if not already defined.
	(open_dir_stream): When FTW_CHDIR is enabled, invoke opendir on
	the basename, not the entire file name.
	(process_entry): When FTW_CHDIR is enabled, invoke XSTAT or LXSTAT on
	the basename, not the entire file name.

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

	* string/tester.c (test_strcpy): Disable last added strcpy until
	it is fixed.

2003-01-11  Philip Blundell  <philb@gnu.org>

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

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

	* Makerules: Add vpath for %.dynsym and %.so so that the
	implicit rule chaining for check-abi works.

2003-01-11  Kaz Kojima  <kkojima@rr.iij4u.or.jp>

	* sysdeps/unix/sysv/linux/sh/sysdep.h (SYSCALL_ERROR_HANDLER):
	Add non-PIC case.

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

	* elf/tls-macros.h [__ia64__] (__TLS_CALL_CLOBBERS): Define.
	[__ia64__] (TLS_LE, TLS_IE): Fix typos.  Add ;; at start of asm if
	gp is used early.
	[__ia64__] (TLS_LD, TLS_GD): Likewise.  Use __TLS_CALL_CLOBBERS.
	* elf/Makefile ($(objpfx)tst-tlsmod5.so, $(objpfx)tst-tlsmod6.so):
	Ensure libc.so in DT_NEEDED.
	* sysdeps/alpha/dl-machine.h (elf_machine_rela): Move
	CHECK_STATIC_TLS before l_tls_offset use.
	* sysdeps/i386/dl-machine.h (elf_machine_rel, elf_machine_rela):
	Likewise.
	* sysdeps/sh/dl-machine.h (elf_machine_rela): Likewise.
	* sysdeps/generic/dl-tls.c (_dl_allocate_tls_storage) [TLS_DTV_AT_TP]:
	Allocate TLS_PRE_TCB_SIZE bytes below result.
	(_dl_deallocate_tls) [TLS_DTV_AT_TP]: Adjust before freeing.
	* sysdeps/generic/libc-tls.c (__libc_setup_tls): If
	TLS_INIT_TP_EXPENSIVE is not defined, allocate even if no PT_TLS
	segment has been found.  If TLS_DTV_AT_TP, allocate TLS_PRE_TCB_SIZE
	bytes below result and add tcb_offset to memsz.
	* sysdeps/ia64/dl-tls.h (__tls_get_addr): New prototype.
	* sysdeps/ia64/dl-machine.h: Include tls.h.
	(elf_machine_type_class): Return ELF_RTYPE_CLASS_PLT for TLS relocs
	too.
	(elf_machine_rela): Assume if sym_map != NULL sym is non-NULL too.
	Handle R_IA64_DTPMOD*, R_IA64_DTPREL* and R_IA64_TPREL* relocations.
	* sysdeps/ia64/libc-tls.c: New file.

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

	* sysdeps/powerpc/powerpc64/sysdep.h (PSEUDO_RET): Add branch hit.
	* sysdeps/unix/sysv/linux/powerpc/bits/stat.h (STAT_VER_LINUX):
	Fix type.  Move definition out of #if.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/ftruncate64.c: New file.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/pread.c: New file.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/pread64.c: New file.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/pwrite.c: New file.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/pwrite64.c: New file.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/socket.S: Add cancellation
	support.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/syscalls.list: Remove
	ftruncate64, pread64, pwrite64, truncate64 entries.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep.h
	(INLINE_SYSCALL): New version that supports function call like
	syscalls.  Add __builtin_expect.
	(LOADARGS_n): Add argument size safety checks.
	(INTERNAL_SYSCALL): New Macro.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/truncate64.c: New file.
	* sysdeps/unix/sysv/linux/powerpc/sys/procfs.h [__PPC_ELF_H]: Avoid
	redefinition of elf_fpreg_t and elf_fpregset_t.

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

	* elf/dl-close.c (_dl_close): Add several asserts.  Correct and
	simplify test for unloading.  If loader of a DSO is unloaded do not
	use its scope anymore.  Fall back to own scope and adjust opencounts.
	Fix several comments.
	* elf/dl-deps.c (_dl_map_object_deps): Always allocate memory for
	the l_searchlist, not only for l_initfini.

	* elf/dl-lookup.c (add_dependencies): Avoid creating relocation
	dependencies if objects cannot be removed.  Remove object with the
	definition as not unloadable if necessary.

	* elf/reldep6.c: Create relocation dependency before closing the first
	module.

2003-01-10  Guido Gnther  <agx@sigxcpu.org>
	* elf/Makefile: Add rules to build and run reldep9 test.
	* elf/reldep9.c: New file.
	* elf/reldep9mod1.c: New file.
	* elf/reldep9mod2.c: New file.
	* elf/reldep9mod3.c: New file.

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

	* elf/Makefile: Add rules to build and run nodelete2 test.
	* elf/nodelete2.c: New file.
	* elf/nodel2mod1.c: New file.
	* elf/nodel2mod2.c: New file.
	* elf/nodel2mod3.c: New file.

2003-01-09  Jakub Jelinek  <jakub@redhat.com>
2003-01-12 10:11:16 +00:00
Ulrich Drepper 6aca81bb9d Update.
2003-01-08  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/unix/sysv/linux/arm/sysdep.h (INTERNAL_SYSCALL,
	INTERNAL_SYSCALL_ERROR_P, INTERNAL_SYSCALL_ERRNO): Add err
	argument.
	(INTERNAL_SYSCALL_DECL): Define.

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

	* sysdeps/unix/sysv/linux/ia64/sysdep.h (INTERNAL_SYSCALL,
	INTERNAL_SYSCALL_ERROR_P, INTERNAL_SYSCALL_ERRNO): Add err
	argument.
	(INTERNAL_SYSCALL_DECL): Define.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep.h: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sysdep.h: Likewise.
	* sysdeps/unix/sysv/linux/i386/sysdep.h: Likewise.
	(INLINE_SYSCALL): Adjust.
	* sysdeps/unix/sysv/linux/s390/s390-32/sysdep.h: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h: Likewise.
	* sysdeps/unix/sysv/linux/m68k/sysdep.h: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/sysdep.h: Likewise.
	* elf/dl-misc.c (_dl_debug_vdprintf): Add INTERNAL_SYSCALL_DECL,
	add err argument to INTERNAL_SYSCALL* macros.
	* sysdeps/unix/sysv/linux/i386/brk.c (__brk): Likewise.
	* sysdeps/unix/sysv/linux/i386/system.c (cancel_handler): Likewise.
	* sysdeps/unix/sysv/linux/m68k/brk.c (__brk): Likewise.
	* sysdeps/unix/sysv/linux/m68k/getpagesize.c  (__getpagesize):
	Likewise.
	* sysdeps/unix/sysv/linux/sigwait.c (do_sigwait): Likewise.
	* sysdeps/unix/sysv/linux/i386/sigaction.c (__libc_sigaction): Use
	INLINE_SYSCALL instead of INTERNAL_SYSCALL and setting errno.
2003-01-09 04:19:03 +00:00
Ulrich Drepper b5facfdac0 Update.
2003-01-06  Philip Blundell  <philb@gnu.org>

	* sysdeps/unix/arm/sysdep.S (syscall_error): Optimise a little.
	[__LIBC_REENTRANT]: Unify PIC and non-PIC cases.

	* sysdeps/unix/sysv/linux/arm/sysdep.h (PSEUDO): Remove .type
	directive.
	(PSEUDO_RET): Use SYSCALL_ERROR in place of __syscall_error.
	(SYSCALL_ERROR): New.
	(SYSCALL_ERROR_HANDLER) [NOT_IN_libc]: Provide local copy of error
	handling code.
	(INTERNAL_SYSCALL): Define.
	(INLINE_SYSCALL): Use it.
	(INTERNAL_SYSCALL_ERROR_P, INTERNAL_SYSCALL_ERRNO): Define.
	* sysdeps/unix/sysv/linux/arm/socket.S (__socket): Use
	SYSCALL_ERROR in place of __syscall_error.

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

	* sysdeps/ia64/bits/byteswap.h [__GNUC__ >= 2] (__bswap_16,
	__bswap_32, __bswap_64): Put x into temporary variable
	to avoid warnings.
	[!__GNUC__] (__bswap_16, __bswap_32, __bswap_64): Change into static
	(inline) functions.
	* sysdeps/s390/bits/byteswap.h [__GNUC__ >= 2] (__bswap_16,
	__bswap_32, __bswap_64): Put x into temporary variable
	to avoid warnings.
	[!__GNUC__] (__bswap_16, __bswap_32, __bswap_64): Change into static
	(inline) functions.
	* sysdeps/i386/bits/byteswap.h [!__GNUC__] (__bswap_16, __bswap_32):
	Likewise.

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

	* sysdeps/unix/sysv/linux/alpha/adjtime.c (ntp_adjtime): New weak
	alias.
2003-01-08 00:22:00 +00:00
Ulrich Drepper bf293afeca Update.
2003-01-02  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/unix/sysv/linux/arm/sigaction.c (__sigaction,
	sigaction): Protect weak_alias and libc_hidden_weak with
	#ifndef LIBC_SIGACTION.
	* sysdeps/unix/sysv/linux/ia64/sigaction.c (__sigaction,
	sigaction): Likewise.
	* sysdeps/unix/sysv/linux/mips/sigaction.c (__sigaction,
	sigaction): Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-64/sigaction.c (__sigaction,
	sigaction): Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/sigaction.c (__sigaction,
	sigaction): Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/sigaction.c (__sigaction,
	sigaction): Likewise.
	* sysdeps/unix/sysv/linux/x86_64/sigaction.c (__sigaction,
	sigaction): Likewise.
	* sysdeps/unix/sysv/linux/i386/sigaction.c (__sigaction,
	sigaction): Likewise.  Remove SIGCANCEL handling here.
	* sysdeps/unix/sysv/linux/sigaction.c (__sigaction, sigaction):
	Likewise.
2003-01-03 01:35:14 +00:00
Ulrich Drepper a4baf360be Update.
* io/sys/stat.h [__USE_MISC]: Define __need_timespec for struct stat.
	* sysdeps/unix/sysv/linux/xstatconv.c (xstat_conv): Adjust for
	nsec resolution changes.
	(xstat64_conv): Likewise.
	(xstat32_conv): Likewise.
	* sysdeps/unix/sysv/linux/kernel_stat.h: Add nsec resolution for
	struct kernel_stat.
	* sysdeps/unix/sysv/linux/bits/stat.h: Add nsec resolution for
	structs stat and stat64.
	* time/time.h (__timespec_defined): Define for __USE_MISC.

2002-12-31  Ulrich Drepper  <drepper@redhat.com>

	* include/signal.h: Add libc_hidden_proto for __libc_current_sigrtmin
	and __libc_current_sigrtmax.

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

	* include/errno.h (__errno_location): Add prototype.
	Use libc_hidden_proto unconditionally.
	* include/netdb.h (__h_errno_location): Use libc_hidden_proto
	unconditionally.
	* include/resolv.h (__res_state): Likewise.

	* hurd/errno-loc.c (__errno_location): Add libc_hidden_def.
	* include/sys/socket.h (accept): Add libc_hidden_proto.
	* include/errno.h (__errno_location): Likewise.
	* include/netdb.h (__h_errno_location): Likewise.
	* include/resolv.h (__res_state): Likewise.
	* include/unistd.h (__lseek): Likewise.
	* sysdeps/generic/errno-loc.c (__errno_location): Add libc_hidden_def.
	* sysdeps/generic/herrno-loc.c (__h_errno_location): Likewise.
	* sysdeps/generic/res-state.c (__res_state): Likewise.
	* sysdeps/generic/accept.c (accept): Likewise.
	* sysdeps/generic/lseek.c (__lseek): Likewise.
	* sysdeps/generic/allocrtsig.c (__libc_current_sigrtmin,
	__libc_current_sigrtmax): Likewise.
	* sysdeps/mach/hurd/accept.c (accept): Likewise.
	* sysdeps/mach/hurd/lseek.c (__lseek): Likewise.
	* sysdeps/unix/sysv/aix/accept.c (accept): Likewise.
	* sysdeps/unix/sysv/aix/lseek.c (__lseek): Likewise.
	* sysdeps/unix/sysv/linux/accept.S (accept): Likewise.
	* sysdeps/unix/inet/syscalls.list (__GI_accept): New alias to accept.
	* sysdeps/unix/sysv/linux/alpha/syscalls.list (__GI_accept): Likewise.
	* sysdeps/unix/sysv/linux/hppa/syscalls.list (__GI_accept): Likewise.
	* sysdeps/unix/sysv/linux/ia64/syscalls.list (__GI___lseek): New
	alias to llseek.
	(__GI_accept): New alias to accept.
	* sysdeps/unix/sysv/linux/mips/syscalls.list (__GI_accept): Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-64/syscalls.list (__GI___lseek):
	New alias to llseek.
	(__GI_accept): New alias to accept.
	* sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list (__GI_accept):
	Likewise.
	* sysdeps/unix/sysv/linux/x86_64/syscalls.list (__GI_accept):
	Likewise.
	* sysdeps/unix/syscalls.list (__GI___lseek): New alias to lseek.

	* sysdeps/alpha/setjmp.S : Use libc_hidden_def(name) instead of
	strong_alias (name, __GI_name).
	* sysdeps/arm/bsd-_setjmp.S : Likewise.
	* sysdeps/hppa/bsd-_setjmp.S : Likewise.
	* sysdeps/i386/bsd-_setjmp.S : Likewise.
	* sysdeps/mips/mips64/bsd-_setjmp.S : Likewise.
	* sysdeps/mips/bsd-_setjmp.S : Likewise.
	* sysdeps/powerpc/powerpc32/bsd-_setjmp.S : Likewise.
	* sysdeps/powerpc/powerpc64/setjmp.S : Likewise.
	* sysdeps/s390/s390-32/elf/setjmp.S : Likewise.
	* sysdeps/s390/s390-32/bsd-_setjmp.S : Likewise.
	* sysdeps/s390/s390-64/elf/setjmp.S : Likewise.
	* sysdeps/s390/s390-64/bsd-_setjmp.S : Likewise.
	* sysdeps/sh/bsd-_setjmp.S : Likewise.
	* sysdeps/sparc/sparc32/setjmp.S : Likewise.
	* sysdeps/unix/arm/fork.S : Likewise.
	* sysdeps/unix/bsd/hp/m68k/vfork.S : Likewise.
	* sysdeps/unix/bsd/i386/vfork.S : Likewise.
	* sysdeps/unix/bsd/osf/alpha/fork.S : Likewise.
	* sysdeps/unix/bsd/sun/m68k/vfork.S : Likewise.
	* sysdeps/unix/bsd/ultrix4/mips/vfork.S : Likewise.
	* sysdeps/unix/bsd/vax/vfork.S : Likewise.
	* sysdeps/unix/i386/fork.S : Likewise.
	* sysdeps/unix/mips/fork.S : Likewise.
	* sysdeps/unix/sparc/fork.S : Likewise.
	* sysdeps/unix/sparc/vfork.S : Likewise.
	* sysdeps/unix/sysv/linux/arm/vfork.S : Likewise.
	* sysdeps/unix/sysv/linux/cris/vfork.S : Likewise.
	* sysdeps/unix/sysv/linux/i386/vfork.S : Likewise.
	* sysdeps/unix/sysv/linux/ia64/fork.S : Likewise.
	* sysdeps/unix/sysv/linux/ia64/setjmp.S : Likewise.
	* sysdeps/unix/sysv/linux/ia64/vfork.S : Likewise.
	* sysdeps/unix/sysv/linux/m68k/vfork.S : Likewise.
	* sysdeps/unix/sysv/linux/sh/vfork.S : Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/longjmp.S : Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/setjmp.S : Likewise.
	* sysdeps/unix/sysv/linux/sparc/fork.S : Likewise.
	* sysdeps/unix/sysv/linux/sparc/vfork.S : Likewise.
	* sysdeps/unix/sysv/linux/x86_64/vfork.S : Likewise.
	* sysdeps/unix/fork.S : Likewise.
	* sysdeps/vax/bsd-_setjmp.S : Likewise.
	* sysdeps/x86_64/bsd-_setjmp.S : Likewise.

	* sysdeps/unix/sysv/linux/ia64/sysdep.h: Guard against multiple
	inclusion.
2002-12-31 20:46:11 +00:00
Ulrich Drepper d1436edcb9 Update.
* include/unistd.h: Add libc_hidden_proto for __fork and __vfork.
	* sysdeps/generic/fork.c: Add libc_hidden_def for __fork.
	* sysdeps/mach/hurd/fork.c: Likewise.
	* sysdeps/unix/sysv/aix/fork.c: Likewise.
	* sysdeps/unix/fork.S: Add __GI___fork alias.
	* sysdeps/unix/arm/fork.S: Likewise.
	* sysdeps/unix/bsd/osf/alpha/fork.S: Likewise.
	* sysdeps/unix/i386/fork.S: Likewise.
	* sysdeps/unix/mips/fork.S: Likewise.
	* sysdeps/unix/sparc/fork.S: Likewise.
	* sysdeps/unix/sysv/linux/ia64/fork.S: Likewise.
	* sysdeps/unix/sysv/linux/sparc/fork.S: Likewise.
	* sysdeps/unix/sysv/linux/syscalls.list: Likewise.
	* sysdeps/generic/vfork.c: Add libc_hidden_def for __vfork.
	* sysdeps/unix/bsd/hp/m68k/vfork.S: Add __GI___vfork alias.
	* sysdeps/unix/bsd/i386/vfork.S: Likewise.
	* sysdeps/unix/bsd/sun/m68k/vfork.S: Likewise.
	* sysdeps/unix/bsd/ultrix4/mips/vfork.S: Likewise.
	* sysdeps/unix/bsd/vax/vfork.S: Likewise.
	* sysdeps/unix/sparc/vfork.S: Likewise.
	* sysdeps/unix/sysv/linux/arm/vfork.S: Likewise.
	* sysdeps/unix/sysv/linux/cris/vfork.S: Likewise.
	* sysdeps/unix/sysv/linux/i386/vfork.S: Likewise.
	* sysdeps/unix/sysv/linux/ia64/vfork.S: Likewise.
	* sysdeps/unix/sysv/linux/m68k/vfork.S: Likewise.
	* sysdeps/unix/sysv/linux/sh/vfork.S: Likewise.
	* sysdeps/unix/sysv/linux/sparc/vfork.S: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/vfork.S: Likewise.
2002-12-31 11:12:11 +00:00
Ulrich Drepper e361ccd999 Update.
2002-12-20  Art Haas  <ahaas@airmail.net>

	* sysdeps/gnu/siglist.c: Convert GCC extension initializer
	syntax to C99.

2002-12-21  Philip Blundell  <philb@gnu.org>

	* sysdeps/arm/elf/start.S (_start): Optimise a little.  Push stack
	top as seventh arg to __libc_start_main.
	Reported by paulnash@wildseed.com.

	* sysdeps/unix/sysv/linux/arm/clone.S: Small optimisation.

	* sysdeps/unix/sysv/linux/arm/sigcontextinfo.h: Elide
	compatibility cruft when new enough kernel is assumed.
2002-12-21 18:53:25 +00:00
Roland McGrath 15deb6b3b4 * sysdeps/gnu/siglist.c (PTR_SIZE_STR): Remove.
(__old_sys_siglist, __old_sys_sigabbrev): Use strong_alias and
	declare_symbol.
	* sysdeps/mach/hurd/siglist.h (OLD_SIGLIST_SIZE_STR): Remove.
	(OLD_SIGLIST_SIZE): Define.
	* sysdeps/unix/sysv/linux/siglist.h (OLD_SIGLIST_SIZE_STR): Remove.
	(OLD_SIGLIST_SIZE): Define.
	* sysdeps/unix/sysv/linux/arm/siglist.c: Remove.
2002-11-01 20:48:37 +00:00
Roland McGrath f7d1f342cc 2002-10-15 Roland McGrath <roland@redhat.com>
* sysdeps/unix/sysv/linux/bits/resource.h: Replaced with the contents
	of the sysdeps/unix/sysv/linux/i386/bits/resource.h file.
	All the following files were identical or equivalent to it.
	* sysdeps/unix/sysv/linux/i386/bits/resource.h: File removed.
	* sysdeps/unix/sysv/linux/arm/bits/resource.h: File removed.
	* sysdeps/unix/sysv/linux/cris/bits/resource.h: File removed.
	* sysdeps/unix/sysv/linux/hppa/bits/resource.h: File removed.
	* sysdeps/unix/sysv/linux/ia64/bits/resource.h: File removed.
	* sysdeps/unix/sysv/linux/m68k/bits/resource.h: File removed.
	* sysdeps/unix/sysv/linux/powerpc/bits/resource.h: File removed.
	* sysdeps/unix/sysv/linux/s390/bits/resource.h: File removed.
	* sysdeps/unix/sysv/linux/sh/bits/resource.h: File removed.
	* sysdeps/unix/sysv/linux/x86_64/bits/resource.h: File removed.
2002-10-16 01:02:25 +00:00
Ulrich Drepper 5e3ab761da (profil_counter): Add hack to prevent the compiler from clobbering the signal context. 2002-10-14 17:26:14 +00:00
Roland McGrath 6bdcd619a4 2002-10-13 Roland McGrath <roland@frob.com>
* 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.
2002-10-14 01:02:54 +00:00
Roland McGrath ce460d04a5 * sysdeps/generic/bits/libc-tsd.h [USE___THREAD]: Conditional
changed from [USE_TLS && HAVE___THREAD].

	* sysdeps/i386/dl-machine.h (elf_machine_type_class, elf_machine_rel):
	Disable TLS relocs if [RTLD_BOOTSTRAP && !USE___THREAD].
	* sysdeps/x86_64/dl-machine.h
	(elf_machine_type_class, elf_machine_rela): Likewise.
	* sysdeps/sh/dl-machine.h (elf_machine_type_class, elf_machine_rela):
	Likewise.

	* include/link.h (struct link_map): Remove member l_tls_tp_initialized.
	* elf/rtld.c (_dl_start_final, dl_main): Don't use it.
	(_dl_start): Conditionalize PT_TLS check on [USE___THREAD].

	* sysdeps/i386/dl-tls.h (__TLS_GET_ADDR): Use ___tls_get_addr_internal
	instead of ___tls_get_addr.
	(___tls_get_addr_internal): Add attribute_hidden to decl.

	* sysdeps/generic/ldsodefs.h (struct rtld_global): New variable
	_dl_error_catch_tsd.
	* elf/rtld.c (startup_error_tsd): New function.
	(dl_main): Point _dl_error_catch_tsd at that.
	* elf/dl-error.c: Don't use libc-tsd.h for DL_ERROR,
	use new function pointer instead.
	* elf/dl-tsd.c: New file.
	* elf/Makefile (routines): Add it.

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

	* elf/dl-misc.c (_dl_debug_vdprintf): Use INTERNAL_SYSCALL macro for
	writev if it's available.  Otherwise if [RTLD_PRIVATE_ERRNO] then
	take _dl_load_lock around calling __writev.

	* sysdeps/unix/sysv/linux/i386/sysdep.h (INTERNAL_SYSCALL): New macro.
	(INLINE_SYSCALL): Use that.

	* sysdeps/generic/dl-sysdep.h: New file.
	* sysdeps/mach/hurd/dl-sysdep.h: New file.
	* sysdeps/generic/ldsodefs.h: Include <dl-sysdep.h>.
	* include/errno.h [IS_IN_rtld]: Include <dl-sysdep.h> to define ...
	[RTLD_PRIVATE_ERRNO]: Use a hidden global variable for errno and
	access it directly.
	* elf/dl-minimal.c (__errno_location): Removed.
	* sysdeps/unix/i386/sysdep.S (__syscall_errno) [RTLD_PRIVATE_ERRNO]:
	Use GOTOFF access for errno.
	* sysdeps/unix/sysv/linux/i386/sysdep.h
	[RTLD_PRIVATE_ERRNO] (SYSCALL_ERROR_HANDLER): Likewise.

	* sysdeps/unix/x86_64/sysdep.S (__syscall_errno) [RTLD_PRIVATE_ERRNO]:
	Use PC-relative access for errno.
	* sysdeps/unix/sysv/linux/x86_64/sysdep.h
	[RTLD_PRIVATE_ERRNO] (SYSCALL_ERROR_HANDLER): Likewise.

	* include/tls.h: New file.
	(USE___THREAD): New macro.
	Define to 1 under [USE_TLS && HAVE___THREAD] and only when compiling
	libc or libpthread.
	* sysdeps/unix/sysv/linux/i386/sysdep.h [USE___THREAD]: Conditional
	changed from [USE_TLS && HAVE___THREAD].
	* sysdeps/unix/sysv/linux/x86_64/sysdep.h: Likewise.
	* sysdeps/unix/i386/sysdep.S: Likewise.
	* sysdeps/unix/x86_64/sysdep.S: Likewise.
	* include/errno.h: Likewise.
	* include/netdb.h: Likewise.
	* include/resolv.h: Likewise.

	* sysdeps/generic/errno.c: New file.
	* csu/Makefile (aux): New variable, list errno.
	* sysdeps/unix/sysv/linux/i386/sysdep.S (errno, _errno): Remove defns.
	* sysdeps/unix/sysv/linux/m68k/sysdep.S: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/sysdep.S: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-64/sysdep.S: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/sysdep.S: Likewise.
	* sysdeps/unix/sysv/linux/arm/sysdep.S: Likewise.
	* sysdeps/unix/sysv/linux/cris/sysdep.S: Likewise.
	* sysdeps/unix/sysv/linux/hppa/sysdep.c: Likewise.
	* sysdeps/unix/sysv/linux/ia64/sysdep.S: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/sysdep.c: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sysdep.S: Likewise.
	* sysdeps/unix/sysv/linux/sh/sysdep.S: Likewise.
	* sysdeps/unix/alpha/sysdep.S: Likewise.
	* sysdeps/generic/start.c: Likewise.
	* sysdeps/unix/start.c: Likewise.
	* sysdeps/unix/arm/start.c: Likewise.
	* sysdeps/unix/bsd/ultrix4/mips/start.S: Likewise.
	* sysdeps/unix/sparc/start.c: Likewise.
	* sysdeps/unix/sysv/irix4/start.c: Likewise.
	* sysdeps/unix/sysv/linux/mips/sysdep.S: File removed.

	* manual/search.texi (Tree Search Function, Hash Search Function):
	Mention search.h clearly.

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

	* elf/dl-fxstat64.c: File removed.
	* elf/dl-xstat64.c: File removed.
	* elf/Makefile (rtld-routines): Remove them.
	* sysdeps/unix/sysv/linux/xstat64.c: Remove RTLD_STAT64 conditionals.
	Instead, use strong_alias instead of versioned_symbol in the
	!SHLIB_COMPAT case.
	* sysdeps/unix/sysv/linux/fxstat64.c: Likewise.
	* sysdeps/unix/sysv/linux/lxstat64.c: Likewise.

	* include/shlib-compat.h
	(SHLIB_COMPAT): Require that IS_IN_##lib be defined nonzero.
	[! NOT_IN_libc] (IS_IN_libc): Define it.
	* cppflags-iterator.mk (CPPFLAGS-$(cpp-src)): Use -Dx=1 not just -Dx.
	* elf/Makefile (CPPFLAGS-.os): Likewise.

	* sunrpc/rpc_main.c (main): Don't declare with noreturn attribute.
	Return the status instead of calling exit.

	* Makeconfig (CFLAGS): Prepend -std=gnu99.
	* Makerules (+make-deps): Use $(CFLAGS) only for .c sources.
	Remove superfluous rm command, whose @ plus make bugs hid
	all these commands from the make output.

	* include/stubs-prologue.h: New file.  Give #error under #ifdef _LIBC.
	* Makefile ($(inst_includedir)/gnu/stubs.h): Depend on it.
	Use that file's contents instead of literal echo's for the prologue.
	* include/features.h: Include <gnu/stubs.h> unconditionally.
	* include/gnu/stubs.h: New file.

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

	* elf/rtld-Rules: New file.
	* elf/Makefile ($(objpfx)librtld.map, $(objpfx)librtld.mk,
	$(objpfx)rtld-libc.a): New targets.
	(generated): Add them.
	(reloc-link): Remove -o $@ from the variable.
	($(objpfx)dl-allobjs.os): Add -o $@ after $(reloc-link).
	(distribute): Add rtld-Rules.
	(CPPFLAGS-.os): Define this instead of CFLAGS-.os.
	* Makerules ($(+sysdir_pfx)sysd-rules): Emit rules for rtld-% targets.
	(common-mostlyclean, common-clean): Clean up rtld-* files.
	* sysdeps/unix/make-syscalls.sh: Add rtld-*.os target name to rules.
2002-10-11 10:52:20 +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
Roland McGrath 4022d8ed03 2002-08-26 Roland McGrath <roland@redhat.com>
* sysdeps/gnu/Versions: New file.
	* sysdeps/unix/sysv/linux/Versions (libc: GLIBC_2.1): Remove
	_sys_errlist; sys_errlist; _sys_nerr; sys_nerr; from here.
	* sysdeps/gnu/Makefile ($(..)sysdeps/gnu/errlist-compat.c): New target.
	($(objpfx)errlist.d): Depend on $(..)sysdeps/gnu/errlist-compat.c.
	* sysdeps/gnu/errlist.awk: Make output define _sys_errlist_internal
	and _sys_nerr_internal instead of anything else.  Make it include
	"errlist-compat.c" if [!NOT_IN_libc && !ERRLIST_NO_COMPAT].
	Make it emit some asm magic if [EMIT_ERR_MAX].
	* sysdeps/gnu/errlist.c: Regenerated.
	* sysdeps/gnu/errlist-compat.awk: New file.
	* sysdeps/gnu/errlist-compat.c: New file (generated).
	* sysdeps/mach/hurd/errlist.c (ERRLIST_NO_COMPAT): New macro.
	(_sys_errlist_internal): Define this as	a macro for _hurd_errlist.
	(_sys_nerr_internal): Define this is a macro for _hurd_nerr.
	(SYS_ERRLIST, SYS_NERR): Macros removed.
	(sys_nerr, _sys_nerr): Remove these weak aliases.
	* sysdeps/unix/sysv/linux/errlist.c: File removed.
	* sysdeps/unix/sysv/linux/errlist.h: File removed.
	* sysdeps/unix/sysv/linux/arm/errlist.c: File removed.
2002-08-27 09:22:36 +00:00
Roland McGrath ffa8d2a098 * locale/programs/ld-ctype.c (ctype_read): When given a repertoire
name of "", store a null pointer instead.

	* configure.in (elf): Set to yes for freebsd*, netbsd*.
	* configure: Regenerated.

	* locale/xlocale.c [! (USE_TLS && HAVE___THREAD)] (__libc_tsd_LOCALE):
	Initialize this instead of __libc_tsd_LOCALE_data.

	* sysdeps/unix/grantpt.c (pts_name): Convert ENOTTY return from
	ptsname_r to EINVAL.

	* sysdeps/generic/ptsname.c (__ptsname_r): Return ENOSYS instead of 0.

	* rt/Makefile: Revert last change, it was inappropriate to presume aio
	implementations depend on pthreads.
	* rt/tst-aio.c (do_test): Exit happy if first failure is ENOSYS.
	* rt/tst-aio64.c (do_test): Likewise.
	* rt/tst-aio2.c (do_test): Likewise.
	* rt/tst-aio3.c (do_test): Likewise.
	* rt/tst-aio4.c (do_test): Likewise.
	* rt/tst-aio5.c (do_test): Likewise.
	* rt/tst-aio6.c (do_test): Likewise.
	* rt/tst-aio7.c (do_test): Likewise.

	* sysdeps/generic/bits/libc-lock.h (__libc_setspecific): Use a cast to
	void so as to avoid compiler warnings.

	* libio/oldstdfiles.c [! _IO_MTSAFE_IO] (DEF_STDFILE): Don't define
	_IO_wide_data_FD, which is never used here.

	* libio/iofread.c
	[! _IO_MTSAFE_IO] (fread_unlocked): Add libc_hidden_ver defn.
	* libio/iofputs.c [! _IO_MTSAFE_IO] (fputs_unlocked): Likewise.
	* libio/iofgets.c [! _IO_MTSAFE_IO] (fgets_unlocked): Likewise.

	* include/resolv.h [! _LIBC_REENTRANT] (_res): #undef it before decl.
	* include/netdb.h [! _LIBC_REENTRANT] (h_errno): Declare normal extern.

	* misc/syslog.c (openlog): Conditionalize locking on [_LIBC_REENTRANT].
	(closelog): Likewise.

2002-07-06  Bruno Haible  <bruno@clisp.org>

	* sysdeps/alpha/fpu/fpu_control.h: Comment fix.

	* sysdeps/unix/sysv/linux/alpha/pipe.S: Moved to ...
	* sysdeps/unix/alpha/pipe.S: ... here.
	* sysdeps/unix/bsd/osf/alpha/pipe.S: File removed.

	* sysdeps/unix/i386/brk.S: Rename local label to '.Lhere' in ELF.

	* sysdeps/unix/i386/brk.S: Add PSEUDO_END invocation.
	* sysdeps/unix/i386/fork.S: Likewise.
	* sysdeps/unix/i386/pipe.S: Likewise.
	* sysdeps/unix/i386/wait.S: Likewise.

	* sysdeps/unix/fork.S: Fix PSEUDO_END argument.
	* sysdeps/unix/arm/fork.S: Likewise.

	* sysdeps/unix/sysv/linux/arm/sysdep.h (PSEUDO): Swap DO_CALL
	arguments.
	(DO_CALL): Swap argument order.
	* sysdeps/unix/sysv/linux/hppa/sysdep.h (PSEUDO): Swap DO_CALL
	arguments.
	(DO_CALL): Swap argument order.
	* sysdeps/unix/sysv/linux/i386/sysdep.h (PSEUDO): Swap DO_CALL
	arguments.
	(DO_CALL): Swap argument order.
	* sysdeps/unix/sysv/linux/s390/s390-32/sysdep.h (PSEUDO): Swap DO_CALL
	arguments.
	(DO_CALL): Swap argument order.
	* sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h (PSEUDO): Swap DO_CALL
	arguments.
	(DO_CALL): Swap argument order.
	* sysdeps/unix/sysv/linux/sh/sysdep.h (PSEUDO): Swap DO_CALL
	arguments.
	(DO_CALL): Swap argument order.
	* sysdeps/unix/sysv/linux/x86_64/sysdep.h (PSEUDO): Swap DO_CALL
	arguments.
	(DO_CALL): Swap argument order.

	* sysdeps/i386/sysdep.h (PSEUDO): Fix syntax error.
	(L): Define right for ELF.
	* sysdeps/unix/sysv/linux/i386/sysdep.h (L): Remove definition.
	Now defined in sysdeps/i386/sysdep.h.

	* sysdeps/posix/readv.c: Ansify function definition.
	* sysdeps/posix/writev.c: Likewise.

	* stdio-common/tst-fseek.c (main): Don't assume that off_t and size_t
	have the same size. Avoid direct cast from size_t to off_t.

	* login/tst-utmp.c (simulate_login): Don't leave garbage after the
	nul byte in entry[n].ut_user.
	(simulate_logout): Likewise.

	* login/programs/utmpdump.c (print_entry): Test _HAVE_UT_TYPE,
	_HAVE_UT_PID, _HAVE_UT_ID, _HAVE_UT_HOST, instead of assuming the
	existence of corresponding members of 'struct utmp'.
	* login/tst-utmp.c: Trivialize the test if testing 'struct utmp' and
	!_HAVE_UT_TYPE.

	* sysdeps/unix/opendir.c (__opendir): If st_blksize is 0 or too small,
	allocate a buffer of at least BUFSIZ bytes, not just of
	sizeof (struct dirent).

	* sysdeps/generic/glob.c: Include <limits.h>.
	(NAME_MAX): Define a fallback.
	(glob_in_dir): Allocate enough room for a 'struct dirent64' on the
	stack.
	* posix/tst-dir.c: Include <stddef.h>, for offsetof.
	(main): Allocate enough room for a 'struct dirent64' on the stack.
	* posix/tst-gnuglob.c (my_DIR): Allocate enough room for a
	'struct dirent'.

	* sysdeps/unix/sysv/linux/init-first.c: Don't include
	kernel-features.h.

	* inet/htontest.c: Include <sys/types.h>.

	* sysdeps/generic/sys/sysinfo.h: Surround with __{BEGIN,END}_DECLS.

	* include/sys/sysctl.h: Comment fix.

	* elf/rtld.c (_rtld_global) [! _LIBC_REENTRANT]: Don't initialize
	_dl_load_lock.
	* libio/fileno.c (fileno_unlocked): Define regardless of _IO_MTSAFE_IO.

	* sysdeps/unix/bsd/bsd4.4/syscalls.list (__sigaltstack): New alias.

	* sysdeps/unix/inet/syscalls.list (__connect_internal): New alias.
	(__getpeername): New alias.
	(__getsockname): New alias.
	(__socket): New alias.

	* sysdeps/unix/common/syscalls.list (getpgid): Remove.

	* sysdeps/unix/syscalls.list (__chown_internal): New alias.
	(__fcntl_internal): New alias.
	(__profil): New alias.
2002-08-26 11:39:12 +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
Ulrich Drepper 230491f02c Update.
2002-08-04  Ulrich Drepper  <drepper@redhat.com>

	* stdio-common/psignal.c: Declare _sys_siglist_internal.  Use USEINT
	to access _sys_siglist.
	* string/strsignal.c: Likewise.
	* sysdeps/generic/siglist.c: Add _sys_siglist_internal alias.
	* sysdeps/gnu/siglist.c: Likewise.
	* sysdeps/unix/siglist.c: Likewise.
	* sysdeps/unix/sysv/linux/arm/siglist.c: Likewise.

	* libio/fileops.c: Add missing INTUSEs for _IO_file_jumps.

	* libio/wfileops.c: Add missing INTUSE for _IO_file_close.

	* intl/dcigettext.c: Define _nl_default_dirname_internal as hidden
	alias and use it.
	* intl/bindtextdom.c: Use _nl_default_dirname_internal.

	* include/netinet/in.h: Add declaration of in6addr_loopback_internal.
	* inet/in6_addr.c: Add INTVARDEF for in6addr_loopback.
	* sysdeps/posix/getaddrinfo.c: Use INTUSE for in6addr_loopback access.

	* include/time.h: Add libc_hidden_proto for __gmtime_r.
	* time/gmtime.c (__gmtime_r): Add libc_hidden_def.

	* iconv/Versions: Replace __gconv_alias_db, __gconv_modules_db,
	and __gconv_cache with __gconv_get_alias_db, __gconv_get_modules_db,
	and __gconv_get_cache respectively.
	* iconv/gconv_cache.c (gconv_cache): Renamed for __gconv_cache and
	defined static.  Change all users.
	(__gconv_get_cache): New function.
	* iconv/gconv_db.c (__gconv_get_modules_db): New function.
	(__gconv_get_alias_db): New function.
	* iconv/gconv_int.h (__gconv_alias_db): Declare as hidden.
	(__conv_modules_db): Likewise.
	Add prototypes for __gconv_get_cache, __gconv_get_modules_db,
	and __gconv_get_alias_db.
	* iconv/iconv_prog.c: Use the new functions instead of accessing the
	variables.

	* include/stdlib.h: Add prototype and libc_hidden_proto for
	__default_morecore.
	* sysdeps/generic/morecore.c: Include <stdlib.h>.

	* malloc/obstack.c: Remove fputs macro.

	* malloc/mtrace.c: Remove fopen macro.
2002-08-04 23:32:14 +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 6e96b6ec3a Update.
2002-07-24  Philip Blundell  <philb@gnu.org>

	* sysdeps/unix/arm/brk.S: Improve schedule.
	* sysdeps/unix/sysv/linux/arm/socket.S (PUSHARGS_1): Use more
	efficient instruction.
	(__socket): Optimize return sequence.

	* locale/hashval.h: Make more self-contained by defining LONG_BITS.
2002-07-24 17:39:23 +00:00
Ulrich Drepper 7a9a26813e Update.
2002-07-22  Philip Blundell  <philb@gnu.org>

	* sysdeps/unix/sysv/linux/arm/errlist.c: Remove extra weak alias
	definiton of _old_sys_nerr.  Define _old_sys_errlist as strong
	alias.
2002-07-24 11:18:48 +00:00
Ulrich Drepper c3da4f0cba Update.
2002-07-12  Philip Blundell  <philb@gnu.org>

	* sysdeps/generic/backtrace.c (FIRST_FRAME_POINTER): New macro.
	(__backtrace): Use it.
	* sysdeps/arm/frame.h (FIRST_FRAME_POINTER): Define.  [PR libc/2632]

2002-07-12  Philip Blundell  <philb@gnu.org>

	* sysdeps/arm/dl-machine.h (elf_machine_rel): Don't handle
	R_ARM_RELATIVE if RTLD_BOOTSTRAP and HAVE_Z_COMBRELOC.  Only check
	for rtld map if neither RTLD_BOOTSTRAP nor HAVE_Z_COMBRELOC is defined.
	(elf_machine_rela): Remove unused variable.

	* sysdeps/unix/sysv/linux/arm/Makefile [subdir=elf]
	(sysdep-rtld-routines, sysdep_routines, sysdep-dl-routines): Don't
	define.

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

	* iconvdata/gconv-modules: Add aliases for ISO-8859-11.
2002-07-15 03:58:49 +00:00
Ulrich Drepper b028b8ad4e Update.
* sysdeps/unix/sysv/linux/arm/dl-procinfo.c: Completely specify
	size of _dl_arm_cap_flags.
	Patch by enrico.scholz@informatik.tu-chemnitz.de [PR libc/3155].

	* sysdeps/unix/sysv/linux/arm/dl-procinfo.h (_DL_HWCAP_COUNT):
	Define as 8.

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

	* scripts/firstversions.awk: Check the first version.

2002-04-02  Ulrich Drepper  <drepper@redhat.com>
2002-04-03 06:59:37 +00:00
Roland McGrath 971174429d 2002-03-23 Roland McGrath <roland@frob.com>
* sysdeps/mach/hurd/i386/Makefile
	(sysdep_routines, shared-only-routines): Don't add framestate,
	reverting 2001-10-02 change.
	* 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/generic/Makefile (sysdep_routines, shared-only-routines):
	Do it here instead, only if [$(unwind-find-fde) = yes].
2002-03-24 01:55:18 +00:00
Ulrich Drepper 635f35fcf4 Update.
2002-02-01  Ulrich Drepper  <drepper@redhat.com>

	* elf/Makefile (distribute): Add dl-procinfo.c.
	* sysdeps/unix/sysv/linux/i386/Dist: Remove dl-procinfo.c.
	* sysdeps/unix/sysv/linux/arm/Dist: Likewise.
2002-02-01 19:13:09 +00:00
Ulrich Drepper ccdf0cab1d Update.
* elf/dl-minimal.c: Define _itoa for 32-bit machines with HP timing.
	* elf/dl-reloc.c: Pretty printing.
	* sysdeps/generic/ldsodefs.h: Move _dl_hp_timing_overhead and
	procinfo-related variables in rtld_global struct.
	* elf/dl-support.c: Likewise.
	* elf/rtld.c: Likewise.
	* sysdeps/i386/i686/Makefile: Likewise.
	* sysdeps/i386/i686/hp-timing.c: Likewise.
	* sysdeps/i386/i686/hp-timing.h: Likewise.
	* sysdeps/ia64/Makefile: Likewise.
	* sysdeps/ia64/hp-timing.c: Likewise.
	* sysdeps/sparc/sparc32/sparcv9/Makefile: Likewise.
	* sysdeps/sparc/sparc32/sparcv9/hp-timing.c: Likewise.
	* sysdeps/unix/sysv/linux/arm/dl-procinfo.c: Likewise.
	* sysdeps/unix/sysv/linux/arm/dl-procinfo.h: Likewise.
	* sysdeps/unix/sysv/linux/i386/Makefile: Likewise.
	* sysdeps/unix/sysv/linux/i386/dl-procinfo.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/dl-procinfo.h: Likewise.
	* sysdeps/x86_64/Makefile: Likewise.
2002-02-01 07:49:47 +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 e661fdf267 Update.
2001-04-22  Philip Blundell  <philb@gnu.org>

	* sysdeps/unix/sysv/linux/arm/sys/user.h (struct user_fpregs):
	Renamed from struct user_fp.
	(struct user_regs): New.
	(struct user): Use struct user_regs rather than struct pt_regs to
	avoid dependency on asm/ptrace.h.  Use struct user_fpregs in place
	of struct user_fp and struct user_fp_struct.
	* sysdeps/unix/sysv/linux/arm/sys/ucontext.h: Include sys/procfs.h
	not sys/elf.h.

2001-04-22  Philip Blundell  <philb@gnu.org>

	* sysdeps/unix/sysv/linux/arm/sys/elf.h: Move contents to
	sys/procfs.h, and tell the user to include that file instead.
	* sysdeps/unix/sysv/linux/arm/sys/procfs.h: Remove old cruft
	surrounded with #if 0.
	(elf_greg_t, ELF_NGREG, elf_gregset_t, elf_fpregset_t): Moved here
	from sys/elf.h.
	(prgregset_t, prfpregset_t): Define in terms of elf_gregset_t and
	elf_fpregset_t respectively.

2001-04-22  Philip Blundell  <philb@gnu.org>

	* sysdeps/unix/sysv/linux/arm/register-dump.h: Also print the
	address that faulted.
2001-04-22 14:12:27 +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
Ulrich Drepper f4f8cd2c93 (elf_machine_pltrel_p): Removed, it's not needed. 2001-03-10 06:42:38 +00:00
Ulrich Drepper a5f9233ee2 Update.
Remove comma at end of enum.
2001-02-03 17:06:42 +00:00
Ulrich Drepper 99b9b8eca1 Update.
* sysdeps/unix/sysv/linux/arm/sys/ucontext.h: File was using crlf.
2001-02-03 17:05:24 +00:00
Andreas Jaeger 1df99b5f25 Update.
* sysdeps/unix/sysv/linux/arm/bits/fcntl.h: Protect DN_* by
	__USE_GNU.
	* sysdeps/unix/sysv/linux/ia64/bits/fcntl.h: Likewise.
	* sysdeps/unix/sysv/linux/m68k/bits/fcntl.h: Likewise.
	* sysdeps/unix/sysv/linux/mips/bits/fcntl.h: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/bits/fcntl.h: Likewise.
	* sysdeps/unix/sysv/linux/s390/bits/fcntl.h: Likewise.
	* sysdeps/unix/sysv/linux/sparc/bits/fcntl.h: Likewise.

2000-09-29  Andreas Jaeger  <aj@suse.de>
2000-09-29 20:25:04 +00:00
Andreas Jaeger a67b0400c6 Synch with Linux 2.4.0-test9-pre7. 2000-09-29 19:07:04 +00:00
Ulrich Drepper ee6c533027 Update.
2000-09-28  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/unix/sysv/linux/bits/resource.h: Add RLIMIT_LOCKS.
	* sysdeps/unix/sysv/linux/arm/bits/resource.h: Likewise.
	* sysdeps/unix/sysv/linux/i386/bits/resource.h: Likewise.
	* sysdeps/unix/sysv/linux/mips/bits/resource.h: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/bits/resource.h: Likewise.
	* sysdeps/unix/sysv/linux/sh/bits/resource.h: Likewise.
	* sysdeps/unix/sysv/linux/sparc/bits/resource.h: Likewise.

2000-09-28  Martin Schwidefsksy  <schwidefsky@de.ibm.com>

2000-09-28  Denis Joseph Barrow  <djbarrow@de.ibm.com>
2000-09-29 01:32:14 +00:00
Ulrich Drepper 7530e8f828 Update.
2000-09-17  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/unix/sysv/linux/arm/sysdep.h (INLINE_SYSCALL): Fix last
	patch.
2000-09-17 19:56:45 +00:00
Ulrich Drepper 2f43efaaf2 Update.
2000-09-15  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/unix/alpha/sysdep.h (inline_syscall_clobbers): Add memory
	clobber.
	* sysdeps/unix/sysv/linux/arm/sysdep.h (INLINE_SYSCALL): Likewise.
	* sysdeps/unix/sysv/linux/m68k/sysdep.h (INLINE_SYSCALL): Likewise.
2000-09-15 17:50:21 +00:00
Andreas Jaeger 0a7d61a378 * sysdeps/unix/sysv/linux/arm/lockf64.c: New file.
* sysdeps/unix/sysv/linux/arm/fcntl.c: New file.

        * sysdeps/unix/sysv/linux/arm/bits/fcntl.h
        (F_GETLK64,F_SETLK64,F_SETLKW64): Use values from 2.4.0-test8.
        (F_GETLK,F_SETLK,F_SETLKW): Handle __USE_FILE_OFFSET64 correctly.
2000-09-08 08:12:57 +00:00
Ulrich Drepper d4cfddf947 Update.
* sysdeps/unix/sysv/linux/arm/Makefile [$(subdir)==resource]
	(sysdep_routines): Add oldgetrlimit64.
2000-08-27 01:02:34 +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 21f6a10036 Update.
2000-08-12  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/unix/sysv/linux/kernel-features.h (__ASSUME_FCNTL64):
	Define for 2.4.1 on x86.
	* sysdeps/unix/sysv/linux/i386/fcntl.c: New file.
	* sysdeps/unix/sysv/linux/i386/bits/fcntl.h: Fill in correct values
	for F_GETLK64, F_SETLK64, and F_SETLKW64.

	* dirent/dirent.h: Define DT_WHT.

	* sysdeps/unix/sysv/linux/arm/alphasort64.c: New file.
	* sysdeps/unix/sysv/linux/arm/getdents64.c: New file.
	* sysdeps/unix/sysv/linux/arm/readdir64.c: New file.
	* sysdeps/unix/sysv/linux/arm/readdir64_r.c: New file.
	* sysdeps/unix/sysv/linux/arm/scandir64.c: New file.
	* sysdeps/unix/sysv/linux/arm/versionsort64.c: New file.
2000-08-12 08:22:14 +00:00
Ulrich Drepper 543a70cc8e Undo last change. 2000-08-02 15:27:16 +00:00
Ulrich Drepper b73204bf74 Update.
2000-08-01  Philip Blundell  <philb@gnu.org>

	* sysdeps/unix/sysv/linux/arm/Makefile [subdir=resource]
	(sysdep_routines): Add oldgetrlimit, oldsetrlimit.
	* sysdeps/unix/sysv/linux/arm/syscalls.list: Add oldgetrlimit,
	oldsetrlimit for GLIBC_2.0.

	(LINE_PARSER): Allow any number of spaces between ip address and
	number.  Fixes PR libc/1833, reported by rp010gf@voruta.vu.lt.
	* nis/nss_nisplus/nisplus-hosts.c (_nss_nisplus_getipnodebyname_r):
	Likewise.
	* Make-dist (dist): Resolve `..' in file names.
2000-08-01 19:14:14 +00:00
Ulrich Drepper 9b4f7699ba Add oldgetrlimit, oldsetrlimit for GLIBC_2.0. 2000-08-01 19:10:53 +00:00
Ulrich Drepper e6cc1ee3ac Update.
2000-07-26  Philip Blundell  <philb@gnu.org>

	* sysdeps/unix/sysv/linux/arm/bits/fcntl.h: New file.
2000-07-30 16:17:55 +00:00
Ulrich Drepper 497b8ef43f Update.
2000-07-28  Philip Blundell  <philb@gnu.org>

	* math/test-fpucw.c: Ignore reserved bits in control word.

2000-07-28  Philip Blundell  <philb@gnu.org>

	* sysdeps/unix/sysv/linux/arm/sysdep.h (PSEUDO_RET): New macro.
	(ret): Redefine to PSEUDO_RET.
	(PSEUDO): Remove jump to syscall_error.

2000-07-29  Mark Kettenis  <kettenis@gnu.org>

	* resolv/README: Add some information about using the resolver in
	multi-threaded code and with C++.  Spelling fixes.

2000-07-29  Mark Kettenis  <kettenis@gnu.org>

	* resolv/resolv.h (struct __sockaddr_in): Remove.
	(struct __res_state) [!_LIBC]: Remove reference to __sockaddr_in.

	* sysdeps/powerpc/backtrace.c (struct layout): Make pointers
	__unbounded.
2000-07-29 18:08:15 +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 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
Ulrich Drepper afa0569f3b Update.
* crypt/Makefile (distribute): Add ufc-crypt.h, crypt-private.h,
	ufc.c, speeds.c, README.ufc-crypt, and Banner.

	* sysdeps/sparc/Subdirs: New file.

	* locale/Makefile (distribute): Add weightwc.h and
	programs/localedef.h.

	* time/Makefile (distribute): Add datemsk.

	* sysdeps/ia64/Dist: Add softpipe.h.

	* sysdeps/unix/sysv/aix/Dist: New file.

	* posix/setpgrp.c: Moved to...
	* sysdeps/generic/setpgrp.c: ...here.  New file.
	* io/mknod.c: Moved to...
	* sysdeps/generic/mknod.c: ...here.  New file.

	* sysdeps/unix/sysv/linux/ia64/Dist: New file.

	* sysdeps/unix/sysv/linux/sparc/Dist: Add sys/procfs.h.

	* sysdeps/unix/sysv/linux/arm/Dist: Add oldgetrlimit64.c.

	* sysdeps/powerpc/Dist: Add fprrest.S, fprsave.S, gprsave1.S,
	gprsave0.S, gprrest1.S, and gprrest0.S.

	* sysdeps/generic/Dist: Add bp-thunks.h, bp-sym.h, and bp-start.h.

	* posix/Makefile (routines): Add spawnattr_getsigmask,
	spawnattr_getschedpolicy, spawnattr_getschedparam,
	spawnattr_setsigmask, spawnattr_setschedpolicy, and
	spawnattr_setschedparam.
	* posix/Versions: Add posix_spawnattr_getschedpolicy,
	posix_spawnattr_setschedpolicy, posix_spawnattr_getschedparam, and
	posix_spawnattr_setschedparam.

	* posix/spawnattr_setschedparam.c: Fix typo.

	* posix/spawnattr_setsigmask.c (posix_spawnattr_setsigmask):
	Correct typo.

	* login/programs/utmpd.c: Removed.
	* login/programs/utmpd.h: Removed.
	* login/programs/utmpd-private.h: Removed.

	* Makefile (distribute): Add include/db_185.h and include/db.h.

	* iconvdata/Makefile (distribute): Add iso-ir-165.c and
	iso-ir-165.h.

	* elf/Makefile (distribute): Add missing files.

	* dlfcn/Makefile: Add back rules to include eval in libdl.so.
	* elf/eval.c: Moved to...
	* dlfcn/eval.c: ...here.  New file.

	* Makefile (distribute): Also distribute ChangeLog.1?.
2000-06-14 00:55:24 +00:00
Andreas Jaeger 741845cb9c Update.
2000-05-27  Andreas Jaeger  <aj@suse.de>

	* sysdeps/unix/sysv/linux/i386/pread.c: Removed, we can use the
	normal version now.
	* sysdeps/unix/sysv/linux/i386/pwrite.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/pwrite64.c: Likewise.
	* sysdeps/unix/sysv/linux/mips/pread.c: Likewise.
	* sysdeps/unix/sysv/linux/mips/pwrite.c: Likewise.
	* sysdeps/unix/sysv/linux/arm/pread.c: Likewise.
	* sysdeps/unix/sysv/linux/arm/pwrite.c: Likewise.

	* sysdeps/unix/sysv/linux/pread.c (__libc_pread): Check
	endianness to decide how to pass arguments.
	* sysdeps/unix/sysv/linux/pwrite.c (__libc_pwrite): Likewise.

	* elf/vismain.c: Use test-skeleton interface.
	(TEST_FUNCTION): New macro.
	(do_test): Renamed from main.
2000-05-27 16:51:52 +00:00
Andreas Jaeger 088b991767 Update.
* sysdeps/unix/sysv/linux/i386/pread64.c: Removed, we can use the
	normal version now.
	* sysdeps/unix/sysv/linux/arm/pread64.c: Likewise.
	* sysdeps/unix/sysv/linux/arm/pwrite64.c: Likewise.
	* sysdeps/unix/sysv/linux/mips/pread64.c: Likewise.
	* sysdeps/unix/sysv/linux/mips/pwrite64.c: Likewise.

	* sysdeps/unix/sysv/linux/pwrite64.c (__libc_pwrite64): Check
	endianness to check how to pass argument.
	* sysdeps/unix/sysv/linux/pread64.c (__libc_pread64): Likewise.
2000-05-26 15:46:14 +00:00
Ulrich Drepper 8f6f7a31c9 Update.
2000-04-13  Ulrich Drepper  <drepper@redhat.com>

	* misc/Versions [libc] (GLIBC_2.2): Add posix_madvice.
	* misc/sys/mman.h (posix_madvise): Add prototype.
	* sysdeps/generic/madvise.c (madvise): Renamed to __madvise.  Make
	old name and posix_madvise weak aliases.
	* sysdeps/unix/sysv/linux/syscalls.list: Likewise.
	* sysdeps/generic/bits/mman.h: Add POSIX_MADV_* constants.
	* sysdeps/unix/sysv/linux/alpha/bits/mman.h: Likewise.
	* sysdeps/unix/sysv/linux/arm/bits/mman.h: Likewise.
	* sysdeps/unix/sysv/linux/i386/bits/mman.h: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/bits/mman.h: Likewise.
	* sysdeps/unix/sysv/linux/sparc/bits/mman.h: Likewise.
2000-04-14 05:59: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 41aefe41b8 Update.
2000-04-01  Andreas Jaeger  <aj@suse.de>

	* sysdeps/mach/hurd/mips/init-first.c: Use SHARED instead of PIC.

	* sysdeps/unix/mips/sysdep.h: Use __PIC__ instead of PIC.
	* sysdeps/mach/mips/thread_state.h: Likewise.

	* sysdeps/generic/fclrexcpt.c: Use shlib-compat macros.
	* sysdeps/generic/fegetenv.c: Likewise.
	* sysdeps/generic/fesetenv.c: Likewise.
	* sysdeps/generic/feupdateenv.c: Likewise.
	* sysdeps/generic/fraiseexcpt.c: Likewise.
	* sysdeps/generic/fsetexcptflg.c: Likewise.
	* sysdeps/unix/sysv/linux/alpha/glob.c: Likewise.
	* sysdeps/unix/sysv/linux/arm/errlist.c: Likewise.
	* sysdeps/unix/sysv/linux/errlist.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/chown.c: Likewise.

2000-04-02  H.J. Lu  <hjl@gnu.org>

	* elf/ldconfig.h (FLAG_IA64_LIB64): New. Defined.
2000-04-04 06:03:48 +00:00
Ulrich Drepper b5567b2af6 Update.
2000-03-29  Jes Sorensen  <jes@pcatls01.cern.ch>

	* malloc/malloc.c: Declare bit flags UL so that they will not
	default to int size when being inverted.

2000-03-29  Andreas Jaeger  <aj@suse.de>

	* sysdeps/unix/sysv/linux/arm/errlist.c: Use shlib-compat macros.
	* sysdeps/unix/sysv/linux/arm/siglist.c: Likewise.

2000-03-29  Andreas Jaeger  <aj@suse.de>,
            Ralf Baechle <ralf@uni-koblenz.de>

	* Makeconfig: Introduce new variable SHARED to mark code used in
	the shared library.
	* elf/dl-close.c: Use it instead of PIC.
	* elf/dl-load.c: Likewise.
	* elf/dl-open.c: Likewise.
	* hurd/geteuids.c: Likewise.
	* include/libc-symbols.h: Likewise.
	* include/shlib-compat.h: Likewise.
	* libio/freopen.c: Likewise.
	* linuxthreads/cancel.c: Likewise.
	* linuxthreads/pthread.c: Likewise.
	* linuxthreads/wrapsyscall.c: Likewise.
	* nss/nsswitch.c: Likewise.
	* stdio-common/vfprintf.c: Likewise.
	* sysdeps/arm/init-first.c: Likewise.
	* sysdeps/i386/init-first.c: Likewise
	* sysdeps/generic/init-first.c: Likewise.
	* sysdeps/generic/libc-start.c: Likewise.
	* sysdeps/mips/init-first.c: Likewise.
	* sysdeps/powerpc/elf/libc-start.c: Likewise.
	* sysdeps/unix/sysv/linux/init-first.c: Likewise.
	* sysdeps/unix/sysv/linux/arm/siglist.c: Likewise.
	* sysdeps/unix/sysv/linux/arm/errlist.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/chown.c: Likewise.

	* sysdeps/mips/machine-gmon.h (asm): Use __PIC__ as check.
2000-03-31 05:50:02 +00:00
Ulrich Drepper 4fcddf8e57 Update.
2000-03-24  Andreas Jaeger  <aj@suse.de>

	* Makefile (postclean): Added soversions.i.

2000-03-24  Scott Bambrough  <scottb@netwinder.org>

	* sysdeps/arm/fpu/fpu_control.h: Define _FPU_MASK_IM, _FPU_MASK_ZM,
	_FPU_MASK_OM, _FPU_MASK_UM, _FPU_MASK_PM, _FPU_MASK_DM, _FPU_DEFAULT,
	and _FPU_IEEE.  Change _FPU_RESERVED.

2000-03-24  Scott Bambrough  <scottb@netwinder.org>

	* sysdeps/unix/sysv/linux/arm/sys/ucontext.h: New file.

2000-03-24  Roland McGrath  <roland@baalperazim.frob.com>

	* sysdeps/posix/getaddrinfo.c: Include <net/if.h> for if_nametoindex.
	(gaih_inet): Remove unused duplicate variable.

	* inet/getnameinfo.c (getnameinfo): Use IFNAMSIZ, not MAXHOSTNAMELEN.
	Don't use __libc_sa_len, which only exists for Linux.  Just handle
	AF_INET and AF_INET6 directly as well as AF_LOCAL, since those are the
	only flavors supported by this function anyway.

2000-03-24  Geoff Clare  <gwc@unisoft.com>

	* stdlib/strfmon.c: corrected problems with missing signs and
	missing or extra spaces; allow for sign strings longer than
	one character; add padding to ensure positive and negative
	formats are aligned when a left precision is used.

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

	* stdlib/random_r.c (__setstate_r): Allow RNGs of type 4.
	Patch by John Mizel <John.Mizel@msdw.com>.
2000-03-26 18:48:26 +00:00
Ulrich Drepper 4159e38701 Update.
* misc/Makefile (routines): Add mincore.

2000-03-20  Andreas Jaeger  <aj@suse.de>

	* sysdeps/generic/mincore.c: New stub file.

	* sysdeps/unix/sysv/linux/arm/bits/mman.h (MADV_*): Add flags
	from latest Linux kernel.

2000-03-20  Ulrich Drepper  <drepper@redhat.com>
2000-03-20 22:54:01 +00:00
Ulrich Drepper beef95268f Update.
2000-02-20  Philip Blundell  <philb@gnu.org>

	* sysdeps/unix/sysv/linux/arm/mmap64.S: Fix off by one error.
2000-02-20 18:05:29 +00:00
Ulrich Drepper 5b26325f14 Update.
2000-02-14  Scott Bambrough <scottb@netwinder.org>

	* sysdeps/unix/sysv/linux/arm/ioperm.c (_iopl, _ioperm):  Add
	Rebel-NetWinder to platform table so _ioperm platform lookup via
	/proc/cpuinfo works on later version NetWinders.
2000-02-14 18:11:26 +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 b6aa34eb72 Update.
* locale/loadlocale.c (_nl_load_locale): Optimize a bit.  Pretty
	print.  Add checks for _POSIX_MMAPPED_FILES where necessary.
	(_nl_unload_locale): If locale data was mmapped use munmap.

2000-01-29  Andreas Jaeger  <aj@suse.de>

	* sysdeps/unix/sysv/linux/i386/sys/io.h: Add missing ints, use
	_EXTERN_INLINE, compile inline assembler functions only with gcc.

2000-01-29  Ulrich Drepper  <drepper@redhat.com>

	* catgets/catgets.c (catopen): Handle NL_CAT_LOCALE correctly.
	* catgets/gencat.c (read_input_file): Remove messages correctly.
	* catgets/open_catalog.c (__open_catalog): Handle trailing colons and
	adjacent colons correctly.  Correct loops to read territory and
	and codeset part.
	Patches by Geoff Clare <gwc@unisoft.com> (PR libc/1559).

	* rt/aio_misc.c (get_elem): Assign pointer to new row to correct
	pool entry.
	Patch by Jens Moeller <jens.moeller@waii.com> (PR libc/1558).

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

	* sysdeps/unix/sysv/linux/arm/Versions: Export the new *rlimit
	interface with symbol version GLIBC_2.2.
	* sysdeps/unix/sysv/linux/i386/Versions: Likewise.
	* sysdeps/unix/sysv/linux/i386/getrlimit.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/getrlimit64.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/setrlimit.c: Likewise.

2000-01-27  Scott Bambrough  <scottb@netwinder.org>

	* sysdeps/unix/sysv/linux/arm/Makefile: Backout rlimit changes for
	resource directory.
	* sysdeps/unix/sysv/linux/arm/syscalls.list: Backout changes for
	versioning setrlimit and getrlimit.

2000-01-27  Andreas Jaeger  <aj@suse.de>

	* sysdeps/powerpc/fpu/libm-ulps: Renamed to ...
	* sysdeps/powerpc/fpu/libm-test-ulps: ...this.

2000-01-27  Ruediger Oertel  <ro@suse.de>

	* sysdeps/unix/sysv/linux/i386/sys/io.h: Change "::" to ": :" for g++.

2000-01-29  Ulrich Drepper  <drepper@redhat.com>
2000-01-29 12:04:45 +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 c1301d9a76 Update.
2000-01-23  Philip Blundell  <philb@gnu.org>

	Add basic support for RPC over IPv6:
	* sunrpc/rpc/svc.h (struct SVCXPRT): Use `struct sockaddr_storage'
	for remote address.
	(svcudp6_create, svcudp6_bufcreate, svctcp6_create): New
	prototypes.
	* sunrpc/rpc/clnt.h (clnttcp6_create, clntudp6_create,
	clntudp6_bufcreate): New prototypes.
	* inet/netinet/in.h (bindresport6): Likewise.
	* sunrpc/Makefile (routines): Add svc_tcp6, svc_udp6, bindrsvprt6.
	* sunrpc/Versions: Add svcfd6_create, svctcp6_create,
	svcudp6_create, svcudp6_bufcreate, svcudp6_enablecache,
	bindresvport6 for GLIBC_2.2.
	* sunrpc/rpc_main.c: Support `tcp6' and `udp6' transport types.
	* sunrpc/rpc_svcout.c: Likewise.
	* sunrpc/svc_tcp.c (rendezvous_request): Use memcpy rather than
	simple assignment when copying addresses.
	* sunrpc/svc_udp.c (cache_get): Likewise.
	* sunrpc/svc_unix.c (rendezvous_request): Likewise.
	* sunrpc/bindrsvprt6.c, sunrpc/clnt_tcp6.c, sunrpc/clnt_udp6.c,
	sunrpc/svc_tcp6.c, sunrpc/svc_udp6.c: New files.

2000-01-05  Philip Blundell  <philb@gnu.org>

	* sysdeps/unix/sysv/linux/arm/mmap64.S: Correct check for ENOSYS.

2000-01-23  Andreas Jaeger  <aj@suse.de>

	* sysdeps/unix/sysv/linux/i386/fxstat.c (__fxstat): Pass right
	parameter to fstat calls.

2000-01-18  Roland McGrath  <roland@baalperazim.frob.com>

	* sysdeps/generic/bits/socket.h
	(__ss_aligntype, struct sockaddr_storage): Make these like Linux
	version, replacing old type name `__ss_align'.

2000-01-05  Roland McGrath  <roland@baalperazim.frob.com>

	* sysdeps/generic/lseek64.c (__libc_lseek64): Renamed from __lseek64.
	(__lseek64, lseek64): Make these weak aliases for __libc_lseek64.
	* sysdeps/mach/hurd/lseek.c (__libc_lseek): Renamed from __lseek.
	(__lseek, lseek): Make these weak aliases for __libc_lseek.
	* sysdeps/mach/hurd/fcntl.c (__libc_fcntl): Renamed from __fcntl.
	(__fcntl, fcntl): Make these weak aliases for __libc_fcntl.
	* sysdeps/mach/hurd/open.c (__libc_open): Renamed from __open.
	(__open, open): Make these weak aliases for __libc_open.

	* sysdeps/generic/bits/socket.h (enum __socket_type): Remove
	trailing comma.
	(anonymous enum for MSG_*): Likewise.
	(anonymous enum for SO_*): Likewise.

2000-01-23  Ulrich Drepper  <drepper@cygnus.com>

	* string/bits/string2.h: Fix typo (__GNU_SOURCE -> __USE_GNU)
	(PR libc/1553).
2000-01-24 02:22:13 +00:00
Ulrich Drepper 4974d2b285 Update.
2000-01-23  Mark Kettenis  <kettenis@gnu.org>

	* inet/rexec.c (rexec_af): Use SA_LEN instead of __libc_sa_len.

2000-01-22  Thorsten Kukuk  <kukuk@suse.de>

	* sunrpc/xdr_rec.c: Don't set frag_sent if no more data,
	fixes part 2 of bug 1549.
	* sunrpc/rpc_des.h: Remove unused defines.

2000-01-22  Mark Kettenis  <kettenis@gnu.org>

	* intl/Makefile ($(objpfx)msgs.h): Do $(make-target-directory) first.

2000-01-22  Thorsten Kukuk  <kukuk@suse.de>

	* sysdeps/unix/sysv/linux/Makefile (sysdep_headers): Remove sys/io.h.
	* sysdeps/unix/sysv/linux/alpha/Makefile: Add sys/io.h.
	* sysdeps/unix/sysv/linux/arm/Makefile: Likewise.
	* sysdeps/unix/sysv/linux/i386/Makefile: Likewise.
	* sysdeps/unix/sysv/linux/sys/io.h: Move from here ...
	* sysdeps/unix/sysv/linux/i386/sys/io.h: ... to here, add inb, outb
	and other inline functions for port access.
	* sysdeps/unix/sysv/linux/alpha/sys/io.h: Add prototypes for port
	access functions.

2000-01-23  Ulrich Drepper  <drepper@cygnus.com>

	* iconv/gconv_simple.c: Fix two problems in UTF-8 decoder.
	Patch by Bruno Haibe <haible@ilog.fr>.
2000-01-23 08:54:19 +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 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 ce75c139ac Update.
2000-01-12  Ulrich Drepper  <drepper@cygnus.com>

	* iconvdata/gconv-modules: Add aliases ISO-IR-199 and ISO-IR-203.
	Reported by Bruno Haible <haible@ilog.fr>.

2000-01-11  Andreas Schwab  <schwab@suse.de>

	* sysdeps/i386/fpu/libm-test-ulps: Adjust some epsilons.

2000-01-10  Thorsten Kukuk  <kukuk@suse.de>

	* nss/getent.c: Add ipv6 support for hosts.

2000-01-05  Philip Blundell  <pb@futuretv.com>

	* sysdeps/unix/sysv/linux/arm/Versions: Add getrlimit, setrlimit,
	getrlimit64, setrlimit64 for GLIBC_2.1.3.
	* sysdeps/unix/sysv/linux/arm/syscalls.list: Add oldgetrlimit,
	oldsetrlimit.
	* sysdeps/unix/sysv/linux/arm/oldsetrlimit64.c: New file.
	* sysdeps/unix/sysv/linux/arm/oldgetrlimit64.c: Likewise.
	* sysdeps/unix/sysv/linux/arm/setrlimit64.c: Likewise.
	* sysdeps/unix/sysv/linux/arm/getrlimit64.c: Likewise.
	* sysdeps/unix/sysv/linux/arm/setrlimit.c: Likewise.
	* sysdeps/unix/sysv/linux/arm/getrlimit.c: Likewise.

	* sysdeps/unix/sysv/linux/arm/Makefile [subdir=resource]
	(sysdep_routines): Add oldgetrlimit64, oldsetrlimit64.
	[subdir=misc] (sysdep_headers): Add sys/elf.h.

2000-01-09  Andreas Jaeger  <aj@suse.de>

	* manual/install.texi (Tools for Compilation): Update required
	compiler version.
	(Configuring and compiling): Restore old comments about
	configparms; modify to reflect current usage.

2000-01-09  Philip Blundell  <philb@gnu.org>

	* sysdeps/posix/getaddrinfo.c (gaih_inet): Don't attempt name
	resolution if the hints included AI_NUMERICHOST.
2000-01-12 11:39:14 +00:00
Ulrich Drepper 7feefb6944 Update.
2000-01-09  Philip Blundell  <philb@gnu.org>

	* sysdeps/arm/dl-machine.h (CLEAR_CACHE): System calls clobber R0.
	(dl_platform_init): Allow _dl_platform to be NULL.

	* sysdeps/unix/sysv/linux/arm/sysdep.h (UNDOARGS_5): Fix error in
	last change.
2000-01-10 01:43:43 +00:00
Ulrich Drepper 7c93d95dcf Update.
* sysdeps/unix/sysv/linux/i386/Dist: Distribute oldgetrlimit64.c
	and oldsetrlimit64.c.

	* sysdeps/unix/sysv/linux/arm/Dist: Distribute sys/elf.h and
	sys/procfs.h.
2000-01-06 04:37:59 +00:00
Ulrich Drepper 542493f93c Update.
2000-01-05  Philip Blundell  <philb@gnu.org>

	* sysdeps/arm/frame.h: New file.
	* sysdeps/generic/frame.h: Likewise.
	* sysdeps/generic/segfault.c (struct layout): Delete definition;
	include the above file instead.
	* sysdeps/generic/backtrace.c (struct layout): Likewise.
	(__backtrace): Use ADVANCE_STACK_FRAME.
	* sysdeps/unix/sysv/linux/arm/sigcontextinfo.h
	(ADVANCE_STACK_FRAME): New macro.
	(GET_FRAME): Apply above to returned value.

	* sysdeps/unix/sysv/linux/arm/bits/armsigctx.h: Add `fault_address'.
2000-01-06 00:10:15 +00:00
Ulrich Drepper f19f2b3443 Update.
2000-01-02  Philip Blundell  <philb@gnu.org>

	* sysdeps/unix/sysv/linux/arm/ioperm.c: Use sysctl by preference
	to obtain port mapping information.  Avoid use of mprotect.
2000-01-04 23:56:39 +00:00
Ulrich Drepper e3aaaa2732 Update.
2000-01-03  Philip Blundell  <philb@gnu.org>

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

2000-01-03  Philip Blundell  <philb@gnu.org>

	* sysdeps/unix/sysv/linux/arm/mmap.S: Remove mmap64 alias.
	Optimise error handling a little.
	* sysdeps/unix/sysv/linux/arm/mmap64.S: New file.
2000-01-03 23:22:35 +00:00
Ulrich Drepper dbbbaf5335 Update.
1999-12-29  Andreas Jaeger  <aj@suse.de>

	* sysdeps/unix/sysv/linux/alpha/sys/io.h: Don't include
	<asm/io.h>; remove K&R compatibility; add missing ints.

	* sysdeps/unix/sysv/linux/arm/sys/io.h: Remove K&R compatibility,
	add missing ints.

	* sysdeps/unix/sysv/linux/sys/io.h: Don't include <asm/io.h>.

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

	* manual/getopt.texi (Using Getopt): Document ordering of options.

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

	* sysdeps/unix/sysv/linux/llseek.c: Emit link time warning for llseek.
	Requested by Michael Deutschmann <michael@talamasca.wkpowerlink.com>.

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

	* sysdeps/unix/sysv/linux/scsi/scsi.h: Add new defines from Linux
	2.3.32.

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

	* elf/sprof.c (load_shobj): Fix error message.
	(generate_call_graph): Cast %*s length argument to int.
	* locale/programs/localedef.c (construct_output_path): Likewise.
	* locale/programs/ld-ctype.c (ctype_finish): Use proper format
	specifier.
	(ctype_class_new): Likewise.
	* locale/programs/ld-time.c (time_finish): Likewise.
	* sunrpc/svc_simple.c (register_rpc): Likewise.
	* nscd/connections.c (nscd_run, start_threads): Use long instead of
	int to avoid cast warnings.
	* sysdeps/ieee754/ldbl-128/e_atan2l.c (__ieee754_atan2l): Kill
	warning.
	* sysdeps/ieee754/ldbl-128/s_roundl.c (__roundl): Remove unused
	variable se.

	* time/strftime.c (my_strftime): Provide wide era string when
	requested.

	* sysdeps/sparc/fpu/bits/mathinline.h (__signbit, __signbitl):
	Separate into 32bit and 64bit versions.
1999-12-29 17:52:49 +00:00
Ulrich Drepper 010d77661b Update.
1999-12-26  Philip Blundell  <philb@gnu.org>

	* sysdeps/unix/sysv/linux/arm/syscalls.list: Remove vm86.  Set
	argument count for `syscall' to 7.
	* sysdeps/unix/sysv/linux/arm/sysdep.h: Add support for syscalls
	with more than five arguments.
	(DOARGS_5, UNDOARGS_5): Don't corrupt the calling stack frame.
1999-12-27 06:09:11 +00:00
Ulrich Drepper ad328346a8 Update.
* sysdeps/unix/sysv/linux/powerpc/sys/procfs.h: Likewise.
1999-11-15 08:05:06 +00:00
Ulrich Drepper a680290af8 Update.
1999-11-12  Thorsten Kukuk  <kukuk@suse.de>

	* nis/nss_nisplus/nisplus-publickey.c: Check for snprintf return value.

	* sysdeps/unix/sysv/linux/alpha/sys/procfs.h: Follow changes from
	i386 version.
	* sysdeps/unix/sysv/linux/arm/sys/procfs.h: Likewise.
	* sysdeps/unix/sysv/linux/mips/sys/procfs.h: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/sys/procfs.h: Likewise.
	* sysdeps/unix/sysv/linux/sys/procfs.h: Likewise.

	Closes PR libc/1438.
1999-11-12 21:27:41 +00:00
Ulrich Drepper 03fc7ab6ed Update.
* sysdeps/unix/sysv/linux/alpha/sys/procfs.h: Add more pr* types used
	by the debugger.
	* sysdeps/unix/sysv/linux/arm/sys/procfs.h: Likewise.
	* sysdeps/unix/sysv/linux/i386/sys/procfs.h: Likewise.
	* sysdeps/unix/sysv/linux/mips/sys/procfs.h: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/sys/procfs.h: Likewise.
	* sysdeps/unix/sysv/linux/sys/procfs.h: Likewise.

1999-11-01  Ulrich Drepper  <drepper@cygnus.com>
1999-11-02 16:04:00 +00:00
Ulrich Drepper 59e33904dd Update.
1999-08-09  Scott Bambrough  <scottb@netwinder.org>

	* sysdeps/unix/sysv/linux/arm/sys/user.h: Added members
	'unsigned char ftype[8]', and 'unsigned int init_flag' to
	struct user_fp.  Tnese were added in version 2.2.12 of the
	ARM Linux kernel.
	* sysdeps/unix/sysv/linux/arm/sys/elf.h: New file.
	* sysdeps/unix/sysv/linux/arm/sys/procfs.h: New file.
	The generic procfs.h included <asm/elf.h>.  This causes
	structure redefinition errors when <sys/user.h> and <sys/procfs.h>
	are included in the same source file.  Found when building GDB.
1999-09-14 01:44:32 +00:00
Ulrich Drepper 86352425c2 Update.
1999-08-31  Scott Bambrough  <scottb@netwinder.org>

	* sysdeps/unix/sysv/linux/arm/bits/armsigctx.h: Enclose header in an
	#ifdef statement to prevent it from being included twice.
	* sysdeps/unix/sysv/linux/arm/sigcontextinfo.h:
	#include <bits/armsigctx.h>.
1999-09-01 16:37:14 +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 6bd7b31b9c Update.
1999-07-17  Ulrich Drepper  <drepper@cygnus.com>

	* sysdeps/unix/sysv/linux/arm/Versions: Undo last change.
1999-07-18 00:30:08 +00:00
Ulrich Drepper 2946d3e1d4 Update.
1999-07-15  Philip Blundell  <pb@nexus.co.uk>

	* sysdeps/unix/sysv/linux/arm/Versions (_inb, _inw, _inl, _outb,
	_outw, _outl): Added to GLIBC_2.1.2.
1999-07-15 11:52:44 +00:00
Ulrich Drepper 4360eafdd2 Update.
1999-06-18  Zack Weinberg  <zack@rabi.columbia.edu>

	* include/features.h: Define new macros __GNUC_PREREQ and
	__GLIBC_PREREQ which can be used to test the version of gcc
	and glibc respectively.

	* assert/assert.h: Use __GNUC_PREREQ.
	* intl/libintl.h: Likewise.
	* math/complex.h: Likewise.
	* math/tgmath.h: Likewise.
	* misc/sys/cdefs.h: Likewise.
	* posix/sys/types.h: Likewise.
	* socket/sys/socket.h: Likewise.
	* string/bits/string2.h: Likewise.
	* sysdeps/alpha/fpu/bits/mathinline.h: Likewise.
	* sysdeps/i386/fpu/bits/mathinline.h: Likewise.

1999-06-18  Zack Weinberg  <zack@rabi.columbia.edu>

	* include/libintl.h: Declare _libc_intl_domainname here.
	Define _ and N_ here.
	* include/libc-symbols.h: Don't include <libintl.h>.  Don't
	define _ and N_.  Don't declare _libc_intl_domainname.
	* Makeconfig (CPPFLAGS): Use -imacros to read libc-symbols.h.

	* db2/config.h: Don't include sys/stat.h or define
	HAVE_ST_BLKSIZE here...
	* db2/compat.h: ...do it here.

	* linuxthreads/internals.h: Include bits/libc-tsd.h after all
	other headers.
	* linuxthreads/no-tsd.c: Include sys/cdefs.h for __P.
	* iconv/iconv.c: Include stddef.h for NULL.
	* malloc/malloc.h: Include features.h.
	* sysdeps/generic/morecore.c: Use __malloc_ptr_t not __ptr_t.

	* sysdeps/unix/make_errlist.c: Write an "#include <libintl.h>"
	into the generated file.
	* sysdeps/gnu/errlist.awk: Likewise.
	* sysdeps/gnu/errlist.c: Rebuilt.

	* assert/assert-perr.c: Include libintl.h.
	* assert/assert.c: Likewise.
	* elf/dl-open.c: Likewise.
	* elf/dlsym.c: Likewise.
	* elf/dlvsym.c: Likewise.
	* iconv/iconv_prog.c: Likewise.
	* inet/rcmd.c: Likewise.
	* inet/ruserpass.c: Likewise.
	* locale/programs/charset.c: Likewise.
	* locale/programs/ld-collate.c: Likewise.
	* locale/programs/ld-ctype.c: Likewise.
	* locale/programs/ld-messages.c: Likewise.
	* locale/programs/ld-monetary.c: Likewise.
	* locale/programs/ld-numeric.c: Likewise.
	* locale/programs/ld-time.c: Likewise.
	* locale/programs/locfile.c: Likewise.
	* locale/programs/repertoire.c: Likewise.
	* login/programs/database.c: Likewise.
	* login/programs/request.c: Likewise.
	* malloc/mcheck.c: Likewise.
	* misc/error.c: Likewise.
	* nis/nis_call.c: Likewise.
	* nis/nis_callback.c: Likewise.
	* nis/nis_error.c: Likewise.
	* nis/nis_local_names.c: Likewise.
	* nis/nis_print.c: Likewise.
	* nis/nis_print_group_entry.c: Likewise.
	* nis/ypclnt.c: Likewise.
	* nis/nss_nisplus/nisplus-publickey.c: Likewise.
	* nscd/cache.c: Likewise.
	* nscd/connections.c: Likewise.
	* nscd/grpcache.c: Likewise.
	* nscd/hstcache.c: Likewise.
	* nscd/nscd_conf.c: Likewise.
	* nscd/nscd_stat.c: Likewise.
	* nscd/pwdcache.c: Likewise.
	* posix/id.c: Likewise.
	* resolv/herror.c: Likewise.
	* stdio-common/psignal.c: Likewise.
	* string/strsignal.c: Likewise.
	* sunrpc/auth_unix.c: Likewise.
	* sunrpc/clnt_perr.c: Likewise.
	* sunrpc/clnt_raw.c: Likewise.
	* sunrpc/clnt_tcp.c: Likewise.
	* sunrpc/clnt_udp.c: Likewise.
	* sunrpc/clnt_unix.c: Likewise.
	* sunrpc/get_myaddr.c: Likewise.
	* sunrpc/pm_getmaps.c: Likewise.
	* sunrpc/pmap_clnt.c: Likewise.
	* sunrpc/pmap_rmt.c: Likewise.
	* sunrpc/rpc_main.c: Likewise.
	* sunrpc/rpc_scan.c: Likewise.
	* sunrpc/svc_run.c: Likewise.
	* sunrpc/svc_simple.c: Likewise.
	* sunrpc/svc_tcp.c: Likewise.
	* sunrpc/svc_udp.c: Likewise.
	* sunrpc/svc_unix.c: Likewise.
	* sunrpc/xdr_rec.c: Likewise.
	* sunrpc/xdr_ref.c: Likewise.
	* sysdeps/mach/hurd/mips/dl-machine.c: Likewise.
	* sysdeps/posix/gai_strerror.c: Likewise.
	* sysdeps/unix/siglist.c: Likewise.
	* sysdeps/unix/sysv/linux/siglist.c: Likewise.
	* sysdeps/unix/sysv/linux/arm/siglist.c: Likewise.
	* sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c: Likewise.
	* timezone/zic.c: Likewise.
1999-06-19 09:58:37 +00:00
Ulrich Drepper 4e9a34c48f Update.
1999-05-03  Ulrich Drepper  <drepper@cygnus.com>

	* sysdeps/unix/sysv/linux/arm/Dist: Add sigrestorer.S.
1999-05-03 12:41:01 +00:00
Ulrich Drepper 46a4682dcd Update.
1999-04-15 Scott Bambrough  <scottb@netwinder.org>

	* sysdeps/unix/sysv/linux/arm/sigaction.c: Fix typo in preventing
	compilation of file.
1999-04-15 14:45:35 +00:00
Ulrich Drepper 9b2446e825 Update.
1999-04-14 Scott Bambrough  <scottb@netwinder.org>

	* sysdeps/unix/sysv/linux/arm/socket.S: Socket calls could not be
	restarted after being interrupted by a signal.  The parameters on
	the stack were corrupted by the signal handler.

	* sysdeps/unix/sysv/linux/arm/mmap.S: mmap calls could not be
	restarted after being interrupted by a signal.  The parameters on
	the stack were corrupted by the signal handler.
1999-04-14 13:42:55 +00:00
Ulrich Drepper a64e578b6f Update.
1999-04-12  Philip Blundell  <philb@gnu.org>

	* elf/elf.h: Update ARM definitions to match current gas2.

	* sysdeps/arm/bits/endian.h: Support big endian operation.

	* sysdeps/unix/sysv/linux/arm/ioperm.c (_outw, _outb, _outl):
	Don't bother range checking the port number.

	* sysdeps/unix/sysv/linux/arm/vfork.S: New file.

	* sysdeps/unix/sysv/linux/arm/sysdep.h (INLINE_SYSCALL): Include
	the syscall name in assembler output for ease of debugging.

	* sysdeps/unix/sysv/linux/arm/sigaction.c: Don't rely on undefined
	compiler behaviour.
	* sysdeps/unix/sysv/linux/arm/sigrestorer.S: New file.
	* sysdeps/unix/sysv/linux/arm/Makefile [$(subdir) = signal]
	(sysdep_routines): Add sigrestorer.

	* string/tester.c (test_strcpy): Add new tests for unaligned
	arguments.
	* sysdeps/arm/bits/string.h: Delete inline implementations of
	strcpy and stpcpy.
1999-04-12 09:05:16 +00:00
Andreas Schwab 6fc8f783a4 1999-03-18 Philip Blundell <philb@gnu.org>
* sysdeps/unix/sysv/linux/arm/getgroups.c: New file.  Use the i386 
implementation.
1999-03-18  Philip Blundell  <philb@gnu.org>

	* sysdeps/unix/sysv/linux/arm/getgroups.c: New file.  Use the i386 
	implementation.
1999-03-19 01:54:41 +00:00
Ulrich Drepper b7398be5f8 Update.
1999-01-28  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>

	* sysdeps/wordsize-32/stdint.h (INT8_C, INT16_C, INT32_C, INT64_C,
	UINT8_C, UINT16_C, UINT32_C, UINT64_C): Remove casts, they must be
	integer constants.  Use ## directly instead of __CONCAT so that
	the suffix string is not expanded as a macro.
	* sysdeps/wordsize-64/stdint.h (INT8_C, INT16_C, INT32_C, INT64_C,
	UINT8_C, UINT16_C, UINT32_C, UINT64_C): Likewise.
	(INT64_MIN, INT64_MAX, UINT64_MAX, INT_LEAST64_MIN,
	INT_LEAST64_MAX, UINT_LEAST64_MAX, INT_FAST16_MIN, INT_FAST32_MIN,
	INT_FAST64_MIN, INT_FAST16_MAX, INT_FAST32_MAX, INT_FAST64_MAX,
	UINT_FAST16_MAX, UINT_FAST32_MAX, UINT_FAST64_MAX, INTMAX_MIN,
	INTMAX_MAX, UINTMAX_MAX): Define as long constants, not long long.

1999-01-28  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>

	* locale/mb_cur_max.c (__ctype_get_mb_cur_max): Correct return
	type to size_t.
	* locale/broken_cur_max.c (__ctype_get_mb_cur_max): Likewise.
	* stdlib/stdlib.h (__ctype_get_mb_cur_max): Likewise.

1999-01-27  Philip Blundell  <pb@nexus.co.uk>

	* sysdeps/unix/sysv/linux/arm/vfork.S: Deleted.
1999-01-29 09:01:50 +00:00
Ulrich Drepper 4353f9bef4 Correct error check again. 1999-01-25 09:27:19 +00:00
Ulrich Drepper e18db2b0ee Update.
1999-01-20  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>

	* elf/Makefile: Make dependencies between test modules explicit.
	(preloadtest-preloads): New variable.
	($(objpfx)preloadtest.out): Use it.
	(preloadtest-ENV): Use it.

1999-01-22  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>

	* sysdeps/unix/sysv/linux/arm/Dist: Undo last change.  Not needed.

	* elf/Makefile: Add missing dependency for preloadtest binary.

1999-01-21  Ulrich Drepper  <drepper@cygnus.com>
1999-01-22 09:29:52 +00:00
Ulrich Drepper 1d28e93cab Update.
1999-01-20  Philip Blundell  <pb@nexus.co.uk>

	* sysdeps/unix/sysv/linux/arm/sigaction.c: New file.

	* sysdeps/unix/sysv/linux/arm/vfork.S: New file.
	* sysdeps/unix/sysv/linux/arm/Dist: Add vfork.S.

	* sysdeps/unix/sysv/linux/arm/clone.S: Optimise a little, support
	26-bit machines correctly and fix check for returned errors.
1999-01-21 09:46:49 +00:00
Ulrich Drepper 0d03230432 Update.
* sysdeps/unix/sysv/linux/arm/Dist: Add sys/user.h.
1999-01-14 12:58:05 +00:00
Ulrich Drepper 3499233817 Update.
1999-01-07  Ulrich Drepper  <drepper@cygnus.com>

	* sysdeps/i386/bits/select.h (__FD_ZERO): Remove early clobbers
	from c and D register output.

1999-01-07  Philip Blundell  <philb@gnu.org>

	* sysdeps/unix/sysv/linux/arm/sigcontextinfo.h: Fix bug in last change.

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

	* sysdeps/unix/sysv/linux/alpha/bits/types.h: Correct type for
	__fsfilcnt_t.  Patch by Bruce Elliott <bde@nwlink.com>.

1999-01-05  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>

	* manual/conf.texi: Remove pointers from first @node.  Move old
	@node spec inside comment.
	* manual/lang.texi: Likewise.
	* manual/libc-texinfo.sh: Also find `@node.*Top' in a comment.
	* manual/stdio.texi: Fix typo.

1999-01-04  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>

	* wcsmbs/btowc.c: Accept all values in the range [SCHAR_MIN
	.. UCHAR_MAX].  Local var buf renamed to result and its type
	changed from char[] to wchar_t to get proper alignment.

	* posix/fnmatch.c: Also cast the arguments of the other ctype
	functions to unsigned char.

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

	* Rules: Add rules for empty.{o,os,op} back.
1999-01-07 09:55:57 +00:00
Ulrich Drepper 5dc230dce4 Update.
1999-01-05  Philip Blundell  <philb@gnu.org>

	* sysdeps/unix/sysv/linux/net/if_arp.h: Add new ARPHRD definitions
	from latest (2.2.0pre4) kernel.

1999-01-05 Scott Bambrough  <scottb@corelcomputer.com>

	* sysdeps/unix/sysv/linux/arm/sys/user.h : New file.  Fixes problem
	on ARM platforms with programs that include <sys/user.h> and
	<sys/ptrace.h>.  Solution suggested by Geoff Keating earlier with
	fix for same problem on the PowerPC platform.
1999-01-05 09:20:02 +00:00
Ulrich Drepper fb19a1ec9e Update.
1999-01-04  Philip Blundell  <philb@gnu.org>

	* sysdeps/unix/sysv/linux/arm/register-dump.h: Correct widths of
	register values.
	* sysdeps/unix/sysv/linux/arm/sigcontextinfo.h: New file.

	* csu/version.c (banner): Update date.
	* elf/sprof.c: Likewise.
	* login/programs/utmpd.c: Likewise.
	* nss/getent.c: Likewise.
	* posix/getconf.c: Likewise.
	* Rules: Likewise.  Remove rules to generate obsolete empty.{c,o*}.
1999-01-04 17:21:50 +00:00
Ulrich Drepper 3c5edd4dc6 Update.
1999-01-04  Ulrich Drepper  <drepper@cygnus.com>

	* catgets/gencat.c: Update year in copyright message text.
	* db2/makedb.c: Likewise.
	* debug/catchsegv.sh: Likewise.
	* elf/ldd.bash.in: Likewise.
	* iconv/iconv_prog.c: Likewise.
	* locale/programs/locale.c: Likewise.
	* locale/programs/localedef.c: Likewise.
	* malloc/mtrace.pl: Likewise.
	* nscd/nscd.c: Likewise.

1999-01-02  Philip Blundell  <philb@gnu.org>

	* sunrpc/Makefile: Ensure that we really use the right path for cpp.

1999-01-03  Philip Blundell  <philb@gnu.org>

	* Makefile (tests-clean): New test output files.
	* Makerules (do-tests-clean): New rule to support the above.
	* Rules (subdir_testclean): Likewise.

1999-01-03  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>

	* iconv/Makefile: Use install-others instead of explicit
	dependency on subdir_install.

1999-01-02  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>

	* iconv/gconv_db.c (find_derivation): Release lock before
	returning.
	(__gconv_find_transform): Likewise.

1999-01-01  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>

	* inet/ether_ntoa.c (ether_ntoa): Make `asc' static since that's
	what we return.

1999-01-01  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>

	* Makerules: Remove all references to obsolete variables
	tests-static and test-srcs-static.
	* Make-dist: Likewise.
	* Rules: Likewise.  Remove rules to generate obsolete
	empty.{c,o*}.

1999-01-03  Philip Blundell  <philb@gnu.org>

	* sysdeps/unix/sysv/linux/arm/pread.c: Use the i386 implementation.
	* sysdeps/unix/sysv/linux/arm/pread64.c: Likewise.
	* sysdeps/unix/sysv/linux/arm/pwrite.c: Likewise.
	* sysdeps/unix/sysv/linux/arm/pwrite64.c: Likewise.
1999-01-04 12:33:59 +00:00
Ulrich Drepper dcac8408e0 Linux/ARM implementation of pread. 1999-01-04 09:31:27 +00:00
Ulrich Drepper db276fa11c Update.
1998-12-27  Ulrich Drepper  <drepper@cygnus.com>

	* elf/dl-lookup.c (_dl_num_relocations): New variable.
	(do_lookup): Increment _dl_num_relocations for every call.
	* elf/rtld.c (print_statistics): New function.
	(_dl_debug_statistics): New variable.  Set when statistics are asked
	for.
	(rtld_total_time, relocate_time, load_time): New variables.  Used
	in print_statistics.
	(_dl_start): Record start and end time of startup.  Call
	print_statistics if needed.
	(dk_main): Record times for relocations and loading.
	(process_dl_debug): Recognize statistics.

	Low-level, low-overhead, high-precision timing funcationality.
	* sysdeps/generic/hp-timing.h: New file.
	* sysdeps/i386/i686/Makefile: New file.
	* sysdeps/i386/i686/hp-timing.h: New file.
	* sysdeps/i386/i686/hp-timing.c: New file.

	* sysdeps/i386/dl-machine.h (elf_machine_rel): Reverse order of OR
	clauses to avoid accessing global variables during rtld relocation.

	* sunrpc/rpc_main.c: Unify messages.

	* sysdeps/unix/sysv/linux/arm/Dist: Add ioperm.c and sys/io.h.
1998-12-27 17:29:47 +00:00
Ulrich Drepper 85f72e9c2a Update.
1998-12-25  Ulrich Drepper  <drepper@cygnus.com>

	* elf/dl-hash.h: Move to...
	* sysdeps/generic/dl-hash.h: ...here.  Correct parameter type (must
	be unsigned char).  Remove conditional from inner loop and rearrange
	binary operations (12-22% performance increase).
	* sysdeps/i386/i686/dl-hash.h: New file.  Yet 10% faster than
	optimized generic version.
1998-12-26 09:30:54 +00:00
Ulrich Drepper edb570bb87 Update.
1998-12-20  Philip Blundell  <philb@gnu.org>

	* sysdeps/unix/sysv/linux/arm/sysdep.h (INLINE_SYSCALL): Add
	implementation.
	* sysdeps/unix/sysv/linux/arm/syscalls.list: Remove wrappers for
	now-inlined calls.
        
1998-12-22  Philip Blundell  <pb@nexus.co.uk>

	* sysdeps/unix/sysv/linux/arm/ioperm.c: New file.
	Implementation of inb, outb etc for ARM systems.
	* sysdeps/unix/sysv/linux/arm/sys/io.h: Likewise.
	* sysdeps/unix/sysv/linux/arm/Versions: Add appropriate
	entries for the above.
1998-12-23 13:08:22 +00:00
Ulrich Drepper 8b7fb5883b Update.
1998-11-16  Ulrich Drepper  <drepper@cygnus.com>

	* sysdeps/unix/opendir.c: Use o_directory_works differently.  Treat
	zero value as uninitialized so that variable can go into .bss.

	* dirent/opendir-tst1.c: Print error strings to stdout.

	* sysdeps/unix/sysv/linux/mmap64.c: New file.  Empty.
	* sysdeps/unix/sysv/linux/syscalls.list: Add mmap with mmap64 alias.
	* sysdeps/unix/sysv/linux/arm/mmap.S: Add mmap64 alias.
	* sysdeps/unix/sysv/linux/i386/mmap.S: Likewise.
	* sysdeps/unix/sysv/linux/m68k/mmap.S: Likewise.

1998-11-16  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>

	* time/tzfile.c (__tzfile_read): Check that types[i].isdst is in
	range.

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

	* libio/bits/stdio.h (fread_unlocked): Do handle zero size and number.
	(fwrite_unlocked): Likewise.

1998-11-16  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>

	* libio/bits/stdio.h (fread_unlocked): Don't evaluate non-constant
	twice.  Don't bother handling zero size.
	(frwite_unlocked): Likewise.

1998-11-15  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>

	* configure.in: Fix regex for makeinfo version string.

1998-11-15  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>

	* sunrpc/rpc_sample.c (write_sample_server): Avoid -Wparentheses
	warning.
	* sunrpc/rpc_svcout.c (write_program): Likewise.

1998-11-15  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>

	* time/Makefile (CFLAGS-test_time.c): Add -Wno-format.

1998-11-16  Ulrich Drepper  <drepper@cygnus.com

	* misc/sys/mman.h: Pretty print prototypes.

1998-11-15  Ulrich Drepper  <drepper@cygnus.com

	* misc/error.c (error): Don't use result of strerror_r call directly
	since at least DEC Unix has a wrong return type.
	Patch by Johan Danielsson <joda@pdc.kth.se>.

1998-11-16  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
1998-11-16 12:02:08 +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 24f25de656 Update.
* version.h (VERSION): Bump to 2.0.99.

	* posix/fnmath.h: Don't redefine __P when used in glibc.
	* posix/glob.h: Likewise.

	* inet/rcmd.c (__ivaliduser2): Fix memory leak.
	Patch by Dick Streefland <dick_streefland@tasking.com>.

	* stdio-common/tst-ungetc.c: Add more test cases.

	* sysdeps/unix/sysv/linux/Dist: Add linux_fsinfo.h.
	* sysdeps/unix/sysv/linux/fstatvfs.c: Move filesystem magic number
	definitions to ...
	* sysdeps/unix/sysv/linux/linux_fsinfo.h: ...here.  New file.
	* sysdeps/unix/sysv/linux/fpathconf.c: New file.
	* sysdeps/unix/sysv/linux/pathconf.c: New file.
	* sysdeps/unix/sysv/linux/alpha/fpathconf.c: Handle _PC_LINK_MAX here.
	* sysdeps/unix/sysv/linux/alpha/pathconf.c: Likewise.

1998-10-20  Philip Blundell  <pb@nexus.co.uk>

	* sysdeps/unix/sysv/linux/arm/bits/armsigctx.h: Include
	<asm/ptrace.h> to define struct pt_regs.
	* sysdeps/unix/sysv/linux/arm/profil-counter.h: Don't bother
	including <asm/ptrace.h> here.

	* sysdeps/unix/sysv/linux/arm/sysdep.S: Remove spurious call to
	C_SYMBOL_NAME macro.

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

	* sysdeps/generic/sys/ptrace.h (__ptrace_request): Remove comma at
	end of enumerator list.
	* sysdeps/unix/sysv/linux/sys/ptrace.h (__ptrace_request): Likewise.
	* posix/wordexp.h: Likewise.

	* db/db.h: Use __PMT instead of __P in typedefs.
	* db/mpool.h: Likewise.
	* sysdeps/generic/bits/siginfo.h: Likewise.
	* nis/rpcsvc/ypclnt.h: Likewise.

1998-10-23  Ulrich Drepper  <drepper@cygnus.com>
1998-10-23 13:44:50 +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 ce85d65bae Update.
1998-10-19  Ulrich Drepper  <drepper@cygnus.com>

	* include/ldsodefs.h: New file.

	* iconv/gconv.c: Include ldsodefs.h, not elf/ldsodefs.h.
	Remove change to avoid using _CALL_DL_FCT.
	* iconv/gconv_db.c: Likewise.
	* iconv/gconv_dl.c: Likewise.
	* iconv/skeleton.c: Likewise, here for DL_CALL_FCT.
	* malloc/mtrace.c: Include ldsodefs.h, not elf/ldsodefs.h.
	* nss/nsswitch.c: Likewise.
	* nss/nsswitch.h: Likewise.

1998-10-19  Philip Blundell  <pb@nexus.co.uk>

	* sunrpc/Makefile (otherlibs): If static NSS is in use, set to the
	required libraries.
	* login/Makefile (otherlibs): Likewise.
	* nscd/Makefile (otherlibs): Likewise.
	* Makeconfig (link-libc) [! build_shared]: Add $(otherlibs).

	* debug/Makefile (install-bin): Only build catchsegv if using ELF.

	* inet/Makefile: Add -DSTATIC_NSS to CFLAGS.

1998-10-19  Philip Blundell  <pb@nexus.co.uk>

	* sysdeps/unix/sysv/linux/arm/syscalls.list: Added setfsgid
	and setfsuid.

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

	* nscd/connections.c: Fix typos in comments and strings.

	* nscd/nscd.conf: Update according to recent changes to nscd.

	* nscd/cache.c (prune_cache): Remove wrong comment.

	copy_posix.mask for copy instruction.
1998-10-19 15:22:14 +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 a9e73d4044 Update.
* sysdeps/unix/sysv/linux/arm/Dist: Add bits/armsigctx.h.
1998-10-15 10:46:07 +00:00
Ulrich Drepper 28c9c2c4e6 (PSEUDO): Add missing semicolon so that profiling works. 1998-10-12 11:15:04 +00:00
Ulrich Drepper a5d1d72670 Update.
1998-10-09  Ulrich Drepper  <drepper@cygnus.com>

	* sysdeps/i386/i686/pt-machine.h: Remove unused inline
	definitions.
1998-10-09 11:04:04 +00:00
Ulrich Drepper 8c93cd99f5 Update
1998-10-01  Philip Blundell  <pb@nexus.co.uk> 
 
	* sysdeps/arm/machine-gmon.h: Correct args to mcount().  Patch 
	from Scott Bambrough. 
 
	* sysdeps/unix/sysv/linux/arm/register-dump.h: New file. 
 
	* libio/libioP.h (FILEBUF_LITERAL) [! _IO_MTSAFE_IO]: Don't 
	include the lock member. 
 
1998-09-03  Philip Blundell  <pb@nexus.co.uk> 
 
	* sysdeps/arm/fpu/__longjmp.S: Cope with fussy assembler.
1998-10-01 14:31:24 +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 14eb5d5d34 Update.
1998-09-14 15:29  Ulrich Drepper  <drepper@cygnus.com>

	* stdio-common/Makefile (headers): Remove bits/stdio_lim.h.
	(install-others): Add bits/stdio_lim.h.
	Add rule to install bits/stdio_lim.h.

	* sysdeps/unix/sysv/sysv4/solaris2/sparc/Dist: New file.

	* Makefile (distribute): Add include/sys/mman.h.

	* sysdeps/powerpc/Dist: Add dl-machine.c and dl-start.S.
	* sysdeps/unix/sysv/linux/Dist: Add sys/sendfile.h.
	* sysdeps/unix/sysv/linux/arm/Dist: Add init-first.h.
1998-09-14 16:38:49 +00:00
Ulrich Drepper df777c40c1 Update.
1998-08-20 16:01  Ulrich Drepper  <drepper@cygnus.com>

	* elf/ldd.sh.in: Redirect warnings and error messages to stderr.
	* elf/ldd.bash.in: Likewise.

	* elf/sln.c: Avoid warning for no main prototype.

	* sysdeps/unix/sysv/linux/alpha/bits/fcntl.h: Remove O_READ and
	O_WRITE.
	* sysdeps/unix/sysv/linux/mips/bits/fcntl.h: Likewise.
	* sysdeps/unix/sysv/linux/sparc/bits/fcntl.h: Likewise.

	* sysdeps/unix/sysv/linux/alpha/bits/fcntl.h: Add F_SETSIG and
	F_GETSIG.
	* sysdeps/unix/sysv/linux/bits/fcntl.h: Likewise.
	* sysdeps/unix/sysv/linux/mips/bits/fcntl.h: Likewise.
	* sysdeps/unix/sysv/linux/sparc/bits/fcntl.h: Likewise.

1998-08-20  Philip Blundell  <pb@nexus.co.uk>

	* sysdeps/arm/fpu/ieee754.h: Move to...
	* sysdeps/arm/ieee754.h: ... here.

	* sysdeps/arm/__longjmp.S: Put return value in correct register.
	Don't set the condition flags unnecessarily.
	* sysdeps/arm/fpu/__longjmp.S: Likewise.  Restore floating point
	registers correctly.

	* sysdeps/arm/dl-machine.h: Fix problems with profiling code
	(patch from Scott Bambrough).

	* sysdeps/arm/sysdep.h (CALL_MCOUNT): Add missing semicolons.

	* csu/initfini.c (_init): Don't check whether __gmon_start__ is
	NULL, just call it unconditionally.
	(__gmon_start__): Provide stub version as a weak symbol.

1998-07-30  Philip Blundell  <philb@gnu.org>

	* sysdeps/unix/sysv/linux/arm/init-first.h: New file (from patch
	by Scott Bambrough)

	* sysdeps/unix/sysv/linux/arm/errlist.c: New file; ARM tools don't
	like `@' in .type directives.

	* sysdeps/arm/bsd-setjmp.S: Use PLT for procedure call.
	* sysdeps/arm/bsd-_setjmp.S: Likewise.

	* sysdeps/arm/dl-machine.h: Set __libc_stack_end.

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

	* sysdeps/unix/sysv/linux/mips/bits/fcntl.h (F_SETOWN): Correct value.
	(F_GETOWN): Likewise.

	* sysdeps/unix/sysv/linux/bits/siginfo.h (SI_SIGIO): Add it (from
	Linux 2.1.117).

1998-08-20  Ulrich Drepper  <drepper@cygnus.com>

	* sysdeps/generic/glob.c [_LIBC]: Define __stat only if not
	already defined.

1998-08-14  Thorsten Kukuk  <kukuk@vt.uni-paderborn.de>

	* nis/nss_compat/compat-grp.c: Set errno to ENOENT if we have no
	more entries.
	* nis/nss_compat/compat-initgroups.c: Likewise.
	* nis/nss_compat/compat-pwd.c: Likewise.
	* nis/nss_compat/compat-spwd.c: Likewise.
	* nis/nss_nis/nis-alias.c: Likewise.
	* nis/nss_nis/nis-ethers.c: Likewise.
	* nis/nss_nis/nis-grp.c: Likewise.
	* nis/nss_nis/nis-hosts.c: Likewise.
	* nis/nss_nis/nis-initgroups.c: Likewise.
	* nis/nss_nis/nis-network.c: Likewise.
	* nis/nss_nis/nis-proto.c: Likewise.
	* nis/nss_nis/nis-pwd.c: Likewise.
	* nis/nss_nis/nis-rpc.c: Likewise.
	* nis/nss_nis/nis-service.c: Likewise.
	* nis/nss_nis/nis-spwd.c: Likewise.

	* nis/rpcsvc/yp.h: Generate new without 1024 byte limits.

	* nis/ypclnt.c: Try binding dir only first time, could be to old.

	* nis/yp_xdr.c: Remove 1024 byte limit.
	* nis/ypupdate_xdr.c: Likewise.

	* nis/nss_nis/nis-publickey.c: Make sure, nobody could send
	wrong data.
1998-08-20 17:40:36 +00:00
Ulrich Drepper 3f62b69af3 Update.
1998-07-27 17:42  Ulrich Drepper  <drepper@cygnus.com>

	* nss/nss_files/files-parse.c (INT_FIELD): Use strtoul instead of
	strtol.
	(INT_FIELD_MAYBE_NULL): Likewise.

	* posix/globtest.c: Rewrite for extended test suite.
	* posix/globtest.sh: More tests.
	Patch by Brian Wellington <bwelling@anomaly.munge.com>.

	* stdlib/strtol.c: Don't redefine LONG_MAX, LONG_MIN, and ULONG_MAX.
	Use new macro.

	* sysdeps/generic/readv.c: Correct return type.
	* sysdeps/generic/writev.c: Likewise.

1998-07-24  Gordon Matzigkeit  <gord@fig.org>

	* argp/argp-help.c (_GNU_SOURCE): Define, to suck in
	program_invocation_name when compiling outside of glibc.

1998-07-26  Philip Blundell  <philb@gnu.org>

	* sysdeps/unix/sysv/linux/arm/siglist.c: New file; ARM tools don't
	like `@' in .type directives.

	* sysdeps/libm-ieee754/e_expf.c (__ieee754_expf): Check whether
	FE_TONEAREST exists for this platform before using it.
	* sysdeps/libm-ieee754/e_exp.c (__ieee754_exp): Likewise.

	* sysdeps/arm/dl-machine.h (elf_machine_rel): Delete redundant
	debugging code.  Correct handling of PC24 relocs.

	* elf/Makefile (ld-map): Only define if versioning is in use.

	* sysdeps/arm/fpu_control.h: Move to ...
	* sysdeps/arm/fpu/fpu_control.h: ... here.
	* sysdeps/generic/fpu_control.h: Made usable as a dummy
	implementation.

	* sysdeps/unix/sysv/linux/arm/brk.c: New file.

	* sysdeps/arm/machine-gmon.h: Improved profiling for ARM.
	* sysdeps/arm/sysdep.h (CALL_MCOUNT): Replace stub with real
	implementation.
	* sysdeps/unix/sysv/linux/arm/clone.S: Likewise.
	Based on patch from Scott Bambrough and Pat Beirne.

	* shlib-versions: Add appropriate definitions for ARM machines.

	* README.template: Mention that Linux/ARM with ELF works now.

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

	* Makerules: Generate compilation rules for all object suffixes,
	not only those currently selected, for sources in the current or
	object directory.

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

	* posix/fnmatch.c (fnmatch): Allow `/' in character class.  Don't
	match `/' in filename by a character class if requested.
	* posix/testfnm.c: Rewritten.
	* posix/testfnm.args: Removed.

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

	* posix/annexc.c (limits_syms): Add missing symbols.
	(stdarg_syms): Move va_list to `maybe' list.
	(stdio_syms): Add FOPEN_MAX.
1998-07-27 17:55:05 +00:00
Ulrich Drepper eb27c43f02 Update.
1998-05-23  Philip Blundell  <Philip.Blundell@pobox.com>

	* sysdeps/unix/sysv/linux/arm/syscalls.list: Add `syscall'.
	* sysdeps/unix/sysv/linux/arm/syscall.S: Deleted.

1998-07-05  Ulrich Drepper  <drepper@cygnus.com>

	* misc/getttyent.c (getttyent): Explicitly lock the FILE and use
	_unlocked functions.

	* inet/ruserpass.c (ruserpass): Use _unlocked functions since this
	is a private FILE.
1998-07-05 08:24:43 +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
Ulrich Drepper bd78530f15 Update.
1998-05-31  Philip Blundell  <philb@gnu.org>

	* sysdeps/unix/sysv/linux/arm/sysdep.S: Use C_SYMBOL_NAME when
	referring to errno and _errno.

	* sysdeps/arm/fpu/feholdexcpt.c: New file.

	* sysdeps/i386/fpu_control.h: Fix typo.

	* sysdeps/arm/bits/setjmp.h (__jmp_buf): Remove floating-point support.
	(_JMPBUF_UNWINDS): Added.
	* sysdeps/arm/fpu/bits/setjmp.h: New file.

1998-05-25  Gordon Matzigkeit  <gord@profitpress.com>

	* sysdeps/mach/hurd/Makefile: Use the `before-compile' target in
	order to build header files, not `generated'.

	* Rules (before-compile): New target which depends on all
	$(before-compile) files.
1998-06-01 13:41:16 +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
Ulrich Drepper 3081378bb2 Update.
1998-05-19 15:58  Ulrich Drepper  <drepper@cygnus.com>

	* elf/rtld.c (process_envvars): Fix typo.  Don't handle
	LD_PROFILE_OUTPUT in SUID binaries.
	* intl/dcgettext.c: In SUID binaries don't let language part of
	locale value contain path elements.
	* intl/explodename.h: Define new function _nl_find_language.
	* intl/loadinfo.h: Declare _nl_find_language.
	* locale/findlocale.c (_nl_find_locale): Use _nl_find_locale to get
	language part it drop the value is path element is contained.

	* locale/setlocale.c: Fix typo.

1998-05-18  Philip Blundell  <Philip.Blundell@pobox.com>

	* sysdeps/unix/sysv/linux/arm/socket.S: Correct handling of arguments.

	* sysdeps/arm/strlen.S: Support both big and little endian processors.

	* sysdeps/arm/sysdep.h (ALIGNARG): ELF .align directive uses a
	log, not a byte-count.

	* sysdeps/unix/arm/sysdep.S (syscall_error): Use C_SYMBOL_NAME for
	a.out compatibility.

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

	* sysdeps/unix/bsd/vax/vfork.S: Fix the "the the" problems.
	* sysdeps/unix/bsd/sun/m68k/vfork.S: Likewise.
	* sysdeps/unix/bsd/hp/m68k/vfork.S: Likewise.
	* posix/unistd.h: Likewise.
	* math/math.h: Likewise.
	* manual/users.texi (Manipulating the Database): Likewise.
	* manual/signal.texi (Job Control Signals): Likewise.
	* manual/message.texi (The gencat program): Likewise.
	* manual/filesys.texi (Hard Links): Likewise.
	* manual/math.texi (SVID Random): Likewise.
	* manual/llio.texi (Waiting for I/O): Likewise.
	* manual/io.texi (File Name Errors): Likewise.
	* manual/conf.texi (String Parameters): Likewise.
	* manual/arith.texi (Infinity): Likewise.
	* malloc/malloc.c: Likewise.
	* hurd/hurdsig.c (_hurd_internal_post_signal): Likewise.
	* csu/Makefile: Likewise.
1998-05-19 16:13:05 +00:00
Ulrich Drepper 69f155d4fc Update.
1998-04-30 16:45  Ulrich Drepper  <drepper@cygnus.com>

	* inet/ether_aton.c: Including netinet/if_ether.h is not necessary.

	* locale/Makefile (distribute): Add programs/repertoire.h.
	(localedef-modules): Add repertoire.
	(CPPFLAGS): Define REPERTOIREMAP_PATH.
	* locale/programs/repertoire.c: New file.
	* locale/programs/repertoire.h: New file.
	* locale/programs/charmap.c: Starting fixing character set handling
	to handle multi-byte encodings.
	* locale/programs/charset.c: Likewise.
	* locale/programs/charset.h: Likewise.
	* locale/programs/ld-collate.c: Likewise.
	* locale/programs/ld-ctype.c: Likewise.
	* locale/programs/linereader.c: Likewise.
	* locale/programs/localedef.c: Likewise.
	* locale/programs/locfile-kw.gperf: Likewise.
	* locale/programs/locfile-kw.h: Likewise.
	* locale/programs/locfile-token.h: Likewise.
	* locale/programs/locfile.h: Likewise.
	* locale/programs/stringtrans.c: Likewise.

1998-04-18  Philip Blundell  <Philip.Blundell@pobox.com>

	* sysdeps/arm/memset.S: Fix off by one error.

	* sysdeps/unix/sysv/linux/arm/sysdep.h (PSEUDO): On error, call
	__syscall_error rather than syscall_error directly.

1998-04-17  Philip Blundell  <Philip.Blundell@pobox.com>

	* sysdeps/unix/sysv/linux/arm/mmap.S: New file; implementation of
	mmap() syscall for ARM.

	* sysdeps/unix/arm/start.c: New file; startup code for ARM a.out
	binaries.
1998-04-30 16:57:48 +00:00
Ulrich Drepper 4bca4c1748 Update.
1998-04-07 08:51  Ulrich Drepper  <drepper@cygnus.com>

	* iconv/gconv.c: Take care for NULL arguments.
	* iconv/gconv_dl.c: Make find_func function global.
	* iconv/gconv_int.h: Add prototype for __gconv_find_func.
	Add prototypes for ASCII conversion functions.
	* iconv/gconv_simple.c: Add ASCII conversion functions.
	* locale/C-ctype.c: Correct charset name.

	* wcsmbs/Makefile (distribute): Add wcsmbsload.h.
	(routines): Remove wmemrtowcs and wmemrtombs, add wcsnlen and
	wcsmbsload.
	* wcsmbs/btowc.c: Rewrite to use iconv functionality.
	* wcsmbs/mbrtowc.c: Likewise.
	* wcsmbs/mbsnrtowcs.c: Likewise.
	* wcsmbs/mbsrtowcs.c: Likewise.
	* wcsmbs/wcrtomb.c: Likewise.
	* wcsmbs/wcsnrtombs.c: Likewise.
	* wcsmbs/wcsrtombs.c: Likewise.
	* wcsmbs/wctob.c: Likewise.
	* wcsmbs/wchar.h: Add prototype for __wcslen, wcsnlen.  Remove
	prototypes for wmemr*.
	* wcsmbs/wcslen.c: Rename to __wcslen and make wcslen weak alias.
	* wcsmbs/wcsnlen.c: New file.
	* wcsmbs/wcsmbsload.c: New file.
	* wcsmbs/wcsmbsload.h: New file.

	* manual/filesys.texi: Mention risks of tmpnam and mktemp.

	* manual/install.texi: Describe some more critical points.

	* string/string.h: Add prototype for __strnlen.
	* string/strnlen.c: Rename to __strnlen and make strnlen weak alias.

	* sysdeps/posix/mktemp.c: Rewrite to allow many more files and
	much less predictable names.
	* sysdeps/posix/mkstemp.c: Likewise.

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

	* manual/libc.texinfo (Top): Change "file namespace" to "local
	namespace".

	* manual/socket.texi: Change file namespace to local namespace.
	(Out-of-Band Data): Remove unneeded variable link.
	(Host Address Functions): Use uint32_t consequently and add a
	number of clarifications for IPv4/IPv6, classless addresses.
	(Internet Namespace): Added some paragraphs about IPv6.
	Based on suggestions by Francesco Potorti` <F.Potorti@cnuce.cnr.it>.

1998-04-05  Philip Blundell  <Philip.Blundell@pobox.com>

	Update for draft-ietf-ipngwg-bsd-api-new-01.txt:

	* resolv/netdb.h (getnameinfo): Use `socklen_t' not `size_t'.
	(NI_NUMERICHOST, et al.): Tidy up and add comments.
	(AI_NUMERICHOST): Define.
	(getnodebyname): New prototype.
	(AI_V4MAPPED, et al.): New constants.

	* sysdeps/unix/bsd/bsd4.4/bits/sockaddr.h (SA_LEN): New macro.<
	* sysdeps/generic/bits/sockaddr.h (SA_LEN): Likewise.
	* sysdeps/unix/sysv/linux/Makefile (sysdep_routines): Add sa_len
	for socket.
	* sysdeps/unix/sysv/linux/sa_len.c: New file.
	* sysdeps/unix/sysv/linux/Dist: Add sa_len.c.

	* sysdeps/unix/sysv/linux/bits/socket.h: Make multiple #inclusion safe.

	* sysdeps/generic/bits/sockunion.h: New file, defining sockaddr_union.
	* sysdeps/unix/sysv/linux/bits/sockunion.h: Likewise.
	* socket/Makefile (headers): Add bits/sockunion.h.
	* socket/sys/socket.h: Include <bits/sockunion.h>
	* inet/netinet/in.h: Include <bits/sockaddr.h> rather than
	<sys/socket.h>, to avoid getting sockaddr_union defined.
	* sysdeps/generic/bits/socket.h: Allow inclusion from netinet.in.h.
	* sysdeps/unix/sysv/linux/bits/socket.h: Likewise.
	* sysdeps/unix/sysv/linux/mips/bits/socket.h: Likewise.

	* sysdeps/unix/sysv/linux/if_index.c: Remove use of SIOCGIFCOUNT
	(2.2.x kernels won't have it).

1998-04-06 21:21  Ulrich Drepper  <drepper@cygnus.com>

	* sysdeps/mach/hurd/bits/ioctls.h: Allow inclusion from hurd/ioctl.h.
	* sysdeps/mach/hurd/dl-sysdep.c: Use __ptr_t not caddr_t.
	* iconv/gconv_conf.c: Define MAXPATHLEN if not available before.
	Patches by UCHIYAMA Yasushi <uch@nop.or.jp>.

1998-04-05  Philip Blundell  <Philip.Blundell@pobox.com>

	* manual/socket.texi (Socket Addresses): Fix a typo.
	(Interface Naming): New section.

1998-04-05 23:29  Zack Weinberg  <zack@rabi.phys.columbia.edu>

	* configure.in: Check for CC using $ac_tool_prefix, to handle
	cross-compilation.  Use AC_CHECK_TOOL to find MiG.
	* config.make.in: Add MIG to be substituted.
	* mach/Machrules: Don't define MIG variable.

	Patch by Gordon Matzigkeit <gord@profitpress.com>.

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

	* elf/dl-load.c (decompose_rpath): Use local_strdup instead of
	strdupa to copy rpath.

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

	* configure.in: Fix gcc version check.

	* aclocal.m4 (AC_PROG_CHECK_VER): Rewritten to make less confusing.

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

	* configure.in: Fix gcc version check.

	* aclocal.m4 (AC_PROG_CHECK_VER): Rewritten to make less
	confusing.

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

	* configure.in: Fix gcc version check.

	* aclocal.m4 (AC_PROG_CHECK_VER): Rewritten to make less
	confusing.

1998-03-31  Mark Kettenis  <kettenis@phys.uva.nl>

	* sysdeps/unix/bsd/unlockpt.c (unlockpt): Call __ptsname_r instead
	of ptsname_r.

	* stdlib/stdlib.h: Change prototype of ptsname_r to make it more
	like ttyname_r.
	* sysdeps/unix/sysv/linux/ptsname.c (__ptsname_r): Likewise.
	* sysdeps/generic/ptsname.c (__ptsname_r): Likewise.
	* sysdeps/unix/grantpt.c (grantpt): Change check of return value
	of __ptsname_r accordingly.
	* login/openpty.c (openpty): Likewise.

1998-06-04 18:47  H.J. Lu  <hjl@gnu.org>

	* libio/fileops.c (_IO_file_xsgetn): Adjust pointers.

1998-04-06 13:58  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* Makeconfig (libtypes): Redo H.J. Lu's change of 1998-03-27.

	* Makerules: Readd missing rule for $(objpfx)stamp.oS.

1998-04-06  Thorsten Kukuk  <kukuk@vt.uni-paderborn.de>

	* nis/ypclnt.c: Don't give YPERR_RPC back, use the do_ypcall
	return value for better error checking.
1998-04-07 09:21:28 +00:00
Ulrich Drepper ecdd1a3160 Update.
1998-04-03 16:29  Philip Blundell  <pb@nexus.co.uk>

	Based on patch from Pat Beirne:
	* sysdeps/unix/sysv/linux/arm/sysdep.S (__syscall_error): Same for
	PIC and non-PIC now.  Correctly negate error number.
	(errno): Use `%' not `@' in .type directives.

1998-04-03  Ulrich Drepper  <drepper@cygnus.com>

	* sysdeps/i386/strtok.S: Change to use single exit point.
	* sysdeps/i386/i686/strtok.S: Likewise.
1998-04-03 12:07:01 +00:00
Ulrich Drepper eb098700c8 Update.
1998-04-03 16:29  Philip Blundell  <pb@nexus.co.uk>

	* sysdeps/unix/sysv/linux/arm/sysdep.h (PSEUDO): Fix typo
	introduced in last change.
1998-04-03 08:27:10 +00:00
Ulrich Drepper 652e8a1e1b Update.
1998-04-1 16:52  Philip Blundell  <pb@nexus.co.uk>

	* sysdeps/unix/sysv/linux/arm/socket.S: Correct test for error and
	use PLTJMP() rather than explicit (PLT).

	* sysdeps/arm/elf/start.S: Leave most of the initialisation for
	__libc_start_main().

	Based on patch from Pat Beirne:
	* sysdeps/unix/sysv/linux/arm/sysdep.h (SYSCALL_ERROR_HANDLER):
	Always define, not only #ifndef PIC.
	(DO_CALL): Pass fifth argument correctly in R4.
	(PSEUDO): Correct test for error, call syscall_error through PLT
	if PIC.

1998-03-31 10:51  Philip Blundell  <pb@nexus.co.uk>

	* sysdeps/unix/sysv/linux/netash/ash.h: Fix typos and add new
	definitions.
1998-04-01 09:15:07 +00:00
Ulrich Drepper 3116126871 Update.
1998-03-18 14:25  Ulrich Drepper  <drepper@cygnus.com>

	* string/bits/string2.h: Add optimization for strdup.
	Always define __strsep and __strtok_r and make real names available
	when feature select macros are defined.

1998-03-18  Andreas Jaeger  <aj@arthur.rhein-neckar.de>

	* manual/install.texi (Installation): Use i486-linux as example
	instead of the unsupported sunos4.
	(Reporting Bugs): Mention glibcbug script.
	(Tools for Installation): gcc 2.8.1/egcs 1.0.2 is required.

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

	* posix/wordexp-tst.sh: Make portable.  Add more tests.

	* posix/Makefile (do-globtest do-wordexp-test): New targets.

1998-03-18 13:38  Ulrich Drepper  <drepper@cygnus.com>

	* sysdeps/unix/sysv/linux/libc-start.c: Moved to ...
	* sysdeps/generic/libc-start.c: ...here, replacing former content.

	* sysdeps/unix/sysv/linux/Dist: Add netash/ash.h and
	netpacket/packet.h.

	* sysdeps/unix/sysv/linux/bits/socket.h: Pretty print.

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

	* sysdeps/unix/sysv/linux/bits/resource.h: Remove trailing comma
	in enumerator for strict standard compliance.
	* sysdeps/generic/bits/resource.h: Likewise.

1998-03-18 10:04  Philip Blundell  <pb@nexus.co.uk>

	* sysdeps/arm/sysdep.h (__ARM_USES_FP): Deleted.
	(PLTJMP): New macro.

	* sysdeps/arm/fpu/__longjmp.S: New file, implementation of
	longjmp() when floating point enabled.
	* sysdeps/arm/fpu/setjmp.S: Likewise for setjmp().
	* sysdeps/arm/__longjmp.S: Remove floating point code.
	* sysdeps/arm/setjmp.S: Likewise.

	* sysdeps/arm/bsd-setjmp.S: Call __sigsetjmp by correct name.
	* sysdeps/arm/bsd-_setjmp.S: Likewise.

	* sysdeps/arm/memset.S: New file; optimised ARM implementation of
	memset().

	* sysdeps/generic/setsockopt.c (setsockopt): Keep in step with
	prototype.

1998-03-17 16:16  Philip Blundell  <pb@nexus.co.uk>

	Based on patches from Pat Beirne and Scott Bambrough:

	* sysdeps/arm/__longjmp.S: Use ip, not r2, as temporary.

	* sysdeps/arm/bits/fenv.h: New file.

	* sysdeps/arm/dl-machine.h: New file.  Add ELF support.
	* sysdeps/arm/elf/setjmp.S: Likewise.
	* sysdeps/arm/elf/start.S: Likewise.
	* sysdeps/arm/init-first.c: Likewise.
	* sysdeps/arm/setjmp.S: Call __sigjmp_save through PLT
	* sysdeps/arm/sysdep.h: Change format of .type directive.  Correct
	comment about floating point to reflect current reality.

	* sysdeps/unix/arm/brk.S: Support PIC.
	* sysdeps/unix/arm/sysdep.S (syscall_error): Support PIC and
	re-entrant code.
	* sysdeps/unix/sysv/linux/arm/socket.S: Check correctly for error
	return; call syscall_error through PLT.
	* sysdeps/unix/sysv/linux/arm/sysdep.h (ENTRY): Correct error jump.

1998-03-04 12:01  Philip Blundell  <pb@nexus.co.uk>

	* sysdeps/unix/sysv/linux/netpacket/packet.h: New file.
	* sysdeps/unix/sysv/linux/netash/ash.h: Likewise.
	* sysdeps/unix/sysv/linux/Makefile (sysdep_headers): Install them.
1998-03-18 14:42:25 +00:00
Ulrich Drepper 6591c33562 Update.
1998-01-30 19:58  Ulrich Drepper  <drepper@cygnus.com>

	* include/cpio.h: Move to ...
	* posix/cpio.h: ...here.

	* locale/programs/ld-collate.c: Fix typo.

	* signal/signal.h: Declare _sys_siglist with NSIG+1 elements.

	* stdio-common/tiformat.c: Add checks for %#.0o and friends.

	* login/utmp_file.c (pututline_file): Don't always report success
	if similar entry is found.  Patch by Mark M. Kettenis.

1998-01-30 16:06  Philip Blundell  <pb@nexus.co.uk>

	* manual/Makefile: Don't try to install the info files if makeinfo
	is not available.

1998-01-30 12:05  Philip Blundell  <pb@nexus.co.uk>

	* sysdeps/unix/sysv/linux/bits/ioctls.h: Include a copy of the
	kernel's network ioctls, rather than using <linux/sockios.h> to
	get them.  This way we are sure of maintaining compatibility if
	the kernel interface should change.

1998-01-30 15:52  Ulrich Drepper  <drepper@cygnus.com>

	* sysdeps/unix/sysv/linux/Dist: Add netrose/rose.h.

1998-01-25 19:54  Philip Blundell  <Philip.Blundell@pobox.com>

	* sysdeps/unix/sysv/linux/netrose/rose.h: New file.
	* sysdeps/unix/sysv/linux/Makefile (sysdep_headers): Install it.

1998-01-27 22:29  Zack Weinberg  <zack@rabi.phys.columbia.edu>

	Implement System V pseudoterminal handling.

	* login/Makefile
	(routines): Add getpt, grantpt, unlockpt, ptsname.
	(libutil-routines): Remove pty. Add openpty, forkpty.
	(distribute): New internal header pty-internal.h.
	(others): Add the helper program, pt_chown.
	(install-others): Install it, in $(libexecdir), mode 4755.

	* login/pty-internal.h: New file.
	* login/openpty.c: New file.
	* login/forkpty.c: New file.
	* login/programs/pt_chown.c: New file.

	* libc.map: Add getpt, grantpt, unlockpt, ptsname, ptsname_r.
	* stdlib/stdlib.h: Prototype them.

	* config.make.in: Define $(libexecdir).
	* Makeconfig: Define $(inst_libexecdir).

	* sysdeps/generic/pty.c: Removed.
	* sysdeps/unix/sysv/linux/pty.c: Removed.

	* sysdeps/generic/getpt.c: Stub out.
	* sysdeps/generic/grantpt.c: Likewise.
	* sysdeps/generic/ptsname.c: Likewise.
	* sysdeps/generic/unlockpt.c: Likewise.

	* sysdeps/unix/grantpt.c: New file.
	* sysdeps/unix/bsd/getpt.c: New file.
	* sysdeps/unix/bsd/unlockpt.c: New file.
	* sysdeps/unix/sysv/linux/getpt.c: New file.
	* sysdeps/unix/sysv/linux/ptsname.c: New file.
	* sysdeps/unix/sysv/linux/unlockpt.c: New file.

1998-01-29 23:56  Ulrich Drepper  <drepper@cygnus.com>

	* localedata/locales/ru_RU: Fix YESEXPR.  Patch by lav@yars.free.net.

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

	* nss/Makefile (tests): Add rule for test-netdb.c.

	* nss/test-netdb.c: New file.

1998-01-29 02:38  Ulrich Drepper  <drepper@cygnus.com>

	* elf/dl-open.c (_dl_open): Make sure the variable `reloc' is
	really kept as a variable.  Patch by Richard Henderson,
	reported by Jakub Jelinek <jj@sunsite.ms.mff.cuni.cz>.

	* elf/rtld.c (dl_main): Call _dl_init_paths before handling preloading.
	* elf/genrtldtbl.awk: Mark machine dependent directory of generated
	entries as not existing.

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

	* stdio-common/vfprintf.c (process_arg): Fix printing of octal
	zero in alternate form with precision of zero, which must produce
	"0".  Add braces to avoid ambiguous `else'.

1998-01-26  Thorsten Kukuk  <kukuk@vt.uni-paderborn.de>

	* nis/nss_compat/compat-grp.c: Fix memory leak and trailing null
	problem with strncpy.
	* nis/nss_compat/compat-pwd.c: Likewise.
	* nis/nss_compat/comapt-spwd.c: Likewise.

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

	* assert/assert.h (assert_perror): Correct test for errnum.  Patch
	by uch@nop.or.jp. [PR libc/437]

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

	* locales/pl_PL: Fix int_curr_symbol.

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

	* nis/nis_cache.c: Include <unistd.h> for declaration of close.

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

	* stdio-common/test-popen.c: Include <errno.h>.

	* sysdeps/unix/sysv/linux/if_index.c: Include <unistd.h> for
	close.

	* inet/getnetgrent_r.c: Include <errno.h>.

	* db2/db/db_conv.c: Include <string.h> for memcpy.

	* gmon/bb_exit_func.c: Include <string.h> instead of <strings.h>
	so that memcpy is declared.

	* iconv/iconv_open.c: Include <stdlib.h> for alloca.

	* misc/init-misc.c: Remove unneeded inclusion of <errno.h>.

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

	* pwd/fgetpwent_r.c (__fgetpwent_r): Correctly handle buffer
	overflow while reading line with fgets.
	* grp/fgetgrent_r.c (__fgetgrent_r): Likewise.

1998-01-27 00:46  Ulrich Drepper  <drepper@cygnus.com>

	* sysdeps/unix/sysv/linux/bits/types.h (__ipc_pid_t): Change to
	unsigned short, not short.
	Reported by Andreas Jaeger.

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

	* sysdeps/unix/sysv/linux/mips/syscalls.list: Correct typo
	(ccept->accept).

	* sysdeps/generic/inttypes.h: Fix spelling.

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

	* sysdeps/unix/sysv/linux/arm/Dist: Add bits/mman.h.

	* sysdeps/unix/sysv/linux/alpha/Dist: Add net/route.h.

1998-01-27 00:30  Ulrich Drepper  <drepper@cygnus.com>

	* stdio-common/printf.h (struct print_info): Add new bitfield is_char.
	* stdio-common/printf-parse.h (parse_one_spec): Fill in is_char
	field for hh modifier.
	* stdio-common/vfprint.c: Use is_char field and do not depend in
	is_short having the value 2.
	Bug reported by Andreas Jaeger.

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

	* libio/freopen.c (freopen): Call _IO_old_freopen only if defined
	PIC && DO_VERSIONING.

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

	* Rules: Add rules for $(common-objpfx)dummy$o.
1998-01-30 11:44:34 +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 d71b808a96 Update.
1997-12-08 03:24  Ulrich Drepper  <drepper@cygnus.com>

	* Makeconfig: Define $(rt) to rt if linuxthreads is available.
	* Makefile (subdirs): Replace rt by $(rt).

	* shlib-versions: Use version .2 for NSS modules.

	* grp/fgetgrent_r.c (LINE_PARSER): Call parse_line with extra
	argument.
	* pwd/fgetpwent_r.c: Likewise.
	* spwd/fgetspent_r.c: Likewise.
	* spwd/sgetspent_r.c: Likewise.
	* hesiod/nss_hesiod/hesiod-grp.c (lookup): Add new argument.
	Store error number in *ERRNOP.  Little optimization.
	* hesiod/nss_hesiod/hesiod-pwd.c: Likewise.
	* hesiod/nss_hesiod/hesiod-service.c: Likewise.
	* inet/getnetgrent_r.c (__internal_setnetgrent_reuse): Likewise.
	(__internal_getnetgrent_r): New argument.
	Call __internal_setnetgrent_reuse with new argument.
	(__getnetgrent_r): Call __internal_getnetgrent_r with new argument.
	* inet/netgroup.h: Add argument to prototypes.
	* nis/nisplus-parser.h: Likewise.
	* nis/nss_compat/compat-grp.c: Change everything to store error
	code through provided pointer and not use errno.
	* nis/nss_compat/compat-pwd.c: Likewise.
	* nis/nss_compat/compat-spwd.c: Likewise.
	* nis/nss_nis/nis-alias.c: Likewise.
	* nis/nss_nis/nis-ethers.c: Likewise.
	* nis/nss_nis/nis-grp.c: Likewise.
	* nis/nss_nis/nis-hosts.c: Likewise.
	* nis/nss_nis/nis-netgrp.c: Likewise.
	* nis/nss_nis/nis-network.c: Likewise.
	* nis/nss_nis/nis-proto.c: Likewise.
	* nis/nss_nis/nis-publickey.c: Likewise.
	* nis/nss_nis/nis-pwd.c: Likewise.
	* nis/nss_nis/nis-rpc.c: Likewise.
	* nis/nss_nis/nis-service.c: Likewise.
	* nis/nss_nis/nis-spwd.c: Likewise.
	* nis/nss_nisplus/nisplus-alias.c: Likewise.
	* nis/nss_nisplus/nisplus-ethers.c: Likewise.
	* nis/nss_nisplus/nisplus-grp.c: Likewise.
	* nis/nss_nisplus/nisplus-hosts.c: Likewise.
	* nis/nss_nisplus/nisplus-netgrp.c: Likewise.
	* nis/nss_nisplus/nisplus-network.c: Likewise.
	* nis/nss_nisplus/nisplus-parser.c: Likewise.
	* nis/nss_nisplus/nisplus-proto.c: Likewise.
	* nis/nss_nisplus/nisplus-publickey.c: Likewise.
	* nis/nss_nisplus/nisplus-pwd.c: Likewise.
	* nis/nss_nisplus/nisplus-rpc.c: Likewise.
	* nis/nss_nisplus/nisplus-service.c: Likewise.
	* nis/nss_nisplus/nisplus-spwd.c: Likewise.
	* nss/nss_db/db-XXX.c: Likewise.
	* nss/nss_db/db-alias.c: Likewise.
	* nss/nss_db/db-netgrp.c: Likewise.
	* nss/nss_files/files-XXX.c: Likewise
	* nss/nss_files/files-alias.c: Likewise
	* nss/nss_files/files-netgrp.c: Likewise
	* nss/nss_files/files-parse.c: Likewise
	* nss/getXXbyYY_r.c: Call with __errno_location() as value for new
	parameter of get functions.
	* nss/getXXent_r.c: Likewise.

	* localedata/tst-fmon.c: Print debug info if test fails.

	* rt/Makefile (routines): Add aio_notify.
	* rt/aio.h: Remove non-public definitions.  Add aioinit stuff.
	* rt/aio_cancel.c: Rewrite to support lio_listio and aio_suspend.
	* rt/aio_fsync.c: Likewise.
	* rt/aio_misc.c: Likewise.
	* rt/aio_misc.h: Likewise.
	* rt/aio_read.c: Likewise.
	* rt/aio_read64.c: Likewise.
	* rt/aio_suspend.c: Likewise.
	* rt/aio_write.c: Likewise.
	* rt/aio_write64.c: Likewise.
	* rt/lio_listio.c: Likewise.
	* rt/lio_listio64.c: Likewise.
	* rt/aio_notify.c: New file.

	* sysdeps/generic/bits/sigset.h: Pretty print.

	* sysdeps/posix/pwrite.c: Define weak alias only if function is
	really defined as __pwrite.

	* sysdeps/unix/sysv/linux/pread.c: Rewrite to use syscall directly
	instead of pread64.
	* sysdeps/unix/sysv/linux/pwrite.c: Likewise.

	* sysdeps/unix/sysv/linux/Makefile [$(subdir)=signal]
	(sysdep_routines): Add rt_sigpending and rt_sigreturn.
	* sysdeps/unix/sysv/linux/sigaction.c: Use correct value for sigset_t
	size in syscall.
	* sysdeps/unix/sysv/linux/sigpending.c: Likewise.
	* sysdeps/unix/sysv/linux/sigprocmask.c: Likewise.
	* sysdeps/unix/sysv/linux/sigreturn.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/i386/sigaction.c: Likewise.  Take care
	for ACT being NULL.
	* sysdeps/unix/sysv/linux/syscalls.list: Don't mention user for
	RT signals.
	* sysdeps/unix/sysv/linux/i386/s_pread64.s: Return ENOSYS if
	__NR_pread is not defined.
	* sysdeps/unix/sysv/linux/i386/s_pwrite64.s: Return ENOSYS if
	__NR_pwrite is not defined.

1997-12-07 11:15  Thorsten Kukuk  <kukuk@vt.uni-paderborn.de>

	* nis/nss_compat/compat-grp.c: If buffer is to small, set the file
	handle for /etc/group back in some more cases.
	* nis/nss_compat/compat-pwd.c: If buffer is to small, set the file
	handle for /etc/passwd back in some more cases.
	* nis/nss_compat/compat-spwd.c: If buffer is to small, set the file
	handle for /etc/shadow back in some more cases.

1997-12-06 17:00  H.J. Lu  <hjl@gnu.org>

	* sysdeps/posix/sigblock.c (__sigblock): Don't check int mask
	beyound its size.
	* sysdeps/posix/sigsetmask.c (__sigsetmask): Ditto.
	* sysdeps/posix/sigvec.c (convert_mask, __sigvec): Ditto.

1997-12-06 04:38  Ulrich Drepper  <drepper@cygnus.com>

	* sysdeps/wordsize-32/inttypes.h: Rewrite {str,wcs}to{i,u}max
	handling.  Don't use macros, we need functions.  Use inline functions
	for optimization.
	* sysdeps/wordsize-64/inttypes.h: Likewise.
	* sysdeps/wordsize-32/Makefile: Add strtoimax, stroumax, wcstoimax,
	and wcstoumax.
	* sysdeps/wordsize-64/Makefile: Likewise.
	* sysdeps/wordsize-32/Dist: Likewise.
	* sysdeps/wordsize-64/Dist: Likewise.
	* sysdeps/wordsize-32/strtoimax.c: New file.
	* sysdeps/wordsize-32/strtoumax.c: New file.
	* sysdeps/wordsize-32/wcstoimax.c: New file.
	* sysdeps/wordsize-32/wcstoumax.c: New file.
	* sysdeps/wordsize-64/strtoimax.c: New file.
	* sysdeps/wordsize-64/strtoumax.c: New file.
	* sysdeps/wordsize-64/wcstoimax.c: New file.
	* sysdeps/wordsize-64/wcstoumax.c: New file.

1997-12-04 10:40  Philip Blundell  <pb@nexus.co.uk>

	* sysdeps/generic/wait3.c (__wait3): Use ANSI-style definition so
	that transparent union works.
	* sysdeps/generic/wait4.c (__wait4): Likewise.
	* sysdeps/generic/wait.c (__wait): Likewise.

	* sysdeps/generic/getpeername.c (getpeername): Use socklen_t not
	size_t.

	* sysdeps/generic/syscall.c (syscall): Return value and arg are
	long, to match prototype.

	* malloc/malloc.c (HAVE_MREMAP): Set to 0 for ARM, as we don't
	have mremap() yet.

	* sysdeps/generic/usleep.c (usleep): Returns void, to match prototype.

	* sysdeps/unix/sysv/linux/arm/syscalls.list: New file.

	* sysdeps/generic/bits/time.h: Use __time_t not time_t.

	* sysdeps/generic/bits/resource.h: Include <bits/types.h> for
	__rlim_t.

	* sysdeps/standalone/arm/bits/errno.h (ENOTTY): Added.

	* sysdeps/generic/bits/dirent.h (struct dirent64): Added.

	* io/sys/stat.h (S_ISLNK): Always false if we don't have
	__S_IFLNK.

	* sysdeps/standalone/close.c (_STDIO_H): Define before including
	<bits/stdio_lim.h>.
	* sysdeps/standalone/filedesc.h (_STDIO_H): Likewise.

1997-12-06 01:09  Ulrich Drepper  <drepper@cygnus.com>

	* posix/sys/wait.h: Don't use transparent unions in C++.

1997-12-05  Andreas Jaeger  <aj@arthur.rhein-neckar.de>

	* time/time.h: Add strfxtime.

	* libc.map: Add tcgetsid, strcasestr, wmemrtombs, wmemrtowcs,
	sysv_signal, strfxtime, pread64, pwrite64.

1997-11-30 21:57  Richard Henderson  <rth@cygnus.com>

	Alpha changes for EGCS:
	* config.h.in (ASM_ALPHA_NG_SYMBOL_PREFIX): New entry.
	* configure.in (libc_cv_gcc_alpha_ng_prefix): New check.
	* sysdeps/alpha/dl-machine.h (_dl_runtime_resolve): Care for prefix.
	(_start): Likewise.
	* sysdeps/unix/sysv/linux/alpha/init-first.h: Likewise.
1997-12-08 03:06:47 +00:00
Ulrich Drepper cbdee2790d Update.
1997-12-03 23:50  Ulrich Drepper  <drepper@cygnus.com>

	* Makeconfig: Add shared-thread-library variable.

	* math/Makfile (CPPFLAGS): Add -D__LIBC_INTERNAL_MATH_INLINES.
	* sysdeps/i386/Makefile: Don't define ___LIBC_INTERNAL_MATH_INLINES
	here.
	* sysdeps/m68k/fpu/e_acos.c: Likewise.
	* sysdeps/m68k/fpu/e_atan2.c: Likewise.
	* sysdeps/m68k/fpu/e_fmod.c: Likewise.
	* sysdeps/m68k/fpu/e_pow.c: Likewise.
	* sysdeps/m68k/fpu/e_scalb.c: Likewise.
	* sysdeps/m68k/fpu/k_cos.c: Likewise.
	* sysdeps/m68k/fpu/k_sin.c: Likewise.
	* sysdeps/m68k/fpu/k_tan.c: Likewise.
	* sysdeps/m68k/fpu/s_atan.c: Likewise.
	* sysdeps/m68k/fpu/s_ccos.c: Likewise.
	* sysdeps/m68k/fpu/s_ccosh.c: Likewise.
	* sysdeps/m68k/fpu/s_cexp.c: Likewise.
	* sysdeps/m68k/fpu/s_csin.c: Likewise.
	* sysdeps/m68k/fpu/s_csinh.c: Likewise.
	* sysdeps/m68k/fpu/s_frexp.c: Likewise.
	* sysdeps/m68k/fpu/s_ilogb.c: Likewise.
	* sysdeps/m68k/fpu/s_isinf.c: Likewise.
	* sysdeps/m68k/fpu/s_llrint.c: Likewise.
	* sysdeps/m68k/fpu/s_llrintf.c: Likewise.
	* sysdeps/m68k/fpu/s_llrintl.c: Likewise.
	* sysdeps/m68k/fpu/s_lrint.c: Likewise.
	* sysdeps/m68k/fpu/s_modf.c: Likewise.
	* sysdeps/m68k/fpu/s_remquo.c: Likewise.
	* sysdeps/m68k/fpu/s_scalbn.c: Likewise.
	* sysdeps/m68k/fpu/s_sincos.c: Likewise.

	* libc.map: Add __libc_current_sigrtmin, __libc_current_sigrtmax,
	__libc_allocate_rtsig, sigqueue, sigtimedwait, sigwaitinfo.
	* signal/Makefile (headers): Add bits/siginfo.h.
	(routines): Add allocrtsig, sigtimedwait, sigwaitinfo, sigqueue.
	(distribute): Add testrtsig.h.
	* signal/allocrtsig.c: New file.
	* signal/signal.h: Define `union sigval'.  Include <bits/siginfo.h>.
	Declare sigwaitinfo, sigtimedwait, sigqueue, __libc_current_sigrtmin,
	__libc_current_sigrtmax.
	* sysdeps/generic/sigqueue.c: New file.
	* sysdeps/generic/sigtimedwait.c: New file.
	* sysdeps/generic/sigwaitinfo.c: New file.
	* sysdeps/generic/testrtsig.h: New file.
	* sysdeps/generic/bits/siginfo.h: New file.
	* sysdeps/unix/sysv/linux/bits/siginfo.h: New file.
	* sysdeps/unix/sysv/linux/kernel_sigaction.h: Define struct as
	old_kernel_sigaction and rename sa_handler member to k_sa_handler.
	* sysdeps/unix/sysv/linux/rt_sigaction.c: New file.
	* sysdeps/unix/sysv/linux/rt_sigprocmask.c: New file.
	* sysdeps/unix/sysv/linux/rt_sigqueueinfo.c: New file.
	* sysdeps/unix/sysv/linux/rt_sigreturn.c: New file.
	* sysdeps/unix/sysv/linux/rt_sigsuspend.c: New file.
	* sysdeps/unix/sysv/linux/rt_sigtimedwait.c: New file.
	* sysdeps/unix/sysv/linux/sigpending.c: New file.
	* sysdeps/unix/sysv/linux/sigprocmask.c: New file.
	* sysdeps/unix/sysv/linux/sigqueue.c: New file.
	* sysdeps/unix/sysv/linux/sigreturn.c: New file.
	* sysdeps/unix/sysv/linux/sigtimedwait.c: New file.
	* sysdeps/unix/sysv/linux/sigwaitinfo.c: New file.
	* sysdeps/unix/sysv/linux/testrtsig.h: New file.
	* sysdeps/unix/sysv/linux/sigsuspend.c: Update for AIO.
	* sysdeps/unix/sysv/linux/syscalls.list: Update for AIO.
	* sysdeps/unix/sysv/linux/sigaction.c: Update for AIO.
	* sysdeps/unix/sysv/linux/bits/local_lim.h: Define AIO_PRIO_DELTA_MAX.
	* sysdeps/unix/sysv/linux/bits/posix_opt.h: Define _XOPEN_REALTIME
	and _POSIX_REALTIME_SIGNALS.
	* sysdeps/unix/sysv/linux/bits/sigaction.h: Update for AIO.
	* sysdeps/unix/sysv/linux/bits/signum.h: Define SIGRTMIN/MAX and
	update _NSIG.
	* sysdeps/unix/sysv/linux/i386/sigaction.c: Update for AIO.
	* sysdeps/unix/sysv/linux/i386/sys/ucontext.h: Linux/i386 specific
	definitions.

	* Makefile (subdirs): Add rt.
	* shlib-versions: Add entry for librt.
	* rt/Makefile: New file.
	* rt/aio.h: New file.
	* rt/aio_cancel.c: New file.
	* rt/aio_error.c: New file.
	* rt/aio_fsync.c: New file.
	* rt/aio_misc.c: New file.
	* rt/aio_misc.h: New file.
	* rt/aio_read.c: New file.
	* rt/aio_read64.c: New file.
	* rt/aio_return.c: New file.
	* rt/aio_suspend.c: New file.
	* rt/aio_write.c: New file.
	* rt/aio_write64.c: New file.
	* rt/lio_listio.c: New file.
	* rt/lio_listio64.c: New file.
	* sysdeps/generic/aio_sigqueue.c: New file.
	* sysdeps/unix/sysv/linux/aio_sigqueue.c: New file.
	* sysdeps/unix/sysv/linux/Dist: Add new files
	* sysdeps/unix/sysv/linux/Makefile [$(subdir)=signal]
	(sysdep_routines): Add rt_sigsuspend, rt_sigprocmask, rt_sigtimedwait,
	rt_sigqueueinfo, rt_sigaction.

	* posix/Makefile (headers): Add bits/environments.h.
	* posix/confstr.c: Correctly handle _CS_XBS5_ILP32_OFFBIG_CFLAGS
	and _CS_LFS_CFLAGS on 64bit platforms.
	* posix/unistd.h: Define _XOPEN_LEGACY.  Explain _XOPEN_REALTIME
	and _XOPEN_REALTIME_THREADS.  Include bits/environments.h.
	* sysdeps/generic/bits/confname.h: Define _SC_* constants for
	compilation modules.
	* sysdeps/wordsize-32/bits/environments.h: New file.
	* sysdeps/wordsize-64/bits/environments.h: New file.

	* posix/getopt.c: Remove declaration of getpid and __libc_pid.
	* posix/getopt_init.c: Test for value 0xf00baa of uninitialized
	__libc_pid.
	* sysdeps/unix/sysv/linux/init-first.c: Initialize __libc_pid to
	0xf00baa.

	* string/string.h: Add declaration of __strverscmp.
	* string/strverscmp.c: Rename function ot __strverscmp and make old
	name weak alias.

	* sysdeps/generic/dl-sysdep.c: Declare and define __libc_uid.
	* sysdeps/generic/enbl-secure.c: Likewise.
	* sysdeps/mach/hurd/dl-sysdep.c: Likewise.

	* sysdeps/unix/sysv/linux/bits/sigset.h: Pretty print.

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

1997-12-03  Ulrich Drepper  <drepper@cygnus.com>

	* posix/sys/wait.h: Use __transparent_union__ instead of
	transparent_union.  Reported by Roland McGrath.

1997-12-03  Andreas Jaeger  <aj@arthur.rhein-neckar.de>

	* resolv/inet_neta.c (inet_neta): Change type of first parameter
	to u_int32_t.  Suggested by John Lavagnino <John_Lavagnino@Brown.edu>
	[PR libc/366].

	* resolv/inet_addr.c (inet_addr): Change return type to u_int32_t.

	* inet/arpa/inet.h: Change types of inet_neta and inet_addr.

1997-12-03 20:40  Thorsten Kukuk  <kukuk@vt.uni-paderborn.de>

	* grp/initgroups.c: Increase buffer if it is too small.

1997-12-03  Ulrich Drepper  <drepper@cygnus.com>

	* sysdeps/unix/sysv/linux/netinet/ip.h: Don't use u_int8_t for bit
	fields, this is no ISO C.  Reported by Andreas Jaeger.

1997-12-03  Andreas Jaeger  <aj@arthur.rhein-neckar.de>

	* sysdeps/i386/sys/ucontext.h (enum): Add missing commata.

1997-12-03 08:58  Philip Blundell  <pb@nexus.co.uk>

	* sysdeps/generic/bits/utsname.h: <sys/utsname.h> defines
	_SYS_UTSNAME_H not _UTSNAME_H.

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

	* elf/dl-profile.c (_dl_start_profile): Avoid overflow when
	computing s_scale.

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

	* sysdeps/libm-ieee754/s_csqrt.c: Use different formula for now.
	* sysdeps/libm-ieee754/s_csqrtf.c: Likewise.
	* sysdeps/libm-ieee754/s_csqrtl.c: Likewise.

	* math/libm-test.c (csqrt_test): Add testcase.

1997-12-03 15:44  Ulrich Drepper  <drepper@cygnus.com>

	* sysdeps/unix/sysv/linux/sys/ultrasound.h: New file.
	* sysdeps/unix/sysv/linux/sys/Dist: Add it.
	* sysdeps/unix/sysv/linux/sys/Makefile [$(subdir)=misc]: Likewise.

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

	* sysdeps/unix/sysv/linux/sys/timex.h: Fix declaration.

1997-12-01  Andreas Jaeger  <aj@arthur.rhein-neckar.de>

	* math/libm-test.c (acos_test): Add more tests.
	(asin_test): Likewise.
	(atan_test): Likewise.
	(exp_test): Likewise.
	(sin_test): Likewise.
	(sqrt_test): Likewise.
	(cpow_test): Likewise.
	(csqrt_test): Likewise.
	(cexp_test): Correct typo in gcc version test.

1997-12-02 17:14  Philip Blundell  <pb@nexus.co.uk>

	* sysdeps/arm/__longjmp.S: Define _SETJMP_H before including
	<bits/setjmp.h>.
	* sysdeps/arm/setjmp.S: Likewise.

	* sysdeps/unix/sysv/linux/arm/bits/mman.h: New file.

1997-12-02 18:07  Philip Blundell  <pb@nexus.co.uk>

	* stdio/stdio.h: Add prototype for tmpfile64().

1997-12-02 17:47  Philip Blundell  <pb@nexus.co.uk>

	* stdio/stdio.h (__stdio_gen_tempname): Add extra argument to
	prototype to keep in step with libio version.

	* stdio-common/tmpfile64.c: Include <errno.h> for ENOSYS.

1997-12-02 17:41  Philip Blundell  <pb@nexus.co.uk>

	* sysdeps/generic/Makefile: Don't try to use make_siglist if
	cross-compiling.

1997-12-02 01:18  Ulrich Drepper  <drepper@cygnus.com>

	* sysdeps/unix/sysv/linux/i386/clone.S: When cloned process returns
	load GOT ptr before jumping to _exit.
	Reported by Xavier Leroy.
1997-12-04 00:12:34 +00:00