Commit Graph

45 Commits

Author SHA1 Message Date
Joseph Myers bfff8b1bec Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
Joseph Myers 0acb8a2a85 Refactor long double information into bits/long-double.h.
Information about whether the ABI of long double is the same as that
of double is split between bits/mathdef.h and bits/wordsize.h.

When the ABIs are the same, bits/mathdef.h defines
__NO_LONG_DOUBLE_MATH.  In addition, in the case where the same glibc
binary supports both -mlong-double-64 and -mlong-double-128,
bits/wordsize.h defines __LONG_DOUBLE_MATH_OPTIONAL, along with
__NO_LONG_DOUBLE_MATH if this particular compilation is with
-mlong-double-64.

As part of the refactoring I proposed in
<https://sourceware.org/ml/libc-alpha/2016-11/msg00745.html>, this
patch puts all that information in a single header,
bits/long-double.h.  It is included from sys/cdefs.h alongside the
include of bits/wordsize.h, so other headers generally do not need to
include bits/long-double.h directly.

Previously, various bits/mathdef.h headers and bits/wordsize.h headers
had this long double information (including implicitly in some
bits/mathdef.h headers through not having the defines present in the
default version).  After the patch, it's all in six bits/long-double.h
headers.  Furthermore, most of those new headers are not
architecture-specific.  Architectures with optional long double all
use the ldbl-opt sysdeps directory, either in the order (ldbl-64-128,
ldbl-opt, ldbl-128) or (ldbl-128ibm, ldbl-opt).  Thus a generic header
for the case where long double = double, and headers in ldbl-128,
ldbl-96 and ldbl-opt, suffices to cover every architecture except for
cases where long double properties vary between different ABIs sharing
a set of installed headers; fortunately all the ldbl-opt cases share a
single compiler-predefined macro __LONG_DOUBLE_128__ that can be used
to tell whether this compilation is -mlong-double-64 or
-mlong-double-128.

The two cases where a set of headers is shared between ABIs with
different long double properties, MIPS (o32 has long double = double,
other ABIs use ldbl-128) and SPARC (32-bit has optional long double,
64-bit has required long double), need their own bits/long-double.h
headers.

As with bits/wordsize.h, multiple-include protection for this header
is generally implicit through the include guards on sys/cdefs.h, and
multiple inclusion is harmless in any case.  There is one subtlety:
the header must not define __LONG_DOUBLE_MATH_OPTIONAL if
__NO_LONG_DOUBLE_MATH was defined before its inclusion, because doing
so breaks how sysdeps/ieee754/ldbl-opt/nldbl-compat.h defines
__NO_LONG_DOUBLE_MATH itself before including system headers.  Subject
to keeping that working, it would be reasonable to move these macros
from defined/undefined #ifdef to always-defined 1/0 #if semantics, but
this patch does not attempt to do so, just rearranges where the macros
are defined.

After this patch, the only use of bits/mathdef.h is the alpha one for
modifying complex function ABIs for old GCC.  Thus, all versions of
the header other than the default and alpha versions are removed, as
is the include from math.h.

Tested for x86_64 and x86.  Also did compilation-only testing with
build-many-glibcs.py.

	* bits/long-double.h: New file.
	* sysdeps/ieee754/ldbl-128/bits/long-double.h: Likewise.
	* sysdeps/ieee754/ldbl-96/bits/long-double.h: Likewise.
	* sysdeps/ieee754/ldbl-opt/bits/long-double.h: Likewise.
	* sysdeps/mips/bits/long-double.h: Likewise.
	* sysdeps/unix/sysv/linux/sparc/bits/long-double.h: Likewise.
	* math/Makefile (headers): Add bits/long-double.h.
	* misc/sys/cdefs.h: Include <bits/long-double.h>.
	* stdlib/strtold.c: Include <bits/long-double.h> instead of
	<bits/wordsize.h>.
	* bits/mathdef.h [!_COMPLEX_H]: Do not allow inclusion.
	[!__NO_LONG_DOUBLE_MATH]: Remove conditional code.
	* math/math.h: Do not include <bits/mathdef.h>.
	* sysdeps/aarch64/bits/mathdef.h: Remove file.
	* sysdeps/alpha/bits/mathdef.h [!_COMPLEX_H]: Do not allow
	inclusion.
	* sysdeps/ia64/bits/mathdef.h: Remove file.
	* sysdeps/m68k/m680x0/bits/mathdef.h: Likewise.
	* sysdeps/mips/bits/mathdef.h: Likewise.
	* sysdeps/powerpc/bits/mathdef.h: Likewise.
	* sysdeps/s390/bits/mathdef.h: Likewise.
	* sysdeps/sparc/bits/mathdef.h: Likewise.
	* sysdeps/x86/bits/mathdef.h: Likewise.
	* sysdeps/s390/s390-32/bits/wordsize.h
	[!__NO_LONG_DOUBLE_MATH && !__LONG_DOUBLE_MATH_OPTIONAL]: Remove
	conditional code.
	* sysdeps/s390/s390-64/bits/wordsize.h
	[!__NO_LONG_DOUBLE_MATH && !__LONG_DOUBLE_MATH_OPTIONAL]:
	Likewise.
	* sysdeps/unix/sysv/linux/alpha/bits/wordsize.h
	[!__NO_LONG_DOUBLE_MATH && !__LONG_DOUBLE_MATH_OPTIONAL]:
	Likewise.
	* sysdeps/unix/sysv/linux/powerpc/bits/wordsize.h
	[!__NO_LONG_DOUBLE_MATH && !__LONG_DOUBLE_MATH_OPTIONAL]:
	Likewise.
	* sysdeps/unix/sysv/linux/sparc/bits/wordsize.h
	[!__NO_LONG_DOUBLE_MATH && !__LONG_DOUBLE_MATH_OPTIONAL]:
	Likewise.
2016-12-14 18:27:56 +00:00
Joseph Myers b2491db6c8 Refactor FP_ILOGB* out of bits/mathdef.h.
Continuing the refactoring of bits/mathdef.h, this patch stops it
defining FP_ILOGB0 and FP_ILOGBNAN, moving the required information to
a new header bits/fp-logb.h.

There are only two possible values of each of those macros permitted
by ISO C.  TS 18661-1 adds corresponding macros for llogb, and their
values are required to correspond to those of the ilogb macros in the
obvious way.  Thus two boolean values - for which the same choices are
correct for most architectures - suffice to determine the value of all
these macros, and by defining macros for those boolean values in
bits/fp-logb.h we can then define the public FP_* macros in math.h and
avoid the present duplication of the associated feature test macro
logic.

This patch duly moves to bits/fp-logb.h defining __FP_LOGB0_IS_MIN and
__FP_LOGBNAN_IS_MIN.  Default definitions of those to 0 are correct
for both architectures, while ia64, m68k and x86 get their own
versions of bits/fp-logb.h to reflect their use of values different
from the defaults.

The patch renders many copies of bits/mathdef.h trivial (needed only
to avoid the default __NO_LONG_DOUBLE_MATH).  I'll revise
<https://sourceware.org/ml/libc-alpha/2016-11/msg00865.html>
accordingly so that it removes all bits/mathdef.h headers except the
default one and the alpha one, and arranges for the header to be
included only by complex.h as the only remaining use at that point
will be for the alpha ABI issues there.

Tested for x86_64 and x86.  Also did compile-only testing with
build-many-glibcs.py (using glibc sources from before the commit that
introduced many build failures with undefined __GI___sigsetjmp).

	* bits/fp-logb.h: New file.
	* sysdeps/ia64/bits/fp-logb.h: Likewise.
	* sysdeps/m68k/m680x0/bits/fp-logb.h: Likewise.
	* sysdeps/x86/bits/fp-logb.h: Likewise.
	* math/Makefile (headers): Add bits/fp-logb.h.
	* math/math.h: Include <bits/fp-logb.h>.
	[__USE_ISOC99] (FP_ILOGB0): Define based on __FP_LOGB0_IS_MIN.
	[__USE_ISOC99] (FP_ILOGBNAN): Define based on __FP_LOGBNAN_IS_MIN.
	* bits/mathdef.h (FP_ILOGB0): Remove.
	(FP_ILOGBNAN): Likewise.
	* sysdeps/aarch64/bits/mathdef.h (FP_ILOGB0): Likewise.
	(FP_ILOGBNAN): Likewise.
	* sysdeps/alpha/bits/mathdef.h (FP_ILOGB0): Likewise.
	(FP_ILOGBNAN): Likewise.
	* sysdeps/ia64/bits/mathdef.h (FP_ILOGB0): Likewise.
	(FP_ILOGBNAN): Likewise.
	* sysdeps/m68k/m680x0/bits/mathdef.h (FP_ILOGB0): Likewise.
	(FP_ILOGBNAN): Likewise.
	* sysdeps/mips/bits/mathdef.h (FP_ILOGB0): Likewise.
	(FP_ILOGBNAN): Likewise.
	* sysdeps/powerpc/bits/mathdef.h (FP_ILOGB0): Likewise.
	(FP_ILOGBNAN): Likewise.
	* sysdeps/s390/bits/mathdef.h (FP_ILOGB0): Likewise.
	(FP_ILOGBNAN): Likewise.
	* sysdeps/sparc/bits/mathdef.h (FP_ILOGB0): Likewise.
	(FP_ILOGBNAN): Likewise.
	* sysdeps/x86/bits/mathdef.h (FP_ILOGB0): Likewise.
	(FP_ILOGBNAN): Likewise.
2016-12-01 02:56:55 +00:00
Joseph Myers 93eb85ceb2 Refactor float_t, double_t information into bits/flt-eval-method.h.
At present, definitions of float_t and double_t are split among many
bits/mathdef.h headers.

For all but three architectures, these types are float and double.
Furthermore, if you assume __FLT_EVAL_METHOD__ to be defined, that
provides a more generic way of determining the correct values of these
typedefs.  Defining these typedefs more generally based on
__FLT_EVAL_METHOD__ was previously proposed by Paul Eggert in
<https://sourceware.org/ml/libc-alpha/2012-02/msg00002.html>.

This patch refactors things in the way I proposed in
<https://sourceware.org/ml/libc-alpha/2016-11/msg00745.html>.  A new
header bits/flt-eval-method.h defines a single macro,
__GLIBC_FLT_EVAL_METHOD, which is then used by math.h to define
float_t and double_t.  The default is based on __FLT_EVAL_METHOD__
(although actually a default to 0 would have the same effect for
current ports, because ports where values other than 0 or 16 are
possible all have their own headers).

To avoid changing the existing semantics in any case, including for
compilers not defining __FLT_EVAL_METHOD__, architecture-specific
files are then added for m68k, s390, x86 which replicate the existing
semantics.  At least with __FLT_EVAL_METHOD__ values possible with
GCC, there should be no change to the choices of float_t and double_t
for any supported configuration.

Architecture maintainer notes:

* m68k: sysdeps/m68k/m680x0/bits/flt-eval-method.h always defines
  __GLIBC_FLT_EVAL_METHOD to 2 to replicate the existing logic.  But
  actually GCC defines __FLT_EVAL_METHOD__ to 0 if TARGET_68040.  It
  might make sense to make the header prefer to base things on
  __FLT_EVAL_METHOD__ if defined, like the x86 version, and so make
  the choices of these types more accurate (with a NEWS entry as for
  the other changes to these types on particular architectures).

* s390: sysdeps/s390/bits/flt-eval-method.h always defines
  __GLIBC_FLT_EVAL_METHOD to 1 to replicate the existing logic.  As
  previously discussed, it might make sense in coordination with GCC
  to eliminate the historic mistake, avoid excess precision in the
  -fexcess-precision=standard case and make the typedefs match (with a
  NEWS entry, again).

Tested for x86-64 and x86.  Also did compilation-only testing with
build-many-glibcs.py.

	* bits/flt-eval-method.h: New file.
	* sysdeps/m68k/m680x0/bits/flt-eval-method.h: Likewise.
	* sysdeps/s390/bits/flt-eval-method.h: Likewise.
	* sysdeps/x86/bits/flt-eval-method.h: Likewise.
	* math/Makefile (headers): Add bits/flt-eval-method.h.
	* math/math.h: Include <bits/flt-eval-method.h>.
	[__USE_ISOC99] (float_t): Define based on __GLIBC_FLT_EVAL_METHOD.
	[__USE_ISOC99] (double_t): Likewise.
	* bits/mathdef.h (float_t): Remove.
	(double_t): Likewise.
	* sysdeps/aarch64/bits/mathdef.h (float_t): Likewise.
	(double_t): Likewise.
	* sysdeps/alpha/bits/mathdef.h (float_t): Likewise.
	(double_t): Likewise.
	* sysdeps/arm/bits/mathdef.h (float_t): Likewise.
	(double_t): Likewise.
	* sysdeps/hppa/fpu/bits/mathdef.h (float_t): Likewise.
	(double_t): Likewise.
	* sysdeps/ia64/bits/mathdef.h (float_t): Likewise.
	(double_t): Likewise.
	* sysdeps/m68k/m680x0/bits/mathdef.h (float_t): Likewise.
	(double_t): Likewise.
	* sysdeps/mips/bits/mathdef.h (float_t): Likewise.
	(double_t): Likewise.
	* sysdeps/powerpc/bits/mathdef.h (float_t): Likewise.
	(double_t): Likewise.
	* sysdeps/s390/bits/mathdef.h (float_t): Likewise.
	(double_t): Likewise.
	* sysdeps/sh/sh4/bits/mathdef.h (float_t): Likewise.
	(double_t): Likewise.
	* sysdeps/sparc/bits/mathdef.h (float_t): Likewise.
	(double_t): Likewise.
	* sysdeps/tile/bits/mathdef.h (float_t): Likewise.
	(double_t): Likewise.
	* sysdeps/x86/bits/mathdef.h (float_t): Likewise.
	(double_t): Likewise.
2016-11-24 18:44:50 +00:00
Joseph Myers ec94343f59 Add femode_t functions.
TS 18661-1 defines a type femode_t to represent the set of dynamic
floating-point control modes (such as the rounding mode and trap
enablement modes), and functions fegetmode and fesetmode to manipulate
those modes (without affecting other state such as the raised
exception flags) and a corresponding macro FE_DFL_MODE.

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

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

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

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

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

	* math/fegetmode.c: New file.
	* math/fesetmode.c: Likewise.
	* sysdeps/i386/fpu/fegetmode.c: Likewise.
	* sysdeps/i386/fpu/fesetmode.c: Likewise.
	* sysdeps/x86_64/fpu/fegetmode.c: Likewise.
	* sysdeps/x86_64/fpu/fesetmode.c: Likewise.
	* math/fenv.h: Update comment on inclusion of <bits/fenv.h>.
	[__GLIBC_USE (IEC_60559_BFP_EXT)] (fegetmode): New function
	declaration.
	[__GLIBC_USE (IEC_60559_BFP_EXT)] (fesetmode): Likewise.
	* bits/fenv.h [__GLIBC_USE (IEC_60559_BFP_EXT)] (femode_t): New
	typedef.
	[__GLIBC_USE (IEC_60559_BFP_EXT)] (FE_DFL_MODE): New macro.
	* sysdeps/aarch64/bits/fenv.h [__GLIBC_USE (IEC_60559_BFP_EXT)]
	(femode_t): New typedef.
	[__GLIBC_USE (IEC_60559_BFP_EXT)] (FE_DFL_MODE): New macro.
	* sysdeps/alpha/fpu/bits/fenv.h [__GLIBC_USE (IEC_60559_BFP_EXT)]
	(femode_t): New typedef.
	[__GLIBC_USE (IEC_60559_BFP_EXT)] (FE_DFL_MODE): New macro.
	* sysdeps/arm/bits/fenv.h [__GLIBC_USE (IEC_60559_BFP_EXT)]
	(femode_t): New typedef.
	[__GLIBC_USE (IEC_60559_BFP_EXT)] (FE_DFL_MODE): New macro.
	* sysdeps/hppa/fpu/bits/fenv.h [__GLIBC_USE (IEC_60559_BFP_EXT)]
	(femode_t): New typedef.
	[__GLIBC_USE (IEC_60559_BFP_EXT)] (FE_DFL_MODE): New macro.
	* sysdeps/ia64/bits/fenv.h [__GLIBC_USE (IEC_60559_BFP_EXT)]
	(femode_t): New typedef.
	[__GLIBC_USE (IEC_60559_BFP_EXT)] (FE_DFL_MODE): New macro.
	* sysdeps/m68k/fpu/bits/fenv.h [__GLIBC_USE (IEC_60559_BFP_EXT)]
	(femode_t): New typedef.
	[__GLIBC_USE (IEC_60559_BFP_EXT)] (FE_DFL_MODE): New macro.
	* sysdeps/microblaze/bits/fenv.h [__GLIBC_USE (IEC_60559_BFP_EXT)]
	(femode_t): New typedef.
	[__GLIBC_USE (IEC_60559_BFP_EXT)] (FE_DFL_MODE): New macro.
	* sysdeps/mips/bits/fenv.h [__GLIBC_USE (IEC_60559_BFP_EXT)]
	(femode_t): New typedef.
	[__GLIBC_USE (IEC_60559_BFP_EXT)] (FE_DFL_MODE): New macro.
	* sysdeps/nios2/bits/fenv.h [__GLIBC_USE (IEC_60559_BFP_EXT)]
	(femode_t): New typedef.
	[__GLIBC_USE (IEC_60559_BFP_EXT)] (FE_DFL_MODE): New macro.
	* sysdeps/powerpc/bits/fenv.h [__GLIBC_USE (IEC_60559_BFP_EXT)]
	(femode_t): New typedef.
	[__GLIBC_USE (IEC_60559_BFP_EXT)] (__fe_dfl_mode): New variable
	declaration.
	[__GLIBC_USE (IEC_60559_BFP_EXT)] (FE_DFL_MODE): New macro.
	* sysdeps/s390/fpu/bits/fenv.h [__GLIBC_USE (IEC_60559_BFP_EXT)]
	(femode_t): New typedef.
	[__GLIBC_USE (IEC_60559_BFP_EXT)] (FE_DFL_MODE): New macro.
	* sysdeps/sh/bits/fenv.h [__GLIBC_USE (IEC_60559_BFP_EXT)]
	(femode_t): New typedef.
	[__GLIBC_USE (IEC_60559_BFP_EXT)] (FE_DFL_MODE): New macro.
	* sysdeps/sparc/fpu/bits/fenv.h [__GLIBC_USE (IEC_60559_BFP_EXT)]
	(femode_t): New typedef.
	[__GLIBC_USE (IEC_60559_BFP_EXT)] (FE_DFL_MODE): New macro.
	* sysdeps/tile/bits/fenv.h [__GLIBC_USE (IEC_60559_BFP_EXT)]
	(femode_t): New typedef.
	[__GLIBC_USE (IEC_60559_BFP_EXT)] (FE_DFL_MODE): New macro.
	* sysdeps/x86/fpu/bits/fenv.h [__GLIBC_USE (IEC_60559_BFP_EXT)]
	(femode_t): New typedef.
	[__GLIBC_USE (IEC_60559_BFP_EXT)] (FE_DFL_MODE): New macro.
	* manual/arith.texi (FE_DFL_MODE): Document macro.
	(fegetmode): Document function.
	(fesetmode): Likewise.
	* math/Versions (fegetmode): New libm symbol at version
	GLIBC_2.25.
	(fesetmode): Likewise.
	* math/Makefile (libm-support): Add fegetmode and fesetmode.
	(tests): Add test-femode and test-femode-traps.
	* math/test-femode-traps.c: New file.
	* math/test-femode.c: Likewise.
	* sysdeps/powerpc/fpu/fenv_const.c (__fe_dfl_mode): Declare as
	alias for __fe_dfl_env.
	* sysdeps/powerpc/nofpu/fenv_const.c (__fe_dfl_mode): Likewise.
	* sysdeps/powerpc/powerpc32/e500/nofpu/fenv_const.c
	(__fe_dfl_mode): Likewise.
	* sysdeps/powerpc/Versions (__fe_dfl_mode): New libm symbol at
	version GLIBC_2.25.
	* sysdeps/nacl/libm.abilist: Update.
	* sysdeps/unix/sysv/linux/aarch64/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/alpha/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/arm/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/hppa/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/i386/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/ia64/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/microblaze/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/mips/mips32/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/mips/mips64/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/nios2/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist:
	Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist:
	Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/libm-le.abilist:
	Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/libm.abilist:
	Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/sh/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libm.abilist:
	Likewise.
	* sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libm.abilist:
	Likewise.
	* sysdeps/unix/sysv/linux/tile/tilepro/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/64/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist: Likewise.
2016-09-07 16:40:09 +00:00
Joseph Myers f7a9f785e5 Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00: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
Joseph Myers 522e02ab8a Rename bits/linkmap.h to linkmap.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/linkmap.h to plain linkmap.h to follow that
convention.

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

	[BZ #14912]
	* bits/linkmap.h: Move to ...
	* sysdeps/generic/linkmap.h: ...here.
	* sysdeps/aarch64/bits/linkmap.h: Move to ...
	* sysdeps/aarch64/linkmap.h: ...here.
	* sysdeps/arm/bits/linkmap.h: Move to ...
	* sysdeps/arm/linkmap.h: ...here.
	* sysdeps/hppa/bits/linkmap.h: Move to ...
	* sysdeps/hppa/linkmap.h: ...here.
	* sysdeps/ia64/bits/linkmap.h: Move to ...
	* sysdeps/ia64/linkmap.h: ...here.
	* sysdeps/mips/bits/linkmap.h: Move to ...
	* sysdeps/mips/linkmap.h: ...here.
	* sysdeps/s390/bits/linkmap.h: Move to ...
	* sysdeps/s390/linkmap.h: ...here.
	* sysdeps/sh/bits/linkmap.h: Move to ...
	* sysdeps/sh/linkmap.h: ...here.
	* sysdeps/x86/bits/linkmap.h: Move to ...
	* sysdeps/x86/linkmap.h: ...here.
	* include/link.h: Include <linkmap.h> instead of <bits/linkmap.h>.
2015-09-04 19:44:27 +00:00
Mike Frysinger cf31a2c799 ia64: atomic.h: fix atomic_exchange_and_add 64bit handling
Way back in 2005 the atomic_exchange_and_add function was cleaned up to
avoid the explicit size checking and instead let gcc handle things itself.
Unfortunately that change ended up leaving beyond a cast to int, even when
the incoming value was a long.  This has flown under the radar for a long
time due to the function not being heavily used in the tree (especially as
a full 64bit field), but a recent change to semaphores made some nptl tests
fail reliably.  This is due to the code packing two 32bit values into one
64bit variable (where the high 32bits contained the number of waiters), and
then the whole variable being atomically updated between threads.  On ia64,
that meant we never atomically updated the count, so sometimes the sem_post
would not wake up the waiters.
2015-07-28 02:30:15 -04:00
Joseph Myers b168057aaa Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
Torvald Riegel 1ea339b697 Add arch-specific configuration for C11 atomics support.
This sets __HAVE_64B_ATOMICS if provided.  It also sets
USE_ATOMIC_COMPILER_BUILTINS to true if the existing atomic ops use the
__atomic* builtins (aarch64, mips partially) or if this has been
tested (x86_64); otherwise, this is set to false so that C11 atomics will
be based on the existing atomic operations.
2014-11-20 11:57:38 +01:00
Mike Frysinger c70a4b1db0 ia64: relocate out of ports/ subdir 2014-02-16 01:12:38 -05:00
Ulrich Drepper d75a0a62b1 Remove IA-64 support 2012-01-07 11:19:05 -05:00
Ulrich Drepper 67371b5666 Prevent warnings due to long long constants 2011-12-23 13:52:59 -05:00
Jakub Jelinek d82a27f841 * stdlib/monetary.h: Uglify function parameter names.
* sunrpc/rpc/pmap_clnt.h: Likewise. 
* sunrpc/rpc/svc.h: Likewise. 
* sunrpc/rpc/xdr.h: Likewise. 
* sunrpc/rpc/clnt.h: Likewise. 
* resolv/netdb.h: Likewise. 
* resolv/arpa/nameser.h: Likewise. 
* resolv/resolv.h: Likewise. 
* argp/argp.h: Likewise. 
* locale/langinfo.h: Likewise. 
* io/sys/stat.h: Likewise. 
* posix/spawn.h: Likewise. 
* nis/rpcsvc/nislib.h: Likewise. 
* malloc/obstack.h: Likewise. 
* sysdeps/ia64/bits/link.h: Likewise. 
* sysdeps/i386/bits/link.h: Likewise. 
* sysdeps/s390/bits/link.h: Likewise. 
* sysdeps/powerpc/bits/link.h: Likewise. 
* sysdeps/x86_64/bits/link.h: Likewise. 
* sysdeps/sparc/bits/link.h: Likewise. 
* sysdeps/sh/bits/link.h: Likewise. 
* sysdeps/unix/sysv/linux/i386/sys/io.h: Likewise. 
* sysdeps/unix/sysv/linux/x86_64/sys/io.h: Likewise. 
* sysdeps/unix/sysv/linux/sparc/sys/eventfd.h: Likewise. 
* sysdeps/unix/sysv/linux/sys/eventfd.h: Likewise.
2009-02-16  Jakub Jelinek  <jakub@redhat.com>

	* stdlib/monetary.h: Uglify function parameter names.
	* sunrpc/rpc/pmap_clnt.h: Likewise.
	* sunrpc/rpc/svc.h: Likewise.
	* sunrpc/rpc/xdr.h: Likewise.
	* sunrpc/rpc/clnt.h: Likewise.
	* resolv/netdb.h: Likewise.
	* resolv/arpa/nameser.h: Likewise.
	* resolv/resolv.h: Likewise.
	* argp/argp.h: Likewise.
	* locale/langinfo.h: Likewise.
	* io/sys/stat.h: Likewise.
	* posix/spawn.h: Likewise.
	* nis/rpcsvc/nislib.h: Likewise.
	* malloc/obstack.h: Likewise.
	* sysdeps/ia64/bits/link.h: Likewise.
	* sysdeps/i386/bits/link.h: Likewise.
	* sysdeps/s390/bits/link.h: Likewise.
	* sysdeps/powerpc/bits/link.h: Likewise.
	* sysdeps/x86_64/bits/link.h: Likewise.
	* sysdeps/sparc/bits/link.h: Likewise.
	* sysdeps/sh/bits/link.h: Likewise.
	* sysdeps/unix/sysv/linux/i386/sys/io.h: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/sys/io.h: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sys/eventfd.h: Likewise.
	* sysdeps/unix/sysv/linux/sys/eventfd.h: Likewise.
2009-02-16 21:00:15 +00:00
Ulrich Drepper 2f9a1be867 [BZ #6442]
* string/endian.h: Add macros for fixed-size endian conversion.
	* bits/byteswap.h: Allow inclusion from <endian.h>.
	* sysdeps/i386/bits/byteswap.h: Likewise.
	* sysdeps/ia64/bits/byteswap.h: Likewise.
	* sysdeps/s390/bits/byteswap.h: Likewise.
	* sysdeps/x86_64/bits/byteswap.h: Likewise.
	* string/Makefile (tests): Add tst-endian.
	* string/tst-endian.c: New file.
2008-05-15 02:54:33 +00:00
Roland McGrath fea3f995bd * math/divtc3.c: New file.
* math/multc3.c: New file.
	* sysdeps/unix/sysv/linux/sparc/sparc32/Makefile
	[$(subdir) = math] (libm-routines): Add multc3, divtc3.

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

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

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

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

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

2006-01-31  Jakub Jelinek  <jakub@redhat.com>
2006-02-01 03:02:06 +00:00
Ulrich Drepper 363dd97627 [BZ #955]
2005-05-19  Richard Henderson  <rth@redhat.com>
	* sysdeps/unix/clock_gettime.c (clock_gettime): Fix typo around
	CLOCK_REALTIME.

	* sysdeps/ia64/bits/atomic.h (__arch_compare_and_exchange_bool_32_acq,
	__arch_compare_and_exchange_bool_64_acq,
	__arch_compare_and_exchange_val_32_acq,
	__arch_compare_and_exchange_val_64_acq, atomic_exchange_and_add):
	Use __sync builtin without _si or _di suffix.

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

	[BZ #955]
	* iconvdata/ibm939.c (BODY): Avoid segfaults with input characters
	<UFFFF> and above.

2005-05-17  Andreas Schwab  <schwab@suse.de>

	* sysdeps/unix/sysv/linux/clock_getcpuclockid.c
	(clock_getcpuclockid): Always return a defined value.
2005-05-21 18:40:10 +00:00
Ulrich Drepper 2af4049472 Update.
2005-01-28  H.J. Lu  <hongjiu.lu@intel.com>

	* elf/tst-auditmod1.c: Add ia64 entries.
	* sysdeps/generic/ldsodefs.h (La_ia64_regs): New.
	(La_ia64_retval): New.
	(audit_ifaces): Add ia64 entries.
	* sysdeps/ia64/bits/link.h: New file.
	* sysdeps/ia64/dl-machine.h (elf_machine_runtime_setup): Test
	for dl_profile non-null.
	(ARCH_LA_PLTENTER): New.
	(ARCH_LA_PLTEXIT): New.
	* sysdeps/ia64/dl-trampoline.S (_dl_runtime_resolve): Allocate
	only 2 output registers. Allocate stack to save/restore
	8 incoming fp registers. Call _dl_fixup instead of fixup.
	(_dl_runtime_profile): Rewrite.
2005-01-29 04:14:35 +00:00
Ulrich Drepper 9dcafc5597 * csu/elf-init.c (__libc_csu_fini): Don't do anything here.
* sysdeps/generic/libc-start.c: Don't register program destructor here.
	* dlfcn/Makefile: Add rules to build dlfcn.c.
	(LDFLAGS-dl.so): Removed.
	* dlfcn/dlclose.c: _dl_close is now in ld.so, use function pointer
	table.
	* dlfcn/dlmopen.c: Likewise for _dl_open.
	* dlfcn/dlopen.c: Likewise.
	* dlfcn/dlopenold.c: Likewise.
	* elf/dl-libc.c: Likewise for _dl_open and _dl_close.
	* elf/Makefile (routines): Remove dl-open and dl-close.
	(dl-routines): Add dl-open, dl-close, and dl-trampoline.
	Add rules to build and run tst-audit1.
	* elf/tst-audit1.c: New file.
	* elf/tst-auditmod1.c: New file.
	* elf/Versions [libc]: Remove _dl_open and _dl_close.
	* elf/dl-close.c: Change for use inside ld.so instead of libc.so.
	* elf/dl-open.c: Likewise.
	* elf/dl-debug.c (_dl_debug_initialize): Allow reinitialization,
	signaled by nonzero parameter.
	* elf/dl-init.c: Fix use of r_state.
	* elf/dl-load.c: Likewise.

	* elf/dl-close.c: Add auditing checkpoints.
	* elf/dl-open.c: Likewise.
	* elf/dl-fini.c: Likewise.
	* elf/dl-load.c: Likewise.
	* elf/dl-sym.c: Likewise.
	* sysdeps/generic/libc-start.c: Likewise.
	* elf/dl-object.c: Allocate memory for auditing information.
	* elf/dl-reloc.c: Remove RESOLV.  We now always need the map.
	Correctly initialize slotinfo.
	* elf/dynamic-link.h: Adjust after removal of RESOLV.
	* sysdeps/hppa/dl-lookupcfg.h: Likewise.
	* sysdeps/ia64/dl-lookupcfg.h: Likewise.
	* sysdeps/powerpc/powerpc64/dl-lookupcfg.h: Removed.
	* elf/dl-runtime.c (_dl_fixup): Little cleanup.
	(_dl_profile_fixup): New parameters to point to register struct and
	variable for frame size.
	Add auditing checkpoints.
	(_dl_call_pltexit): New function.
	Don't define trampoline code here.
	* elf/rtld.c: Recognize LD_AUDIT.  Load modules on startup.
	Remove all the functions from _rtld_global_ro which only _dl_open
	and _dl_close needed.
	Add auditing checkpoints.
	* elf/link.h: Define symbols for auditing interfaces.
	* include/link.h: Likewise.
	* include/dlfcn.h: Define __RTLD_AUDIT.
	Remove prototypes for _dl_open and _dl_close.
	Adjust access to argc and argv in libdl.
	* dlfcn/dlfcn.c: New file.
	* sysdeps/generic/dl-lookupcfg.h: Remove all content now that RESOLVE
	is gone.
	* sysdeps/generic/ldsodefs.h: Add definitions for auditing interfaces.
	* sysdeps/generic/unsecvars.h: Add LD_AUDIT.
	* sysdeps/i386/dl-machine.h: Remove trampoline code here.
	Adjust for removal of RESOLVE.
	* sysdeps/x86_64/dl-machine.h: Likewise.
	* sysdeps/generic/dl-trampoline.c: New file.
	* sysdeps/i386/dl-trampoline.c: New file.
	* sysdeps/x86_64/dl-trampoline.c: New file.

	* sysdeps/generic/dl-tls.c: Cleanups.  Fixup for dtv_t change.
	Fix updating of DTV.
	* sysdeps/generic/libc-tls.c: Likewise.

	* sysdeps/arm/bits/link.h: Renamed to ...
	* sysdeps/arm/buts/linkmap.h: ...this.
	* sysdeps/generic/bits/link.h: Renamed to...
	* sysdeps/generic/bits/linkmap.h: ...this.
	* sysdeps/hppa/bits/link.h: Renamed to...
	* sysdeps/hppa/bits/linkmap.h: ...this.
	* sysdeps/hppa/i386/link.h: Renamed to...
	* sysdeps/hppa/i386/linkmap.h: ...this.
	* sysdeps/hppa/ia64/link.h: Renamed to...
	* sysdeps/hppa/ia64/linkmap.h: ...this.
	* sysdeps/hppa/s390/link.h: Renamed to...
	* sysdeps/hppa/s390/linkmap.h: ...this.
	* sysdeps/hppa/sh/link.h: Renamed to...
	* sysdeps/hppa/sh/linkmap.h: ...this.
	* sysdeps/hppa/x86_64/link.h: Renamed to...
	* sysdeps/hppa/x86_64/linkmap.h: ...this.
2005-01-06  Ulrich Drepper  <drepper@redhat.com>

	* allocatestack.c (init_one_static_tls): Adjust initialization of DTV
	entry for static tls deallocation fix.
	* sysdeps/alpha/tls.h (dtv_t): Change pointer type to be struct which
	also contains information whether the memory pointed to is static
	TLS or not.
	* sysdeps/i386/tls.h: Likewise.
	* sysdeps/ia64/tls.h: Likewise.
	* sysdeps/powerpc/tls.h: Likewise.
	* sysdeps/s390/tls.h: Likewise.
	* sysdeps/sh/tls.h: Likewise.
	* sysdeps/sparc/tls.h: Likewise.
	* sysdeps/x86_64/tls.h: Likewise.
2005-01-06 22:40:27 +00:00
Ulrich Drepper a334319f65 (CFLAGS-tst-align.c): Add -mpreferred-stack-boundary=4. 2004-12-22 20:10:10 +00:00
Jakub Jelinek 0ecb606cb6 2.5-18.1 2007-07-12 18:26:36 +00:00
Ulrich Drepper f96b2e4e34 Update.
2004-04-16  Andreas Schwab  <schwab@suse.de>

	* sysdeps/ia64/bits/atomic.h: Cast first argument of
	__sync_bool_compare_and_swap_si correct to void*.
2004-07-18 16:29:30 +00:00
Richard Henderson a86573f471 * math/Makefile (headers): Add bits/huge_valf.h, bits/huge_vall.h, and bits/inf.h. * math/math.h: Include them.
* sysdeps/alpha/fpu/bits/mathdef.h, sysdeps/arm/fpu/bits/mathdef.h,
        sysdeps/generic/bits/mathdef.h, sysdeps/i386/fpu/bits/mathdef.h,
        sysdeps/ia64/fpu/bits/mathdef.h, sysdeps/m68k/fpu/bits/mathdef.h,
        sysdeps/mips/fpu/bits/mathdef.h, sysdeps/powerpc/fpu/bits/mathdef.h,
        sysdeps/sh/sh4/fpu/bits/mathdef.h, sysdeps/sparc/fpu/bits/mathdef.h,
        sysdeps/x86_64/fpu/bits/mathdef.h: Remove INFINITY.

        * sysdeps/arm/bits/huge_val.h (HUGE_VAL): Use __builtin_huge_val.
        (HUGE_VALF, HUGE_VALL): Remove.
        * sysdeps/ieee754/bits/huge_val.h: Likewise.
        * sysdeps/sh/bits/huge_val.h: Likewise.

        * sysdeps/generic/bits/huge_val.h (HUGE_VAL): Use __builtin_huge_val.
        * sysdeps/generic/bits/huge_valf.h: New file.
        * sysdeps/generic/bits/huge_vall.h: New file.
        * sysdeps/generic/bits/inf.h: New file.
        * sysdeps/ieee754/bits/huge_valf.h: New file.
        * sysdeps/ieee754/bits/inf.h: New file.
        * sysdeps/i386/bits/huge_val.h: Remove file.
        * sysdeps/i386/bits/huge_vall.h: New file.
        * sysdeps/ia64/bits/huge_val.h: Remove file.
        * sysdeps/ia64/bits/huge_vall.h: New file.
        * sysdeps/ieee754/ldbl-128/bits/huge_vall.h: New file.
        * sysdeps/m68k/bits/huge_val.h: Remove file.
        * sysdeps/m68k/bits/huge_vall.h: New file.
        * sysdeps/s390/bits/huge_val.h: Remove file.
        * sysdeps/sh/sh4/fpu/bits/huge_val.h: Remove file.
        * sysdeps/sparc/bits/huge_vall.h: New file.
        * sysdeps/sparc/sparc32/fpu/bits/huge_val.h: Remove file.
        * sysdeps/sparc/sparc64/fpu/bits/huge_val.h: Remove file.

        * sysdeps/ieee754/bits/nan.h (NAN): Use __builtin_nanf.
        * sysdeps/mips/bits/nan.h (NAN): Likewise.
2004-03-15  Richard Henderson  <rth@redhat.com>

	* math/Makefile (headers): Add bits/huge_valf.h, bits/huge_vall.h,
	and bits/inf.h.
	* math/math.h: Include them.

	* sysdeps/alpha/fpu/bits/mathdef.h, sysdeps/arm/fpu/bits/mathdef.h,
	sysdeps/generic/bits/mathdef.h, sysdeps/i386/fpu/bits/mathdef.h,
	sysdeps/ia64/fpu/bits/mathdef.h, sysdeps/m68k/fpu/bits/mathdef.h,
	sysdeps/mips/fpu/bits/mathdef.h, sysdeps/powerpc/fpu/bits/mathdef.h,
	sysdeps/sh/sh4/fpu/bits/mathdef.h, sysdeps/sparc/fpu/bits/mathdef.h,
	sysdeps/x86_64/fpu/bits/mathdef.h: Remove INFINITY.

	* sysdeps/arm/bits/huge_val.h (HUGE_VAL): Use __builtin_huge_val.
	(HUGE_VALF, HUGE_VALL): Remove.
	* sysdeps/ieee754/bits/huge_val.h: Likewise.
	* sysdeps/sh/bits/huge_val.h: Likewise.

	* sysdeps/generic/bits/huge_val.h (HUGE_VAL): Use __builtin_huge_val.
	* sysdeps/generic/bits/huge_valf.h: New file.
	* sysdeps/generic/bits/huge_vall.h: New file.
	* sysdeps/generic/bits/inf.h: New file.
	* sysdeps/ieee754/bits/huge_valf.h: New file.
	* sysdeps/ieee754/bits/inf.h: New file.
	* sysdeps/i386/bits/huge_val.h: Remove file.
	* sysdeps/i386/bits/huge_vall.h: New file.
	* sysdeps/ia64/bits/huge_val.h: Remove file.
	* sysdeps/ia64/bits/huge_vall.h: New file.
	* sysdeps/ieee754/ldbl-128/bits/huge_vall.h: New file.
	* sysdeps/m68k/bits/huge_val.h: Remove file.
	* sysdeps/m68k/bits/huge_vall.h: New file.
	* sysdeps/s390/bits/huge_val.h: Remove file.
	* sysdeps/sh/sh4/fpu/bits/huge_val.h: Remove file.
	* sysdeps/sparc/bits/huge_vall.h: New file.
	* sysdeps/sparc/sparc32/fpu/bits/huge_val.h: Remove file.
	* sysdeps/sparc/sparc64/fpu/bits/huge_val.h: Remove file.

	* sysdeps/ieee754/bits/nan.h (NAN): Use __builtin_nanf.
	* sysdeps/mips/bits/nan.h (NAN): Likewise.
2004-03-15 21:44:11 +00:00
Ulrich Drepper b5d5b67be3 Update.
2003-05-04  H.J. Lu  <hongjiu.lu@intel.com>

	* malloc/arena.c (arena_get2): Add atomic_write_barrier.
	* malloc/thread-m.h: Include <atomic.h>.
	(atomic_full_barrier): Provide default.
	(atomic_read_barrier): Likewise.
	(atomic_write_barrier): Likewise.
	* sysdeps/ia64/bits/atomic.h (atomic_full_barrier): New #define.
2003-07-01 08:31:38 +00:00
Ulrich Drepper 949ec76407 Update.
* posix/sched.h: Change prototypes of sched_getaffinity and
	sched_setaffinity.  Define CPU_SET, CPU_CLR, CPU_ISSET, and CPU_ZERO.
	* sysdeps/generic/sched_getaffinity.c: Adjust definition.
	* sysdeps/generic/sched_setaffinity.c: Likewise.
	* sysdeps/generic/bits/sched.h: Define __CPU_SETSIZE, __NCPUBITS,
	__CPUELT, __CPUMASK, cpu_set_t, __cpu_mask, __CPU_ZERO, __CPU_SET,
	__CPU_CLR, and __CPU_ISSET.
	* sysdeps/unix/sysv/linux/bits/sched.h: Likewise.
	* sysdeps/unix/sysv/linux/sched_getaffinity.c: New file.
	* sysdeps/unix/sysv/linux/sched_setaffinity.c: New file.

	* include/atomic.h (atomic_exchange_acq): Renamed from atomic_exchange.
	(atomic_exchange_rel): New #define.
	* sysdeps/ia64/bits/atomic.h: Likewise.
	* sysdeps/i386/i486/bits/atomic.h (atomic_exchange_acq): Renamed from
	atomic_exchange.
	* sysdeps/m68k/m68020/bits/atomic.h: Likewise.
	* sysdeps/powerpc/bits/atomic.h: Likewise.
	* sysdeps/sparc/sparc32/sparcv9/bits/atomic.h: Likewise.
	* sysdeps/sparc/sparc64/bits/atomic.h: Likewise.
	* sysdeps/x86_64/bits/atomic.h: Likewise.
	* csu/tst-atomic.c: Use atomic_exchange_acq instead of atomic_exchange.
2003-05-10 05:36:37 +00:00
Ulrich Drepper 4661a15343 Update.
2003-05-05  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/ia64/bits/atomic.h (__arch_compare_and_exchange_val_8_acq,
	__arch_compare_and_exchange_val_16_acq): Cast 0 to mem's type.
	* sysdeps/powerpc/powerpc32/bits/atomic.h
	(__arch_compare_and_exchange_val_64_acq): Likewise.
	* sysdeps/sparc/sparc32/sparcv9/bits/atomic.h
	(__arch_compare_and_exchange_val_8_acq,
	__arch_compare_and_exchange_val_16_acq,
	__arch_compare_and_exchange_val_64_acq): Likewise.
	* sysdeps/sparc/sparc64/bits/atomic.h
	(__arch_compare_and_exchange_val_8_acq,
	__arch_compare_and_exchange_val_16_acq): Likewise.
	* sysdeps/s390/bits/atomic.h (__arch_compare_and_exchange_val_8_acq,
	__arch_compare_and_exchange_val_16_acq,
	__arch_compare_and_exchange_val_64_acq): Likewise.
	* sysdeps/unix/sysv/linux/sh/bits/atomic.h
	(__arch_compare_and_exchange_val_64_acq): Likewise.
	* sysdeps/s390/s390-64/backtrace.c (__backtrace): Add cast to shut
	up warning.
	* sysdeps/s390/fpu/fegetenv.c (fegetenv): Likewise.

	* sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h
	(INLINE_SYSCALL, INTERNAL_SYSCALL_DIRECT, INTERNAL_SYSCALL_SVC0):
	Return long instead of int.
	(INTERNAL_SYSCALL_ERROR_P): Cast val to unsigned long, replace
	0xfffff001u with -4095UL.
2003-05-05 18:24:09 +00:00
Roland McGrath 859e708f0e * csu/tst-atomic.c (do_test): Add some new
atomic_compare_and_exchange_val_acq, atomic_add_zero,
	atomic_compare_and_exchange_bool_acq and atomic_add_negative tests.
	* include/atomic.h (atomic_add_negative, atomic_add_zero):
	Prefix local variable so that it doesn't clash with the one
	in atomic_exchange_and_add.
	* sysdeps/ia64/bits/atomic.h (atomic_exchange): Fix for long/void *
	pointers.
	(atomic_exchange_and_add): Implement using __sync_fetch_and_add_?i.
	* sysdeps/powerpc/bits/atomic.h (atomic_exchange_and_add): Force
	value into register.
	* sysdeps/s390/bits/atomic.h (__arch_compare_and_exchange_val_64_acq):
	Cast newval to long.
	* sysdeps/x86_64/bits/atomic.h
	(__arch_compare_and_exchange_val_64_acq): Cast newval and oldval to
	long.
	(atomic_exchange): Cast newvalue to long if sizeof == 8.
	(atomic_exchange_and_add): Cast value to long if sizeof == 8.
	(atomic_add, atomic_add_negative, atomic_add_zero): Likewise.
	(atomic_bit_set): Shift 1L up in all cases to shut up warnings.
2003-03-26 04:02:03 +00:00
Roland McGrath d15851ec24 * include/atomic.h (atomic_increment_and_test): Invert sense of test.
Add comment.
	(atomic_decrement_and_test): Add comment.

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

	* include/atomic.h (atomic_compare_and_exchange_val_acq): Add comment.
	Don't define if __arch_compare_and_exchange_val_32_acq is not defined.
	(atomic_compare_and_exchange_bool_acq): Add comment.  Don't use
	__oldval variable in the macro, since it might be macro argument.
	(atomic_decrement_if_positive): Initialize __memp, remove setting
	of non-existent variable.
	(atomic_bit_test_set): Cast 1 to __typeof (*mem) before shifting.
	* sysdeps/ia64/bits/atomic.h (atomic_exchange_and_add): Implement
	using atomic_compare_and_exchange_val_acq.
	(atomic_decrement_if_positive, atomic_bit_test_set): Define.
	* sysdeps/s390/bits/atomic.h (__arch_compare_and_exchange_val_8_acq):
	Renamed from...
	(__arch_compare_and_exchange_bool_8_acq): ... this.
	(__arch_compare_and_exchange_val_16_acq): Renamed from...
	(__arch_compare_and_exchange_bool_16_acq): ... this.
	(__arch_compare_and_exchange_val_32_acq): Return old value.  Renamed
	from...
	(__arch_compare_and_exchange_bool_32_acq): ... this.
	(__arch_compare_and_exchange_val_64_acq): Return old value.  Renamed
	from...
	(__arch_compare_and_exchange_bool_64_acq): ... this.
	(__arch_compare_and_exchange_val_32_acq): Use __typeof for local
	variables types instead of assuming int.
	Change prefix of local variables to __arch.
	* sysdeps/generic/bits/atomic.h (arch_compare_and_exchange_acq):
	Remove.
	(atomic_compare_and_exchange_val_acq,
	atomic_compare_and_exchange_bool_acq): Define.

	* csu/tst-atomic.c: New test.
	* csu/tst-atomic-long.c: New test.
	* csu/Makefile (tests): Add tst-atomic and tst-atomic-long.

	* malloc/memusagestat.c (main): Kill warning if uint64_t is ulong.

	* sysdeps/s390/Versions: Add trailing newline.

	* sysdeps/unix/sysv/linux/sysconf.c (__sysconf): Kill warning
	if INTERNAL_SYSCALL_ERROR_P doesn't use its first argument.
2003-03-22 23:01:01 +00:00
Ulrich Drepper 5a3ab2fc18 Update.
2003-03-21  Ulrich Drepper  <drepper@redhat.com>

	* cancellation.c: Adjust for new form of compare&exchange macros.
	* cleanup_defer.c: Likewise.
	* init.c: Likewise.
	* libc-cancellation.c: Likewise.
	* old_pthread_cond_broadcast.c: Likewise.
	* old_pthread_cond_signal.c: Likewise.
	* old_pthread_cond_timedwait.c: Likewise.
	* old_pthread_cond_wait.c: Likewise.
	* pthread_cancel.c: Likewise.
	* pthread_create.c: Likewise.
	* pthread_detach.c: Likewise.
	* pthread_join.c: Likewise.
	* pthread_key_delete.c: Likewise.
	* pthread_setcancelstate.c: Likewise.
	* pthread_setcanceltype.c: Likewise.
	* pthread_timedjoin.c: Likewise.
	* pthread_tryjoin.c: Likewise.
	* sysdeps/pthread/createthread.c: Likewise.
2003-03-21 08:03:25 +00:00
Ulrich Drepper f79466a8e9 Update.
2003-03-20  Ulrich Drepper  <drepper@redhat.com>

	* include/atomic.h: Define atomic_exchange and
	atomic_decrement_if_positive if not already defined.  Add some
	__builtin_expect.
	* sysdeps/i386/i486/bits/atomic.h: Define atomic_exchange.
	* sysdeps/x86_64/bits/atomic.h: Likewise.
	* sysdeps/ia64/bits/atomic.h: Pretty printing.  Define atomic_exchange.
	* sysdeps/powerpc/bits/atomic.h: Pretty printing.  Define
	atomic_exchange, atomic_exchange_and_add, and
	atomic_decrement_if_positive
2003-03-20 10:18:24 +00:00
Ulrich Drepper 4009bf4044 Update.
2003-03-19  Ulrich Drepper  <drepper@redhat.com>

	* Makefile (distribute): Add include/atomic.h and bits/atomic.h.
	* include/atomic.h: New file.
	* sysdeps/i386/i486/bits/atomic.h: New file.
	* sysdeps/x86_64/bits/atomic.h: New file.
	* sysdeps/s390/bits/atomic.h: New file.
	* sysdeps/sh/bits/atomic.h: New file.
	* sysdeps/ia64/bits/atomic.h: New file.
	* sysdeps/powerpc/bits/atomic.h: New file.
	* sysdeps/generic/bits/atomic.h: New file.
	* sysdeps/i386/i486/atomicity.h: Removed.
	* sysdeps/x86_64/atomicity.h: Removed.
	* sysdeps/s390/s390-32/atomicity.h: Removed.
	* sysdeps/s390/s390-64/atomicity.h: Removed.
	* sysdeps/ia64/atomicity.h: Removed.
	* sysdeps/powerpc/powerpc32/atomicity.h: Removed.
	* sysdeps/powerpc/powerpc64/atomicity.h: Removed.
	* elf/dl-profile.c: Use atomic.h instead of atomicity.h.  Adjust
	use of macros from atomicity.h to new names and semantics.
	* gmon_mcount.c: Likewise.
	* malloc/set-freeres.c: Likewise.
	* nscd/cache.c: Likewise.
	* stdlib/cxa_finalize.c: Likewise.
	* sysdeps/unix/sysv/linux/getsysstats.c: Likewise.

	* sysdeps/mips/ieee754.h: New file, suitable to replace both
	* stdlib/strtod.c (INTERNAL): While eating trailing zeros handle
2003-03-20 07:19:17 +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
Roland McGrath b02c687fd3 2002-10-23 Roland McGrath <roland@redhat.com>
* streams/stropts.h: Include <bits/xtitypes.h>.
	* streams/Makefile (headers): Add bits/xtitypes.h here.
	* sysdeps/generic/bits/xtitypes.h: New file.
	* sysdeps/s390/bits/xtitypes.h: New file.
	* sysdeps/ia64/bits/xtitypes.h: New file.
	* sysdeps/x86_64/bits/xtitypes.h: New file.
2002-10-23 23:48:42 +00:00
Andreas Jaeger 5c26fecb6f Prevent double inclusion. 2002-01-08 10:19:35 +00:00
Ulrich Drepper 370f00c3a7 Update.
2001-06-07  David Mosberger  <davidm@hpl.hp.com>

	* sysdeps/ia64/dl-symaddr.c (_dl_symbol_address): Update call to
	__ia64_make_fptr() for new interface.
	(_dl_function_address): Remove.

	* sysdeps/ia64/dl-machine.h (IA64_BOOT_FPTR_TABLE_LEN): Rename
	from IA64_BOOT_FPTR_SIZE and reduce its value from 256 to 200.
	(struct ia64_fdesc): Rename from struct ia64_fptr and drop "next"
	pointer.  Rename member "func" to "ip".
	(struct ia64_fdesc_table): New type.
	(__ia64_make_fptr): Change prototype.
	(__ia64_init_bootstrap_fdesc_table): New function.
	(ELF_MACHINE_BEFORE_RTLD_RELOC): New macro.
	(__boot_ldso_fptr): Removed.
	(__fptr_next): Removed.
	(__fptr_root): Removed.
	(__fptr_count): Removed.
	(TRAMPOLINE_TEMPLATE): Fix typo in comment.  Don't use multi-line
	strings to avoid warning from gcc3.
	(RTLD_START): Don't use multi-line strings.
	(ELF_MACHINE_START_ADDRESS): Use DL_STATIC_FUNCTION_ADDRESS.
	(elf_machine_fixup_plt): Update the code entry point in the
	function descriptor through a "volatile" pointer to ensure proper
	write ordering.
	(elf_machine_rela): Simplify handling of FPTR relocs: always call
	__ia64_make_fptr().

	* sysdeps/ia64/dl-lookupcfg.h (DL_AUTO_FUNCTION_ADDRESS): New macro.
	(DL_STATIC_FUNCTION_ADDRESS): Likewise.
	(DL_DT_INIT_ADDRESS): Use DL_AUTO_FUNCTION_ADDRESS.
	(DL_DT_FINI_ADDRESS): Likewise.

	* sysdeps/ia64/dl-fptr.c: Rewrite for better scalability and to
	avoid deadlocks.

	* include/link.h: Add member machine specific "l_mach" member to
	link_map.

	* sysdeps/generic/bits/link.h: New file.
	* sysdeps/ia64/bits/link.h: Likewise.

	* elf/rtld.c (_dl_start): Fix typo in comment.
	(_dl_start_final): Copy new "l_mach" member from temporary to
	final bootstrap map.
2001-07-26 00:27:15 +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 667b057725 Update.
2001-03-07  David Mosberger  <davidm@hpl.hp.com>

	* sysdeps/ia64/bits/fenv.h (FE_NONIEEE_ENV): New macro.

2001-03-07  Jes Sorensen  <jes@linuxcare.com>

	* sysdeps/unix/sysv/linux/ia64/ioperm.c (_ioperm): Remove unused
	variables addr & len.

2001-02-22  Jes Sorensen  <jes@linuxcare.com>

	* sysdeps/ia64/fpu/feenablxcpt.c (feenableexcept): Remove
	punctuation in asm constraint.

2001-03-07  Mark Kettenis  <kettenis@gnu.org>

	* resolv/netdb.h [__USE_GNU]: Define __need_timespec and include
	<time.h> to get definition of `struct timespec'.

2001-03-08  Jakub Jelinek  <jakub@redhat.com>

	* elf/rtld.c (dl_main): If tracing, warn about undefined symbols if
	LD_WARN=1, not if LD_WARN is unset.

2001-03-07  Andreas Schwab  <schwab@suse.de>

	* elf/ldconfig.h: Moved to ...
	* sysdeps/generic/ldconfig.h: ... here.
	* sysdeps/unix/sysv/linux/i386/ldconfig.h: New file.
	* sysdeps/unix/sysv/linux/m68k/ldconfig.h: New file.
	* sysdeps/unix/sysv/linux/ia64/ldconfig.h: New file.
	* elf/readlib.c (interpreters, known_libs): Use
	SYSDEP_KNOWN_INTERPRETER_NAMES and SYSDEP_KNOWN_LIBRARY_NAMES
	instead of hard coding old names.
2001-03-10 16:40:59 +00:00
Ulrich Drepper 2b1ec034a2 Update.
2000-09-29  H.J. Lu  <hjl@gnu.org>

	* sysdeps/ia64/fpu/libm-test-ulps: Updated for long double.

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

	* sysdeps/ia64/bits/huge_val.h: New file.
2000-09-30 02:57:29 +00:00
Ulrich Drepper c0ac34e447 Update.
* mutex.c (__pthread_mutex_unlock): For PTHREAD_MUTEX_RECURSIVE_NP
	test for owner first.
	Patch by Kaz Kylheku <kaz@ashi.footprints.net>.
2000-09-28 23:11:33 +00:00
Ulrich Drepper 09bf6406b1 Update.
2000-09-26  Jakub Jelinek  <jakub@redhat.com>

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	(si_isr) [USE_GNU]: Likewise.
	(ILL_BREAK) [USE_GNU]: Likewise.
	(FPE_DECOVF) [USE_GNU]: Likewise.
	(FPE_DECDIV) [USE_GNU]: Likewise.
	(FPE_DECERR) [USE_GNU]: Likewise.
	(FPE_INVASC) [USE_GNU]: Likewise.
	(FPE_INVDEC) [USE_GNU]: Likewise.
	(TRAP_BRANCH) [USE_GNU]: Likewise.
	(TRAP_HWBKPT) [USE_GNU]: Likewise.
	* sysdeps/ieee754/flt-32/s_exp2f.c: Likewise.
2000-09-26 19:13:37 +00:00
Ulrich Drepper 417bafec1e Update.
* stdlib/Makefile (headers): Add bits/wchar.h.
	* sysdeps/unix/sysv/linux/i386/bits/wchar.h: New file.
	* sysdeps/generic/bits/wchar.h: New file.
	* sysdeps/generic/stdint.h: Include <bits/wchar.h>.  Use values in this
	file to define WCHAR_MIN and WCHAR_MAX.
	Change UINT*8_MAX and UIN*16_MAX value to type int.
	* wcsmbs/wchar.h: Include <bits/wchar.h>.  Use values in this
	file to define WCHAR_MIN and WCHAR_MAX.
	* sysdeps/alpha/fpu/bits/mathdef.h: Make FP_ILOGB0 and FP_ILOGBNAN
	int values.
	* sysdeps/arm/fpu/bits/mathdef.h: Likewise.
	* sysdeps/generic/bits/mathdef.h: Likewise.
	* sysdeps/i386/fpu/bits/mathdef.h: Likewise.
	* sysdeps/m68k/fpu/bits/mathdef.h: Likewise.
	* sysdeps/powerpc/fpu/bits/mathdef.h: Likewise.
	* sysdeps/sparc/fpu/bits/mathdef.h: Likewise.
	* locale/locale.h (struct lconv): Add __ prefix to the new members
	if not C99.
	* sysdeps/generic/inttypes.h: Remove unnecessary imaxabs and
	imaxdiv optimizations.
	* sysdeps/wordsize-32/lldiv.c: Add hack to make alias work.
	* sysdeps/wordsize-64/ldiv.c: Likewise.
	* sysdeps/alpha/fpu/bits/fenv.h: Change type of FE_*_ENV macros to
	const fenv_t*.
	* sysdeps/generic/bits/fenv.h: Likewise.
	* sysdeps/i386/fpu/bits/fenv.h: Likewise.
	* sysdeps/ia64/bits/fenv.h: Likewise.
	* sysdeps/m68k/fpu/bits/fenv.h: Likewise.
	* sysdeps/mips/bits/fenv.h: Likewise.
	* sysdeps/s390/fpu/bits/fenv.h: Likewise.
	* sysdeps/sparc/fpu/bits/fenv.h: Likewise.
	Reported by Joseph S. Myers <jsm28@cam.ac.uk>.

	* catgets/open_catalog.c: Likewise.
2000-09-01 06:39:10 +00:00
Ulrich Drepper be18eced55 Update.
Remove incompatible IPv6 extension of RPC.
	* sunrpc/Makefile: Undo changes.
	* sunrpc/rpc_main.c: Likewise.
	* sunrpc/rpc/clnt.h: Likewise.
	* sunrpc/rpc/svc.h: Likewise.
	* sunrpc/bindrsvprt6.c: Removed.
	* sunrpc/clnt_tcp6.c: Removed.
	* sunrpc/clnt_udp6.c: Removed.
	* sunrpc/svc_tcp6.c: Removed.
	* sunrpc/svc_udp6.c: Removed.

	* intl/libintl.h: Don't use __attribute_format_arg__ for gettext,
	dgettext, and dcgettetxt.

	* intl/locale.alias: Update japanese aliases.
2000-08-02 07:01:41 +00:00
Ulrich Drepper ca8d5a5f3d Update.
* sysdeps/ia64/bits/byteswap.h: New file.
	Patch by Dan Pop <Dan.Pop@cern.ch>.

	* misc/sys/cdefs.h: Define __attribute_format_arg__.
	* intl/libintl.h: Use it here instead of using __attribute__ directly.

2000-07-13  H.J. Lu  <hjl@gnu.org>

	* posix/regex.c (re_max_failures): Set to 4000.

2000-08-01  Ulrich Drepper  <drepper@redhat.com>
2000-08-02 01:19:29 +00:00
Ulrich Drepper f1d86a931b Update.
2000-05-05  Jes Sorensen  <jes@linuxcare.com>

	* sysdeps/unix/sysv/linux/ia64/sysdep.h: New file.
	* sysdeps/unix/sysv/linux/ia64/syscall.S: New file.

	* sysdeps/unix/sysv/linux/ia64/bits/types.h: New file.
	* sysdeps/unix/sysv/linux/ia64/bits/endian.h: New file.

	* sysdeps/ia64/Implies: New file.
	* sysdeps/ia64/Versions: New file.  Declare _dl_symbol_address.
	* sysdeps/ia64/Makefile: New file.
	* sysdeps/ia64/gmp-mparam.h: New file,

	* sysdeps/ia64/elf/start.S: New file.

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

2000-05-05  David Mosberger-Tang  <davidm@hpl.hp.com>

	* sysdeps/unix/sysv/linux/ia64/sysdep.S: New file.

2000-04-26  Jes Sorensen  <Jes.Sorensen@cern.ch>

	* sysdeps/unix/sysv/linux/ia64/bits/elfclass.h: New file.  The
	ia64 has 64 bit .hash entries just as the Alpha.

2000-04-25  Jes Sorensen  <Jes.Sorensen@cern.ch>

	* sysdeps/ia64/memprof.h: New file.  Provide GETSP() macro.

2000-04-17  Jes Sorensen  <Jes.Sorensen@cern.ch>

	* sysdeps/ia64/fpu/fclrexcpt.c: New file.
	* sysdeps/ia64/fpu/fedisblxcpt.c: New file.
	* sysdeps/ia64/fpu/feenablxcpt.c: New file.
	* sysdeps/ia64/fpu/fegetenv.c: New file.
	* sysdeps/ia64/fpu/fegetexcept.c: New file.
	* sysdeps/ia64/fpu/fegetround.c: New file.
	* sysdeps/ia64/fpu/feholdexcpt.c: New file.
	* sysdeps/ia64/fpu/fesetenv.c: New file.
	* sysdeps/ia64/fpu/fesetround.c: New file.
	* sysdeps/ia64/fpu/feupdateenv.c: New file.
	* sysdeps/ia64/fpu/fgetexcptflg.c: New file.
	* sysdeps/ia64/fpu/fraiseexcpt.c: New file.
	* sysdeps/ia64/fpu/fsetexcptflg.c: New file.
	* sysdeps/ia64/fpu/ftestexcept.c: New file.

	* sysdeps/unix/sysv/linux/i386/dl-procinfo.h (_DL_HWCAP_COUNT): New.
	* sysdeps/unix/sysv/linux/sparc/sparc32/dl-procinfo.h
	(_DL_HWCAP_COUNT): New.
	* sysdeps/unix/sysv/linux/sparc/sparc64/dl-procinfo.h
	(_DL_HWCAP_COUNT): New.
2000-05-05 16:49:44 +00:00