1
0
mirror of https://sourceware.org/git/glibc.git synced 2025-07-29 11:41:21 +03:00
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> 1998-11-26 Philip Blundell <philb@gnu.org>
Undo change of 1998-11-12: 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; \ END { printf "sysdep-subdirs =%s\n", subdirs; \
printf "sysdep-inhibit-subdirs =%s\n", inhibit; \ printf "sysdep-inhibit-subdirs =%s\n", inhibit; \
print "sysd-dirs-done = t" }' \ print "sysd-dirs-done = t" }' \
/dev/null $(all-Subdirs-files) > $@-tmp $(patsubst $<,/dev/null,$^) > $@-tmp
mv -f $@-tmp $@ mv -f $@-tmp $@
all-Depend-files = $(wildcard $(..)*/Depend) all-Depend-files = $(wildcard $(..)*/Depend)
$(common-objpfx)sysd-sorted: $(..)scripts/gen-sorted.awk $(all-Depend-files) \ $(common-objpfx)sysd-sorted: $(..)scripts/gen-sorted.awk $(all-Depend-files) \
$(common-objpfx)sysd-dirs $(..)Makeconfig $(common-objpfx)sysd-dirs $(..)Makeconfig
(files="$(all-Depend-files)"; \ (dirs='$(patsubst $(..)%/Depend,%,$(filter %/Depend, $^))'; \
for f in $$files; do \ for d in $$dirs; do \
dir=`echo $$f | sed 's@^$(..)\(.*\)/[^/]*$$@\1@'`; \
while read on; do \ while read on; do \
echo "depend $$dir $$on"; \ echo "depend $$d $$on"; \
done < $$f; \ done < $$d/Depend; \
done; \ done; \
for f in $(all-subdirs); do \ for f in $(all-subdirs); do \
echo $$f; \ echo $$f; \
done \ done \
) | $(AWK) -f $(..)scripts/gen-sorted.awk > $@-tmp ) | $(AWK) -f $< > $@-tmp
mv -f $@-tmp $@ mv -f $@-tmp $@
endif # Makeconfig not yet included endif # Makeconfig not yet included

View File

@ -83,7 +83,7 @@ __BEGIN_DECLS
# undef _Mdouble_ # undef _Mdouble_
# undef __MATH_PRECNAME # 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' /* Include the file of declarations again, this time using `long double'
instead of `double' and appending l to each function name. */ instead of `double' and appending l to each function name. */
@ -166,43 +166,68 @@ enum
}; };
/* Return number of classification appropriate for X. */ /* 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) \ # define fpclassify(x) \
(sizeof (x) == sizeof (float) ? \ (sizeof (x) == sizeof (float) ? \
__fpclassifyf (x) \ __fpclassifyf (x) \
: sizeof (x) == sizeof (double) ? \ : sizeof (x) == sizeof (double) ? \
__fpclassify (x) : __fpclassifyl (x)) __fpclassify (x) : __fpclassifyl (x))
#endif
/* Return nonzero value if sign of X is negative. */ /* 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) \ # define signbit(x) \
(sizeof (x) == sizeof (float) ? \ (sizeof (x) == sizeof (float) ? \
__signbitf (x) \ __signbitf (x) \
: sizeof (x) == sizeof (double) ? \ : sizeof (x) == sizeof (double) ? \
__signbit (x) : __signbitl (x)) __signbit (x) : __signbitl (x))
#endif
/* Return nonzero value if X is not +-Inf or NaN. */ /* 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) \ # define isfinite(x) \
(sizeof (x) == sizeof (float) ? \ (sizeof (x) == sizeof (float) ? \
__finitef (x) \ __finitef (x) \
: sizeof (x) == sizeof (double) ? \ : sizeof (x) == sizeof (double) ? \
__finite (x) : __finitel (x)) __finite (x) : __finitel (x))
#endif
/* Return nonzero value if X is neither zero, subnormal, Inf, nor NaN. */ /* Return nonzero value if X is neither zero, subnormal, Inf, nor NaN. */
# define isnormal(x) (fpclassify (x) == FP_NORMAL) # define isnormal(x) (fpclassify (x) == FP_NORMAL)
/* Return nonzero value if X is a NaN. We could use `fpclassify' but /* Return nonzero value if X is a NaN. We could use `fpclassify' but
we already have this functions `__isnan' and it is faster. */ 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) \ # define isnan(x) \
(sizeof (x) == sizeof (float) ? \ (sizeof (x) == sizeof (float) ? \
__isnanf (x) \ __isnanf (x) \
: sizeof (x) == sizeof (double) ? \ : sizeof (x) == sizeof (double) ? \
__isnan (x) : __isnanl (x)) __isnan (x) : __isnanl (x))
#endif
/* Return nonzero value is X is positive or negative infinity. */ /* 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) \ # define isinf(x) \
(sizeof (x) == sizeof (float) ? \ (sizeof (x) == sizeof (float) ? \
__isinff (x) \ __isinff (x) \
: sizeof (x) == sizeof (double) ? \ : sizeof (x) == sizeof (double) ? \
__isinf (x) : __isinfl (x)) __isinf (x) : __isinfl (x))
#endif
#endif /* Use ISO C 9X. */ #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 /* A union which permits us to convert between a double and two 32 bit
ints. */ ints. */
#if BYTE_ORDER == BIG_ENDIAN #if __FLOAT_WORD_ORDER == BIG_ENDIAN
typedef union typedef union
{ {
@ -48,7 +48,7 @@ typedef union
#endif #endif
#if BYTE_ORDER == LITTLE_ENDIAN #if __FLOAT_WORD_ORDER == LITTLE_ENDIAN
typedef union typedef union
{ {
@ -150,7 +150,7 @@ do { \
/* A union which permits us to convert between a long double and /* A union which permits us to convert between a long double and
three 32 bit ints. */ three 32 bit ints. */
#if BYTE_ORDER == BIG_ENDIAN #if __FLOAT_WORD_ORDER == BIG_ENDIAN
typedef union typedef union
{ {
@ -166,7 +166,7 @@ typedef union
#endif #endif
#if BYTE_ORDER == LITTLE_ENDIAN #if __FLOAT_WORD_ORDER == LITTLE_ENDIAN
typedef union typedef union
{ {

9
scripts/config.sub vendored
View File

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

View File

@ -34,6 +34,12 @@
/* This file defines `__BYTE_ORDER' for the particular machine. */ /* This file defines `__BYTE_ORDER' for the particular machine. */
#include <bits/endian.h> #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 #ifdef __USE_BSD
# define LITTLE_ENDIAN __LITTLE_ENDIAN # define LITTLE_ENDIAN __LITTLE_ENDIAN
# define BIG_ENDIAN __BIG_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 #ifndef _ENDIAN_H
# error "Never use <bits/endian.h> directly; include <endian.h> instead." # error "Never use <bits/endian.h> directly; include <endian.h> instead."
#endif #endif
#define __BYTE_ORDER __LITTLE_ENDIAN #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; break;
case R_ARM_GLOB_DAT: case R_ARM_GLOB_DAT:
case R_ARM_JUMP_SLOT: 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; break;
case R_ARM_ABS32: case R_ARM_ABS32:
{ {

View File

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

View File

@ -103,7 +103,10 @@ static double zero = 0.0;
double x; double x;
#endif #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; int32_t k,hx,i,j;
u_int32_t lx; u_int32_t lx;

View File

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

View File

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

View File

@ -1,7 +1,7 @@
/* MIPS __mpn_mul_1 -- Multiply a limb vector with a single limb and /* MIPS __mpn_mul_1 -- Multiply a limb vector with a single limb and
store the product in a second limb vector. 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. This file is part of the GNU MP Library.
@ -74,7 +74,7 @@ $LC1: mflo $10
multu $8,$7 multu $8,$7
sw $10,0($4) sw $10,0($4)
addiu $4,$4,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 */ /* cool down phase 0 */
$LC0: mflo $10 $LC0: mflo $10