1998-09-03  Philip Blundell  <pb@nexus.co.uk> 
 
	* sysdeps/arm/bits/endian.h (__FLOAT_WORD_ORDER): Define to big 
	endian. 
	* math/math_private.h: Use __FLOAT_WORD_ORDER rather than 
	BYTE_ORDER. 
	* string/endian.h: If __FLOAT_WORD_ORDER wasn't defined by 
	<bits/endian.h>, make it the same as __BYTE_ORDER. 
 
1998-11-27  Ulrich Drepper  <drepper@cygnus.com>

	* math/math.h: Avoid using long double functions in generic macros
	if __NO_LONG_DOUBLE_MATH.

	* sysdeps/arm/dl-machine.h: Fix handling of weak undefined symbols
	during bootstrapping.
	* scripts/config.sub: Add Netwinder specific matches.
	Patch by Scott Bambrough <scottb@corelcomputer.com>.

1998-11-26  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de> 
 
	* Makeconfig ($(common-objpfx)sysd-dirs): Use automatic variables 
	if possible. 
	($(common-objpfx)sysd-sorted): Likewise. 
 
1998-11-27  Andreas Jaeger  <aj@arthur.rhein-neckar.de> 
 
	* sysdeps/libm-ieee754/e_log.c (__ieee754_log): Add declaration of  
	local variables t1,t2 only if needed. 
 
	* sysdeps/libm-ieee754/e_atan2.c: Added braces to avoid compiler
	warnings.
	* sysdeps/libm-ieee754/s_truncf.c (__truncf): Likewise. 
	* sysdeps/libm-ieee754/s_trunc.c (__trunc): Likewise. 
 
	* sysdeps/mips/mul_1.S (Loop): Add closing comment to avoid 
	warning. 
 
1998-11-27  Andreas Jaeger  <aj@arthur.rhein-neckar.de> 
 
	* math/math.h: Add brace to correct #if expression.
This commit is contained in:
Ulrich Drepper 1998-11-27 11:34:40 +00:00
parent 80fbf0d167
commit 48252123bc
13 changed files with 112 additions and 23 deletions

View File

@ -1,3 +1,45 @@
1998-09-03 Philip Blundell <pb@nexus.co.uk>
* sysdeps/arm/bits/endian.h (__FLOAT_WORD_ORDER): Define to big
endian.
* math/math_private.h: Use __FLOAT_WORD_ORDER rather than
BYTE_ORDER.
* string/endian.h: If __FLOAT_WORD_ORDER wasn't defined by
<bits/endian.h>, make it the same as __BYTE_ORDER.
1998-11-27 Ulrich Drepper <drepper@cygnus.com>
* math/math.h: Avoid using long double functions in generic macros
if __NO_LONG_DOUBLE_MATH.
* sysdeps/arm/dl-machine.h: Fix handling of weak undefined symbols
during bootstrapping.
* scripts/config.sub: Add Netwinder specific matches.
Patch by Scott Bambrough <scottb@corelcomputer.com>.
1998-11-26 Andreas Schwab <schwab@issan.cs.uni-dortmund.de>
* Makeconfig ($(common-objpfx)sysd-dirs): Use automatic variables
if possible.
($(common-objpfx)sysd-sorted): Likewise.
1998-11-27 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* sysdeps/libm-ieee754/e_log.c (__ieee754_log): Add declaration of
local variables t1,t2 only if needed.
* sysdeps/libm-ieee754/e_atan2.c: Added braces to avoid compiler
warnings.
* sysdeps/libm-ieee754/s_truncf.c (__truncf): Likewise.
* sysdeps/libm-ieee754/s_trunc.c (__trunc): Likewise.
* sysdeps/mips/mul_1.S (Loop): Add closing comment to avoid
warning.
1998-11-27 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* math/math.h: Add brace to correct #if expression.
1998-11-26 Philip Blundell <philb@gnu.org>
Undo change of 1998-11-12:

View File

@ -779,23 +779,22 @@ $(common-objpfx)sysd-dirs: $(common-objpfx)config.make $(all-Subdirs-files)
END { printf "sysdep-subdirs =%s\n", subdirs; \
printf "sysdep-inhibit-subdirs =%s\n", inhibit; \
print "sysd-dirs-done = t" }' \
/dev/null $(all-Subdirs-files) > $@-tmp
$(patsubst $<,/dev/null,$^) > $@-tmp
mv -f $@-tmp $@
all-Depend-files = $(wildcard $(..)*/Depend)
$(common-objpfx)sysd-sorted: $(..)scripts/gen-sorted.awk $(all-Depend-files) \
$(common-objpfx)sysd-dirs $(..)Makeconfig
(files="$(all-Depend-files)"; \
for f in $$files; do \
dir=`echo $$f | sed 's@^$(..)\(.*\)/[^/]*$$@\1@'`; \
(dirs='$(patsubst $(..)%/Depend,%,$(filter %/Depend, $^))'; \
for d in $$dirs; do \
while read on; do \
echo "depend $$dir $$on"; \
done < $$f; \
echo "depend $$d $$on"; \
done < $$d/Depend; \
done; \
for f in $(all-subdirs); do \
echo $$f; \
done \
) | $(AWK) -f $(..)scripts/gen-sorted.awk > $@-tmp
) | $(AWK) -f $< > $@-tmp
mv -f $@-tmp $@
endif # Makeconfig not yet included

View File

@ -83,7 +83,7 @@ __BEGIN_DECLS
# undef _Mdouble_
# undef __MATH_PRECNAME
# if __STDC__ - 0 || __GNUC__ - 0 && !defined __NO_LONG_DOUBLE_MATH
# if (__STDC__ - 0 || __GNUC__ - 0) && !defined __NO_LONG_DOUBLE_MATH
/* Include the file of declarations again, this time using `long double'
instead of `double' and appending l to each function name. */
@ -166,43 +166,68 @@ enum
};
/* Return number of classification appropriate for X. */
#ifdef __NO_LONG_DOUBLE_MATH
# define fpclassify(x) \
(sizeof (x) == sizeof (float) ? __fpclassifyf (x) : __fpclassify (x))
#else
# define fpclassify(x) \
(sizeof (x) == sizeof (float) ? \
__fpclassifyf (x) \
: sizeof (x) == sizeof (double) ? \
__fpclassify (x) : __fpclassifyl (x))
#endif
/* Return nonzero value if sign of X is negative. */
#ifdef __NO_LONG_DOUBLE_MATH
# define signbit(x) \
(sizeof (x) == sizeof (float) ? __signbitf (x) : __signbit (x))
#else
# define signbit(x) \
(sizeof (x) == sizeof (float) ? \
__signbitf (x) \
: sizeof (x) == sizeof (double) ? \
__signbit (x) : __signbitl (x))
#endif
/* Return nonzero value if X is not +-Inf or NaN. */
#ifdef __NO_LONG_DOUBLE_MATH
# define isfinite(x) \
(sizeof (x) == sizeof (float) ? __finitef (x) : __finite (x))
#else
# define isfinite(x) \
(sizeof (x) == sizeof (float) ? \
__finitef (x) \
: sizeof (x) == sizeof (double) ? \
__finite (x) : __finitel (x))
#endif
/* Return nonzero value if X is neither zero, subnormal, Inf, nor NaN. */
# define isnormal(x) (fpclassify (x) == FP_NORMAL)
/* Return nonzero value if X is a NaN. We could use `fpclassify' but
we already have this functions `__isnan' and it is faster. */
#ifdef __NO_LONG_DOUBLE_MATH
# define isnan(x) \
(sizeof (x) == sizeof (float) ? __isnanf (x) : __isnan (x))
#else
# define isnan(x) \
(sizeof (x) == sizeof (float) ? \
__isnanf (x) \
: sizeof (x) == sizeof (double) ? \
__isnan (x) : __isnanl (x))
#endif
/* Return nonzero value is X is positive or negative infinity. */
#ifdef __NO_LONG_DOUBLE_MATH
# define isinf(x) \
(sizeof (x) == sizeof (float) ? __isinff (x) : __isinf (x))
#else
# define isinf(x) \
(sizeof (x) == sizeof (float) ? \
__isinff (x) \
: sizeof (x) == sizeof (double) ? \
__isinf (x) : __isinfl (x))
#endif
#endif /* Use ISO C 9X. */

View File

@ -34,7 +34,7 @@
/* A union which permits us to convert between a double and two 32 bit
ints. */
#if BYTE_ORDER == BIG_ENDIAN
#if __FLOAT_WORD_ORDER == BIG_ENDIAN
typedef union
{
@ -48,7 +48,7 @@ typedef union
#endif
#if BYTE_ORDER == LITTLE_ENDIAN
#if __FLOAT_WORD_ORDER == LITTLE_ENDIAN
typedef union
{
@ -150,7 +150,7 @@ do { \
/* A union which permits us to convert between a long double and
three 32 bit ints. */
#if BYTE_ORDER == BIG_ENDIAN
#if __FLOAT_WORD_ORDER == BIG_ENDIAN
typedef union
{
@ -166,7 +166,7 @@ typedef union
#endif
#if BYTE_ORDER == LITTLE_ENDIAN
#if __FLOAT_WORD_ORDER == LITTLE_ENDIAN
typedef union
{

9
scripts/config.sub vendored
View File

@ -182,7 +182,7 @@ case $basic_machine in
| sparc64-* | mips64-* | mipsel-* \
| mips64el-* | mips64orion-* | mips64orionel-* \
| mipstx39-* | mipstx39el-* \
| f301-*)
| f301-* | armv*-*)
;;
# Recognize the various machine names and aliases which stand
# for a CPU type and a company and sometimes even an OS.
@ -412,6 +412,10 @@ case $basic_machine in
basic_machine=i486-ncr
os=-sysv4
;;
netwinder)
basic_machine=armv4l-ccc
os=-linux
;;
news | news700 | news800 | news900)
basic_machine=m68k-sony
os=-newsos
@ -802,6 +806,9 @@ case $basic_machine in
*-acorn)
os=-riscix1.2
;;
arm*-ccc)
os=-linux
;;
arm*-semi)
os=-aout
;;

View File

@ -34,6 +34,12 @@
/* This file defines `__BYTE_ORDER' for the particular machine. */
#include <bits/endian.h>
/* Some machines may need to use a different endianness for floating point
values. */
#ifndef __FLOAT_WORD_ORDER
# define __FLOAT_WORD_ORDER __BYTE_ORDER
#endif
#ifdef __USE_BSD
# define LITTLE_ENDIAN __LITTLE_ENDIAN
# define BIG_ENDIAN __BIG_ENDIAN

View File

@ -1,7 +1,8 @@
/* ARM is little-endian. */
/* ARM is (usually) little-endian but with a big-endian FPU. */
#ifndef _ENDIAN_H
# error "Never use <bits/endian.h> directly; include <endian.h> instead."
#endif
#define __BYTE_ORDER __LITTLE_ENDIAN
#define __FLOAT_WORD_ORDER __BIG_ENDIAN

View File

@ -416,7 +416,13 @@ elf_machine_rel (struct link_map *map, const Elf32_Rel *reloc,
break;
case R_ARM_GLOB_DAT:
case R_ARM_JUMP_SLOT:
*reloc_addr = value;
#ifdef RTLD_BOOTSTRAP
/* Fix weak undefined references. */
if (sym != NULL && sym->st_value == 0)
*reloc_addr = 0;
else
#endif
*reloc_addr = value;
break;
case R_ARM_ABS32:
{

View File

@ -74,7 +74,7 @@ pi_lo = 1.2246467991473531772E-16; /* 0x3CA1A626, 0x33145C07 */
if(((ix|((lx|-lx)>>31))>0x7ff00000)||
((iy|((ly|-ly)>>31))>0x7ff00000)) /* x or y is NaN */
return x+y;
if((hx-0x3ff00000|lx)==0) return __atan(y); /* x=1.0 */
if(((hx-0x3ff00000)|lx)==0) return __atan(y); /* x=1.0 */
m = ((hy>>31)&1)|((hx>>30)&2); /* 2*sign(x)+sign(y) */
/* when y = 0 */

View File

@ -103,7 +103,10 @@ static double zero = 0.0;
double x;
#endif
{
double hfsq,f,s,z,R,w,t1,t2,dk,t11,t12,t21,t22,w2,zw2;
double hfsq,f,s,z,R,w,dk,t11,t12,t21,t22,w2,zw2;
#ifdef DO_NOT_USE_THIS
double t1,t2;
#endif
int32_t k,hx,i,j;
u_int32_t lx;

View File

@ -1,5 +1,5 @@
/* Truncate argument to nearest integral value not larger than the argument.
Copyright (C) 1997 Free Software Foundation, Inc.
Copyright (C) 1997, 1998 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
@ -39,7 +39,7 @@ __trunc (double x)
/* The magnitude of the number is < 1 so the result is +-0. */
INSERT_WORDS (x, sx, 0);
else
INSERT_WORDS (x, sx | i0 & ~(0x000fffff >> j0), 0);
INSERT_WORDS (x, sx | (i0 & ~(0x000fffff >> j0)), 0);
}
else if (j0 > 51)
{

View File

@ -1,5 +1,5 @@
/* Truncate argument to nearest integral value not larger than the argument.
Copyright (C) 1997 Free Software Foundation, Inc.
Copyright (C) 1997, 1998 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
@ -38,7 +38,7 @@ __truncf (float x)
/* The magnitude of the number is < 1 so the result is +-0. */
SET_FLOAT_WORD (x, sx);
else
SET_FLOAT_WORD (x, sx | i0 & ~(0x007fffff >> j0));
SET_FLOAT_WORD (x, sx | (i0 & ~(0x007fffff >> j0)));
}
else
{

View File

@ -1,7 +1,7 @@
/* MIPS __mpn_mul_1 -- Multiply a limb vector with a single limb and
store the product in a second limb vector.
Copyright (C) 1995 Free Software Foundation, Inc.
Copyright (C) 1995, 1998 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
@ -74,7 +74,7 @@ $LC1: mflo $10
multu $8,$7
sw $10,0($4)
addiu $4,$4,4
addu $2,$9,$2 /* add high product limb and carry from addition
addu $2,$9,$2 /* add high product limb and carry from addition */
/* cool down phase 0 */
$LC0: mflo $10